Compare commits
67 Commits
v2.8.4
...
City-busz/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4331b0d8c0 | ||
|
|
117055bf64 | ||
|
|
fa86a25870 | ||
|
|
31c2a1dfee | ||
|
|
95c101d55e | ||
|
|
004c5985ec | ||
|
|
cbffec6f13 | ||
|
|
4ee3fe2473 | ||
|
|
1437a31658 | ||
|
|
fbc4e05327 | ||
|
|
ce584a09c2 | ||
|
|
bb3780f048 | ||
|
|
babe489676 | ||
|
|
e32b30d343 | ||
|
|
863344b6ab | ||
|
|
eee2a2f949 | ||
|
|
03b9c8627f | ||
|
|
46036c57b2 | ||
|
|
61e9a29c6d | ||
|
|
83ae99ff8a | ||
|
|
e4ceac6392 | ||
|
|
8a8b0525b4 | ||
|
|
256f6f2325 | ||
|
|
4938bacd55 | ||
|
|
5050c4f6ca | ||
|
|
9e4644ab2f | ||
|
|
19d0e27e88 | ||
|
|
2801e777f7 | ||
|
|
fc5b5447fc | ||
|
|
0a50072e2c | ||
|
|
e5287c9d3f | ||
|
|
22a755c2e4 | ||
|
|
239420148a | ||
|
|
35acb56a62 | ||
|
|
adacdefdb9 | ||
|
|
7367e40cb3 | ||
|
|
7efa17915f | ||
|
|
bdcded93f3 | ||
|
|
b3a65c3d23 | ||
|
|
06730248a9 | ||
|
|
b46faa951f | ||
|
|
43a04e7d44 | ||
|
|
d74c8aba1a | ||
|
|
eac6d63010 | ||
|
|
beda52b575 | ||
|
|
13cefac34d | ||
|
|
d79686b9a1 | ||
|
|
eff60d5990 | ||
|
|
823641d909 | ||
|
|
6c2ab8099b | ||
|
|
d8137871c5 | ||
|
|
f396a4679c | ||
|
|
c1226197f8 | ||
|
|
8504689426 | ||
|
|
aafc64023c | ||
|
|
eab96edfc7 | ||
|
|
72f15ba7fd | ||
|
|
63a797ce33 | ||
|
|
8640e37252 | ||
|
|
57db530af5 | ||
|
|
bfff596c39 | ||
|
|
d09d27517e | ||
|
|
33c83b65d9 | ||
|
|
942be92a9e | ||
|
|
ae7819a264 | ||
|
|
ed31a2f61e | ||
|
|
38f85d2f4a |
1
.github/FUNDING.yml
vendored
1
.github/FUNDING.yml
vendored
@@ -1 +1,2 @@
|
|||||||
github: [kra-mo]
|
github: [kra-mo]
|
||||||
|
liberapay: kramo
|
||||||
|
|||||||
6
.github/dependabot.yml
vendored
Normal file
6
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "monthly"
|
||||||
64
.github/workflows/ci.yml
vendored
64
.github/workflows/ci.yml
vendored
@@ -1,8 +1,9 @@
|
|||||||
|
name: CI
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [main]
|
branches: [main]
|
||||||
pull_request:
|
pull_request:
|
||||||
name: CI
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: release-${{ github.sha }}
|
group: release-${{ github.sha }}
|
||||||
jobs:
|
jobs:
|
||||||
@@ -10,17 +11,17 @@ jobs:
|
|||||||
name: Flatpak
|
name: Flatpak
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: bilelmoussaoui/flatpak-github-actions:gnome-45
|
image: bilelmoussaoui/flatpak-github-actions:gnome-46
|
||||||
options: --privileged
|
options: --privileged
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Flatpak Builder
|
- name: Flatpak Builder
|
||||||
uses: flatpak/flatpak-github-actions/flatpak-builder@v6.3
|
uses: flatpak/flatpak-github-actions/flatpak-builder@v6.3
|
||||||
with:
|
with:
|
||||||
bundle: page.kramo.Cartridges.Devel.flatpak
|
bundle: page.kramo.Cartridges.Devel.flatpak
|
||||||
manifest-path: flatpak/page.kramo.Cartridges.Devel.json
|
manifest-path: build-aux/flatpak/page.kramo.Cartridges.Devel.json
|
||||||
|
|
||||||
windows:
|
windows:
|
||||||
name: Windows
|
name: Windows
|
||||||
@@ -50,10 +51,49 @@ jobs:
|
|||||||
timeout 2 cartridges; [ "$?" -eq "124" ]
|
timeout 2 cartridges; [ "$?" -eq "124" ]
|
||||||
|
|
||||||
- name: Inno Setup
|
- name: Inno Setup
|
||||||
run: iscc ".\_build\windows\Cartridges.iss"
|
run: iscc ".\_build\build-aux\windows\Cartridges.iss"
|
||||||
|
|
||||||
- name: Upload Artifact
|
- name: Upload Artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: Windows Installer
|
name: Windows Installer
|
||||||
path: _build/windows/Output/Cartridges Setup.exe
|
path: _build/build-aux/windows/Output/Cartridges Windows.exe
|
||||||
|
|
||||||
|
macos:
|
||||||
|
name: macOS
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Homebrew
|
||||||
|
id: set-up-homebrew
|
||||||
|
uses: Homebrew/actions/setup-homebrew@master
|
||||||
|
|
||||||
|
- name: Install Dependencies
|
||||||
|
run: |
|
||||||
|
brew install meson pygobject3 libadwaita adwaita-icon-theme desktop-file-utils pyinstaller pillow
|
||||||
|
pip3 install --break-system-packages requests PyYAML pyobjc
|
||||||
|
|
||||||
|
- name: Meson Build
|
||||||
|
run: |
|
||||||
|
meson setup _build -Dtiff_compression=jpeg
|
||||||
|
ninja install -C _build
|
||||||
|
|
||||||
|
- name: PyInstaller
|
||||||
|
env:
|
||||||
|
PYTHONPATH: /opt/homebrew/opt/homebrew/lib/python3.12/site-packages
|
||||||
|
run: |
|
||||||
|
cd build-aux/macos
|
||||||
|
pyinstaller ./cartridges.spec
|
||||||
|
|
||||||
|
- name: Zip
|
||||||
|
run: |
|
||||||
|
cd build-aux/macos/dist
|
||||||
|
zip -yr Cartridges\ macOS.zip Cartridges.app
|
||||||
|
|
||||||
|
- name: Upload Artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
path: build-aux/macos/dist/Cartridges macOS.zip
|
||||||
|
name: macOS Application
|
||||||
|
|||||||
15
.github/workflows/publish-release.yml
vendored
15
.github/workflows/publish-release.yml
vendored
@@ -1,10 +1,11 @@
|
|||||||
|
name: Publish Release
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
tags:
|
tags: "*"
|
||||||
"*"
|
|
||||||
name: Publish Release
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: release-${{ github.sha }}
|
group: release-${{ github.sha }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish-release:
|
publish-release:
|
||||||
name: Publish Release
|
name: Publish Release
|
||||||
@@ -14,7 +15,7 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Download workflow artifact
|
- name: Download workflow artifact
|
||||||
uses: dawidd6/action-download-artifact@v3.0.0
|
uses: dawidd6/action-download-artifact@v6
|
||||||
with:
|
with:
|
||||||
workflow: ci.yml
|
workflow: ci.yml
|
||||||
commit: ${{ github.sha }}
|
commit: ${{ github.sha }}
|
||||||
@@ -37,9 +38,11 @@ jobs:
|
|||||||
run: echo tag_name=${GITHUB_REF#refs/tags/} >> $GITHUB_OUTPUT
|
run: echo tag_name=${GITHUB_REF#refs/tags/} >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Publish release
|
- name: Publish release
|
||||||
uses: softprops/action-gh-release@v0.1.15
|
uses: softprops/action-gh-release@v2.0.8
|
||||||
with:
|
with:
|
||||||
files: Windows Installer/Cartridges Setup.exe
|
files: |
|
||||||
|
Windows Installer/Cartridges Windows.exe
|
||||||
|
macOS Application/Cartridges macOS.zip
|
||||||
fail_on_unmatched_files: true
|
fail_on_unmatched_files: true
|
||||||
tag_name: ${{ steps.get_tag_name.outputs.tag_name }}
|
tag_name: ${{ steps.get_tag_name.outputs.tag_name }}
|
||||||
body_path: release_notes
|
body_path: release_notes
|
||||||
|
|||||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -1,4 +1,7 @@
|
|||||||
/subprojects/blueprint-compiler
|
/subprojects/blueprint-compiler
|
||||||
|
/build-aux/macos/build
|
||||||
|
/build-aux/macos/dist
|
||||||
/.flatpak
|
/.flatpak
|
||||||
/.flatpak-builder
|
/.flatpak-builder
|
||||||
/.vscode
|
/.vscode
|
||||||
|
.DS_Store
|
||||||
|
|||||||
@@ -33,6 +33,11 @@ The project can be translated on [Weblate](https://hosted.weblate.org/engage/car
|
|||||||
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/ci.yml).
|
||||||
3. Build it via Meson.
|
3. Build it via Meson.
|
||||||
|
|
||||||
|
## For macOS
|
||||||
|
1. Install [Homebrew](https://brew.sh/).
|
||||||
|
2. Using `brew` and `pip3`, install the required dependencies listed [here](https://github.com/kra-mo/cartridges/blob/main/.github/workflows/ci.yml).
|
||||||
|
3. Build it via Meson.
|
||||||
|
|
||||||
## Meson
|
## Meson
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/kra-mo/cartridges.git
|
git clone https://github.com/kra-mo/cartridges.git
|
||||||
|
|||||||
13
README.md
13
README.md
@@ -57,7 +57,7 @@ Cartridges is an easy-to-use, elegant game launcher written in Python using GTK4
|
|||||||
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] (bridged to [Matrix](https://matrix.to/#/#cartridges:matrix.org))!
|
||||||
|
|
||||||
## Donations
|
## Donations
|
||||||
I accept donations through [GitHub Sponsors](https://github.com/sponsors/kra-mo).
|
I accept donations through [GitHub Sponsors](https://github.com/sponsors/kra-mo) and [Liberapay](https://liberapay.com/kramo).
|
||||||
|
|
||||||
Thank you for your generosity! 💜
|
Thank you for your generosity! 💜
|
||||||
|
|
||||||
@@ -65,11 +65,9 @@ Thank you for your generosity! 💜
|
|||||||
|
|
||||||
## Linux
|
## Linux
|
||||||
|
|
||||||
### Flathub
|
|
||||||
|
|
||||||
The app is available on Flathub.
|
The app is available on Flathub.
|
||||||
|
|
||||||
<a href=https://flathub.org/apps/page.kramo.Cartridges><img width='240' alt='Download on Flathub' src='https://dl.flathub.org/assets/badges/flathub-badge-en.png'/></a>
|
<a href=https://flathub.org/apps/page.kramo.Cartridges><img alt='Download on Flathub' src='https://flathub.org/api/badge?svg&locale=en'/></a>
|
||||||
|
|
||||||
## Windows
|
## Windows
|
||||||
|
|
||||||
@@ -84,6 +82,13 @@ Note: Windows might present you with a warning when trying to install the app. T
|
|||||||
|
|
||||||
Install the latest release with the command: `winget install cartridges`.
|
Install the latest release with the command: `winget install cartridges`.
|
||||||
|
|
||||||
|
## macOS
|
||||||
|
|
||||||
|
1. Download the latest release from [Releases](https://github.com/kra-mo/cartridges/releases).
|
||||||
|
2. Move the app into your Applications folder.
|
||||||
|
|
||||||
|
Note: macOS might tell you that the application could not be checked for malicious software or something similar. In this case, open System Settings > Privacy & Security, scroll down, find the warning about Cartridges and click "Open Anyway". More information can be found [here](https://support.apple.com/en-us/102445).
|
||||||
|
|
||||||
## Building manually
|
## Building manually
|
||||||
|
|
||||||
See [Building](https://github.com/kra-mo/cartridges/blob/main/CONTRIBUTING.md#building).
|
See [Building](https://github.com/kra-mo/cartridges/blob/main/CONTRIBUTING.md#building).
|
||||||
|
|||||||
134
build-aux/flatpak/page.kramo.Cartridges.Devel.json
Normal file
134
build-aux/flatpak/page.kramo.Cartridges.Devel.json
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
{
|
||||||
|
"id": "page.kramo.Cartridges.Devel",
|
||||||
|
"runtime": "org.gnome.Platform",
|
||||||
|
"runtime-version": "47",
|
||||||
|
"sdk": "org.gnome.Sdk",
|
||||||
|
"command": "cartridges",
|
||||||
|
"finish-args": [
|
||||||
|
"--share=network",
|
||||||
|
"--share=ipc",
|
||||||
|
"--socket=fallback-x11",
|
||||||
|
"--device=dri",
|
||||||
|
"--socket=wayland",
|
||||||
|
"--talk-name=org.freedesktop.Flatpak",
|
||||||
|
"--filesystem=host",
|
||||||
|
"--filesystem=~/.var/app/com.valvesoftware.Steam/data/Steam/:ro",
|
||||||
|
"--filesystem=~/.var/app/net.lutris.Lutris/: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/io.itch.itch/config/itch/:ro",
|
||||||
|
"--filesystem=~/.var/app/org.libretro.RetroArch/config/retroarch/:ro",
|
||||||
|
"--filesystem=/var/lib/flatpak/app:ro",
|
||||||
|
"--filesystem=/var/lib/flatpak/exports:ro",
|
||||||
|
"--filesystem=xdg-data/flatpak/app:ro",
|
||||||
|
"--filesystem=xdg-data/flatpak/exports:ro"
|
||||||
|
],
|
||||||
|
"cleanup": [
|
||||||
|
"/include",
|
||||||
|
"/lib/pkgconfig",
|
||||||
|
"/man",
|
||||||
|
"/share/doc",
|
||||||
|
"/share/gtk-doc",
|
||||||
|
"/share/man",
|
||||||
|
"/share/pkgconfig",
|
||||||
|
"*.la",
|
||||||
|
"*.a"
|
||||||
|
],
|
||||||
|
"modules": [
|
||||||
|
{
|
||||||
|
"name": "python3-modules",
|
||||||
|
"buildsystem": "simple",
|
||||||
|
"build-commands": [],
|
||||||
|
"modules": [
|
||||||
|
{
|
||||||
|
"name": "python3-pyyaml",
|
||||||
|
"buildsystem": "simple",
|
||||||
|
"build-commands": [
|
||||||
|
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pyyaml\" --no-build-isolation"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz",
|
||||||
|
"sha256": "d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "python3-pillow",
|
||||||
|
"buildsystem": "simple",
|
||||||
|
"build-commands": [
|
||||||
|
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pillow\" --no-build-isolation"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://files.pythonhosted.org/packages/cd/74/ad3d526f3bf7b6d3f408b73fde271ec69dfac8b81341a318ce825f2b3812/pillow-10.4.0.tar.gz",
|
||||||
|
"sha256": "166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "python3-requests",
|
||||||
|
"buildsystem": "simple",
|
||||||
|
"build-commands": [
|
||||||
|
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"requests\" --no-build-isolation"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl",
|
||||||
|
"sha256": "922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://files.pythonhosted.org/packages/63/09/c1bc53dab74b1816a00d8d030de5bf98f724c52c1635e07681d312f20be8/charset-normalizer-3.3.2.tar.gz",
|
||||||
|
"sha256": "f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl",
|
||||||
|
"sha256": "946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl",
|
||||||
|
"sha256": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl",
|
||||||
|
"sha256": "ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "blueprint-compiler",
|
||||||
|
"buildsystem": "meson",
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitlab.gnome.org/jwestman/blueprint-compiler",
|
||||||
|
"tag": "v0.14.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cleanup": ["*"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cartridges",
|
||||||
|
"builddir": true,
|
||||||
|
"buildsystem": "meson",
|
||||||
|
"run-tests": true,
|
||||||
|
"config-opts": ["-Dprofile=development"],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "dir",
|
||||||
|
"path": "../.."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
59
build-aux/macos/cartridges.spec
Normal file
59
build-aux/macos/cartridges.spec
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
# -*- mode: python ; coding: utf-8 -*-
|
||||||
|
|
||||||
|
|
||||||
|
a = Analysis(
|
||||||
|
["../../_build/cartridges/cartridges"],
|
||||||
|
pathex=[],
|
||||||
|
binaries=[],
|
||||||
|
datas=[("../../_build/data/cartridges.gresource", "Resources")],
|
||||||
|
hiddenimports=[],
|
||||||
|
hookspath=[],
|
||||||
|
hooksconfig={
|
||||||
|
"gi": {
|
||||||
|
"module-versions": {
|
||||||
|
"Gtk": "4.0",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
runtime_hooks=[],
|
||||||
|
excludes=[],
|
||||||
|
noarchive=False,
|
||||||
|
optimize=0,
|
||||||
|
)
|
||||||
|
pyz = PYZ(a.pure)
|
||||||
|
|
||||||
|
exe = EXE(
|
||||||
|
pyz,
|
||||||
|
a.scripts,
|
||||||
|
[],
|
||||||
|
exclude_binaries=True,
|
||||||
|
name="Cartridges",
|
||||||
|
debug=False,
|
||||||
|
bootloader_ignore_signals=False,
|
||||||
|
strip=False,
|
||||||
|
upx=True,
|
||||||
|
console=False,
|
||||||
|
disable_windowed_traceback=False,
|
||||||
|
argv_emulation=False,
|
||||||
|
target_arch=None,
|
||||||
|
codesign_identity=None,
|
||||||
|
entitlements_file=None,
|
||||||
|
)
|
||||||
|
coll = COLLECT(
|
||||||
|
exe,
|
||||||
|
a.binaries,
|
||||||
|
a.datas,
|
||||||
|
strip=False,
|
||||||
|
upx=True,
|
||||||
|
upx_exclude=[],
|
||||||
|
name="Cartridges",
|
||||||
|
)
|
||||||
|
app = BUNDLE(
|
||||||
|
coll,
|
||||||
|
name="Cartridges.app",
|
||||||
|
icon="./icon.icns",
|
||||||
|
bundle_identifier="page.kramo.Cartridges",
|
||||||
|
info_plist={
|
||||||
|
"LSApplicationCategoryType": "public.app-category.games",
|
||||||
|
},
|
||||||
|
)
|
||||||
BIN
build-aux/macos/icon.icns
Normal file
BIN
build-aux/macos/icon.icns
Normal file
Binary file not shown.
@@ -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 Windows
|
||||||
SetupIconFile=..\..\windows\icon.ico
|
SetupIconFile=..\..\..\build-aux\windows\icon.ico
|
||||||
Compression=lzma
|
Compression=lzma
|
||||||
SolidCompression=yes
|
SolidCompression=yes
|
||||||
WizardStyle=modern
|
WizardStyle=modern
|
||||||
@@ -49,7 +49,7 @@ Source: "D:\a\_temp\msys64\ucrt64\share\icons\*"; DestDir: "{app}\share\icons";
|
|||||||
Source: "D:\a\_temp\msys64\ucrt64\share\glib-2.0\*"; DestDir: "{app}\share\glib-2.0"; Flags: recursesubdirs ignoreversion
|
Source: "D:\a\_temp\msys64\ucrt64\share\glib-2.0\*"; DestDir: "{app}\share\glib-2.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\gtk-4.0\*"; DestDir: "{app}\share\gtk-4.0"; Flags: recursesubdirs ignoreversion
|
||||||
|
|
||||||
Source: "..\..\windows\icon.ico"; DestDir: "{app}"; Flags: recursesubdirs ignoreversion
|
Source: "..\..\..\build-aux\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"
|
||||||
|
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 169 KiB |
@@ -3,5 +3,5 @@ configure_file(
|
|||||||
output: 'Cartridges.iss',
|
output: 'Cartridges.iss',
|
||||||
configuration: conf,
|
configuration: conf,
|
||||||
install: true,
|
install: true,
|
||||||
install_dir: '.'
|
install_dir: '.',
|
||||||
)
|
)
|
||||||
121
cartridges/application_delegate.py
Normal file
121
cartridges/application_delegate.py
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
# application_delegate.py
|
||||||
|
#
|
||||||
|
# Copyright 2024 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 <https://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
"""A set of methods that manage your app’s life cycle and its interaction
|
||||||
|
with common system services."""
|
||||||
|
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from AppKit import NSApp, NSApplication, NSMenu, NSMenuItem # type: ignore
|
||||||
|
from Foundation import NSObject # type: ignore
|
||||||
|
from gi.repository import Gio # type: ignore
|
||||||
|
|
||||||
|
from cartridges import shared
|
||||||
|
|
||||||
|
|
||||||
|
class ApplicationDelegate(NSObject): # type: ignore
|
||||||
|
"""A set of methods that manage your app’s life cycle and its interaction
|
||||||
|
with common system services."""
|
||||||
|
|
||||||
|
def applicationDidFinishLaunching_(self, *_args: Any) -> None:
|
||||||
|
main_menu = NSApp.mainMenu()
|
||||||
|
|
||||||
|
add_game_menu_item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(
|
||||||
|
"Add Game", "add:", "n"
|
||||||
|
)
|
||||||
|
|
||||||
|
import_menu_item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(
|
||||||
|
"Import", "import:", "i"
|
||||||
|
)
|
||||||
|
|
||||||
|
file_menu = NSMenu.alloc().init()
|
||||||
|
file_menu.addItem_(add_game_menu_item)
|
||||||
|
file_menu.addItem_(import_menu_item)
|
||||||
|
|
||||||
|
file_menu_item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(
|
||||||
|
"File", None, ""
|
||||||
|
)
|
||||||
|
file_menu_item.setSubmenu_(file_menu)
|
||||||
|
main_menu.addItem_(file_menu_item)
|
||||||
|
|
||||||
|
show_hidden_menu_item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(
|
||||||
|
"Show Hidden", "hidden:", "h"
|
||||||
|
)
|
||||||
|
|
||||||
|
windows_menu = NSMenu.alloc().init()
|
||||||
|
|
||||||
|
view_menu = NSMenu.alloc().init()
|
||||||
|
view_menu.addItem_(show_hidden_menu_item)
|
||||||
|
|
||||||
|
view_menu_item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(
|
||||||
|
"View", None, ""
|
||||||
|
)
|
||||||
|
view_menu_item.setSubmenu_(view_menu)
|
||||||
|
main_menu.addItem_(view_menu_item)
|
||||||
|
|
||||||
|
windows_menu = NSMenu.alloc().init()
|
||||||
|
|
||||||
|
windows_menu_item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(
|
||||||
|
"Window", None, ""
|
||||||
|
)
|
||||||
|
windows_menu_item.setSubmenu_(windows_menu)
|
||||||
|
main_menu.addItem_(windows_menu_item)
|
||||||
|
|
||||||
|
NSApp.setWindowsMenu_(windows_menu)
|
||||||
|
|
||||||
|
keyboard_shortcuts_menu_item = (
|
||||||
|
NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(
|
||||||
|
"Keyboard Shortcuts", "shortcuts:", "?"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
help_menu = NSMenu.alloc().init()
|
||||||
|
help_menu.addItem_(keyboard_shortcuts_menu_item)
|
||||||
|
|
||||||
|
help_menu_item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(
|
||||||
|
"Help", None, ""
|
||||||
|
)
|
||||||
|
help_menu_item.setSubmenu_(help_menu)
|
||||||
|
main_menu.addItem_(help_menu_item)
|
||||||
|
|
||||||
|
NSApp.setHelpMenu_(help_menu)
|
||||||
|
|
||||||
|
def add_(self, *_args: Any) -> None:
|
||||||
|
if (not shared.win) or (not (app := shared.win.get_application())):
|
||||||
|
return
|
||||||
|
|
||||||
|
app.lookup_action("add_game").activate()
|
||||||
|
|
||||||
|
def import_(self, *_args: Any) -> None:
|
||||||
|
if (not shared.win) or (not (app := shared.win.get_application())):
|
||||||
|
return
|
||||||
|
|
||||||
|
app.lookup_action("import").activate()
|
||||||
|
|
||||||
|
def hidden_(self, *_args: Any) -> None:
|
||||||
|
if not shared.win:
|
||||||
|
return
|
||||||
|
|
||||||
|
shared.win.lookup_action("show_hidden").activate()
|
||||||
|
|
||||||
|
def shortcuts_(self, *_args: Any) -> None:
|
||||||
|
if (not shared.win) or (not (overlay := shared.win.get_help_overlay())):
|
||||||
|
return
|
||||||
|
|
||||||
|
overlay.present()
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# cartridges.in
|
# cartridges.in
|
||||||
#
|
#
|
||||||
# Copyright 2022-2023 kramo
|
# Copyright 2022-2024 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
|
||||||
@@ -24,6 +24,8 @@ import locale
|
|||||||
import os
|
import os
|
||||||
import signal
|
import signal
|
||||||
import sys
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
from platform import system
|
||||||
|
|
||||||
VERSION = "@VERSION@"
|
VERSION = "@VERSION@"
|
||||||
|
|
||||||
@@ -36,7 +38,7 @@ else:
|
|||||||
sys.path.insert(1, PKGDATADIR)
|
sys.path.insert(1, PKGDATADIR)
|
||||||
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
||||||
|
|
||||||
if os.name != "nt":
|
if system() == "Linux":
|
||||||
locale.bindtextdomain("cartridges", LOCALEDIR)
|
locale.bindtextdomain("cartridges", LOCALEDIR)
|
||||||
locale.textdomain("cartridges")
|
locale.textdomain("cartridges")
|
||||||
gettext.install("cartridges", LOCALEDIR)
|
gettext.install("cartridges", LOCALEDIR)
|
||||||
@@ -44,9 +46,15 @@ else:
|
|||||||
gettext.install("cartridges")
|
gettext.install("cartridges")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
from gi.repository import Gio
|
from gi.repository import Gio, GLib
|
||||||
|
|
||||||
resource = Gio.Resource.load(os.path.join(PKGDATADIR, "cartridges.gresource"))
|
try:
|
||||||
|
# For a macOS application bundle
|
||||||
|
resource = Gio.Resource.load(
|
||||||
|
str(Path(__file__).parent / "Resources" / "cartridges.gresource")
|
||||||
|
)
|
||||||
|
except GLib.GError:
|
||||||
|
resource = Gio.Resource.load(os.path.join(PKGDATADIR, "cartridges.gresource"))
|
||||||
resource._register() # pylint: disable=protected-access
|
resource._register() # pylint: disable=protected-access
|
||||||
|
|
||||||
from cartridges import main
|
from cartridges import main
|
||||||
|
|||||||
@@ -17,9 +17,11 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
import os
|
# pyright: reportAssignmentType=none
|
||||||
|
|
||||||
import shlex
|
import shlex
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from sys import platform
|
||||||
from time import time
|
from time import time
|
||||||
from typing import Any, Optional
|
from typing import Any, Optional
|
||||||
|
|
||||||
@@ -40,28 +42,36 @@ from cartridges.utils.save_cover import convert_cover, save_cover
|
|||||||
class DetailsDialog(Adw.Dialog):
|
class DetailsDialog(Adw.Dialog):
|
||||||
__gtype_name__ = "DetailsDialog"
|
__gtype_name__ = "DetailsDialog"
|
||||||
|
|
||||||
cover_overlay = Gtk.Template.Child()
|
cover_overlay: Gtk.Overlay = Gtk.Template.Child()
|
||||||
cover = Gtk.Template.Child()
|
cover: Gtk.Picture = Gtk.Template.Child()
|
||||||
cover_button_edit = Gtk.Template.Child()
|
cover_button_edit: Gtk.Button = Gtk.Template.Child()
|
||||||
cover_button_delete_revealer = Gtk.Template.Child()
|
cover_button_delete_revealer: Gtk.Revealer = Gtk.Template.Child()
|
||||||
cover_button_delete = Gtk.Template.Child()
|
cover_button_delete: Gtk.Button = Gtk.Template.Child()
|
||||||
spinner = Gtk.Template.Child()
|
spinner: Adw.Spinner = Gtk.Template.Child()
|
||||||
|
|
||||||
name = Gtk.Template.Child()
|
name: Adw.EntryRow = Gtk.Template.Child()
|
||||||
developer = Gtk.Template.Child()
|
developer: Adw.EntryRow = Gtk.Template.Child()
|
||||||
executable = Gtk.Template.Child()
|
executable: Adw.EntryRow = Gtk.Template.Child()
|
||||||
|
|
||||||
exec_info_label = Gtk.Template.Child()
|
exec_info_label: Gtk.Label = Gtk.Template.Child()
|
||||||
exec_info_popover = Gtk.Template.Child()
|
exec_info_popover: Gtk.Popover = Gtk.Template.Child()
|
||||||
file_chooser_button = Gtk.Template.Child()
|
file_chooser_button: Gtk.Button = Gtk.Template.Child()
|
||||||
|
|
||||||
apply_button = Gtk.Template.Child()
|
apply_button: Gtk.Button = Gtk.Template.Child()
|
||||||
|
|
||||||
cover_changed: bool = False
|
cover_changed: bool = False
|
||||||
|
|
||||||
|
is_open: bool = False
|
||||||
|
|
||||||
def __init__(self, game: Optional[Game] = None, **kwargs: Any):
|
def __init__(self, game: Optional[Game] = None, **kwargs: Any):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
self.game: Game = game
|
|
||||||
|
# Make it so only one dialog can be open at a time
|
||||||
|
self.__class__.is_open = True
|
||||||
|
self.tmp_cover_path = None
|
||||||
|
self.connect("closed", self.on_closed)
|
||||||
|
|
||||||
|
self.game: Optional[Game] = game
|
||||||
self.game_cover: GameCover = GameCover({self.cover})
|
self.game_cover: GameCover = GameCover({self.cover})
|
||||||
|
|
||||||
if self.game:
|
if self.game:
|
||||||
@@ -106,7 +116,7 @@ class DetailsDialog(Adw.Dialog):
|
|||||||
# As in software
|
# As in software
|
||||||
exe_name = _("program")
|
exe_name = _("program")
|
||||||
|
|
||||||
if os.name == "nt":
|
if platform == "win32":
|
||||||
exe_name += ".exe"
|
exe_name += ".exe"
|
||||||
# Translate this string as you would translate "path to {}"
|
# Translate this string as you would translate "path to {}"
|
||||||
exe_path = _("C:\\path\\to\\{}").format(exe_name)
|
exe_path = _("C:\\path\\to\\{}").format(exe_name)
|
||||||
@@ -118,7 +128,7 @@ class DetailsDialog(Adw.Dialog):
|
|||||||
exe_path = _("/path/to/{}").format(exe_name)
|
exe_path = _("/path/to/{}").format(exe_name)
|
||||||
# Translate this string as you would translate "path to {}"
|
# Translate this string as you would translate "path to {}"
|
||||||
file_path = _("/path/to/{}").format(file_name)
|
file_path = _("/path/to/{}").format(file_name)
|
||||||
command = "xdg-open"
|
command = "open" if platform == "darwin" else "xdg-open"
|
||||||
|
|
||||||
# pylint: disable=line-too-long
|
# pylint: disable=line-too-long
|
||||||
exec_info_text = _(
|
exec_info_text = _(
|
||||||
@@ -151,11 +161,20 @@ class DetailsDialog(Adw.Dialog):
|
|||||||
self.set_focus(self.name)
|
self.set_focus(self.name)
|
||||||
|
|
||||||
def delete_pixbuf(self, *_args: Any) -> None:
|
def delete_pixbuf(self, *_args: Any) -> None:
|
||||||
|
if self.tmp_cover_path:
|
||||||
|
self.tmp_cover_path.unlink(missing_ok=True)
|
||||||
|
|
||||||
self.game_cover.new_cover()
|
self.game_cover.new_cover()
|
||||||
|
|
||||||
self.cover_button_delete_revealer.set_reveal_child(False)
|
self.cover_button_delete_revealer.set_reveal_child(False)
|
||||||
self.cover_changed = True
|
self.cover_changed = True
|
||||||
|
|
||||||
|
def on_closed(self, *args):
|
||||||
|
if self.tmp_cover_path:
|
||||||
|
self.tmp_cover_path.unlink(missing_ok=True)
|
||||||
|
|
||||||
|
self.set_is_open(False)
|
||||||
|
|
||||||
def apply_preferences(self, *_args: Any) -> None:
|
def apply_preferences(self, *_args: Any) -> None:
|
||||||
final_name = self.name.get_text()
|
final_name = self.name.get_text()
|
||||||
final_developer = self.developer.get_text()
|
final_developer = self.developer.get_text()
|
||||||
@@ -231,6 +250,7 @@ class DetailsDialog(Adw.Dialog):
|
|||||||
save_cover(
|
save_cover(
|
||||||
self.game.game_id,
|
self.game.game_id,
|
||||||
self.game_cover.path,
|
self.game_cover.path,
|
||||||
|
self.game_cover.pixbuf,
|
||||||
)
|
)
|
||||||
|
|
||||||
shared.store.add_game(self.game, {}, run_pipeline=False)
|
shared.store.add_game(self.game, {}, run_pipeline=False)
|
||||||
@@ -276,7 +296,7 @@ class DetailsDialog(Adw.Dialog):
|
|||||||
|
|
||||||
def toggle_loading(self) -> None:
|
def toggle_loading(self) -> None:
|
||||||
self.apply_button.set_sensitive(not self.apply_button.get_sensitive())
|
self.apply_button.set_sensitive(not self.apply_button.get_sensitive())
|
||||||
self.spinner.set_spinning(not self.spinner.get_spinning())
|
self.spinner.set_visible(not self.spinner.get_visible())
|
||||||
self.cover_overlay.set_opacity(not self.cover_overlay.get_opacity())
|
self.cover_overlay.set_opacity(not self.cover_overlay.get_opacity())
|
||||||
|
|
||||||
def set_cover(self, _source: Any, result: Gio.Task, *_args: Any) -> None:
|
def set_cover(self, _source: Any, result: Gio.Task, *_args: Any) -> None:
|
||||||
@@ -286,26 +306,29 @@ class DetailsDialog(Adw.Dialog):
|
|||||||
return
|
return
|
||||||
|
|
||||||
def thread_func() -> None:
|
def thread_func() -> None:
|
||||||
new_path = None
|
is_animated = False
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with Image.open(path) as image:
|
with Image.open(path) as image:
|
||||||
if getattr(image, "is_animated", False):
|
if getattr(image, "is_animated", False):
|
||||||
new_path = convert_cover(path)
|
is_animated = True
|
||||||
except UnidentifiedImageError:
|
except (UnidentifiedImageError, OSError, ValueError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if not new_path:
|
if is_animated:
|
||||||
new_path = convert_cover(
|
if self.tmp_cover_path:
|
||||||
|
self.tmp_cover_path.unlink(missing_ok=True)
|
||||||
|
self.tmp_cover_path = convert_cover(path)
|
||||||
|
self.game_cover.new_cover(self.tmp_cover_path)
|
||||||
|
else:
|
||||||
|
self.game_cover.new_cover(
|
||||||
pixbuf=shared.store.managers[CoverManager].composite_cover(
|
pixbuf=shared.store.managers[CoverManager].composite_cover(
|
||||||
Path(path)
|
Path(path)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
if new_path:
|
self.cover_button_delete_revealer.set_reveal_child(True)
|
||||||
self.game_cover.new_cover(new_path)
|
self.cover_changed = True
|
||||||
self.cover_button_delete_revealer.set_reveal_child(True)
|
|
||||||
self.cover_changed = True
|
|
||||||
|
|
||||||
self.toggle_loading()
|
self.toggle_loading()
|
||||||
|
|
||||||
@@ -325,3 +348,6 @@ class DetailsDialog(Adw.Dialog):
|
|||||||
|
|
||||||
def choose_cover(self, *_args: Any) -> None:
|
def choose_cover(self, *_args: Any) -> None:
|
||||||
self.image_file_dialog.open(self.get_root(), None, self.set_cover)
|
self.image_file_dialog.open(self.get_root(), None, self.set_cover)
|
||||||
|
|
||||||
|
def set_is_open(self, is_open: bool) -> None:
|
||||||
|
self.__class__.is_open = is_open
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ class Game(Gtk.Box):
|
|||||||
loading = self.loading > 0
|
loading = self.loading > 0
|
||||||
|
|
||||||
self.cover.set_opacity(int(not loading))
|
self.cover.set_opacity(int(not loading))
|
||||||
self.spinner.set_spinning(loading)
|
self.spinner.set_visible(loading)
|
||||||
|
|
||||||
def get_cover_path(self) -> Optional[Path]:
|
def get_cover_path(self) -> Optional[Path]:
|
||||||
cover_path = shared.covers_dir / f"{self.game_id}.gif"
|
cover_path = shared.covers_dir / f"{self.game_id}.gif"
|
||||||
|
|||||||
@@ -45,12 +45,22 @@ class GameCover:
|
|||||||
self.pictures = pictures
|
self.pictures = pictures
|
||||||
self.new_cover(path)
|
self.new_cover(path)
|
||||||
|
|
||||||
def new_cover(self, path: Optional[Path] = None) -> None:
|
def new_cover(
|
||||||
|
self,
|
||||||
|
path: Optional[Path] = None,
|
||||||
|
pixbuf: Optional[GdkPixbuf.Pixbuf] = None
|
||||||
|
) -> None:
|
||||||
self.animation = None
|
self.animation = None
|
||||||
self.texture = None
|
self.texture = None
|
||||||
self.blurred = None
|
self.blurred = None
|
||||||
self.luminance = None
|
self.luminance = None
|
||||||
self.path = path
|
self.path = path
|
||||||
|
self.pixbuf = pixbuf
|
||||||
|
|
||||||
|
if pixbuf:
|
||||||
|
self.texture = Gdk.Texture.new_for_pixbuf(pixbuf)
|
||||||
|
self.set_texture(self.texture)
|
||||||
|
return
|
||||||
|
|
||||||
if path:
|
if path:
|
||||||
if path.suffix == ".gif":
|
if path.suffix == ".gif":
|
||||||
|
|||||||
@@ -355,7 +355,7 @@ class HeroicSource(URLExecutableSource):
|
|||||||
name = _("Heroic")
|
name = _("Heroic")
|
||||||
iterable_class = HeroicSourceIterable
|
iterable_class = HeroicSourceIterable
|
||||||
url_format = "heroic://launch/{runner}/{app_name}"
|
url_format = "heroic://launch/{runner}/{app_name}"
|
||||||
available_on = {"linux", "win32"}
|
available_on = {"linux", "win32", "darwin"}
|
||||||
|
|
||||||
locations: HeroicLocations
|
locations: HeroicLocations
|
||||||
|
|
||||||
@@ -377,6 +377,7 @@ class HeroicSource(URLExecutableSource):
|
|||||||
/ "config"
|
/ "config"
|
||||||
/ "heroic",
|
/ "heroic",
|
||||||
shared.appdata_dir / "heroic",
|
shared.appdata_dir / "heroic",
|
||||||
|
shared.app_support_dir / "heroic",
|
||||||
),
|
),
|
||||||
paths={
|
paths={
|
||||||
"config.json": LocationSubPath("config.json"),
|
"config.json": LocationSubPath("config.json"),
|
||||||
|
|||||||
@@ -106,7 +106,6 @@ class Importer(ErrorProducer):
|
|||||||
|
|
||||||
def run(self) -> None:
|
def run(self) -> None:
|
||||||
"""Use several Gio.Task to import games from added sources"""
|
"""Use several Gio.Task to import games from added sources"""
|
||||||
|
|
||||||
shared.win.get_application().state = shared.AppState.IMPORT
|
shared.win.get_application().state = shared.AppState.IMPORT
|
||||||
|
|
||||||
if self.__class__.summary_toast:
|
if self.__class__.summary_toast:
|
||||||
@@ -137,6 +136,7 @@ class Importer(ErrorProducer):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self.progress_changed_callback()
|
self.progress_changed_callback()
|
||||||
|
GLib.timeout_add(100, self.__watchdog)
|
||||||
|
|
||||||
def create_dialog(self) -> None:
|
def create_dialog(self) -> None:
|
||||||
"""Create the import dialog"""
|
"""Create the import dialog"""
|
||||||
@@ -281,8 +281,7 @@ class Importer(ErrorProducer):
|
|||||||
shared.store.duplicate_game_ids = set()
|
shared.store.duplicate_game_ids = set()
|
||||||
# Disconnect the close-attempt signal that closes the main window
|
# Disconnect the close-attempt signal that closes the main window
|
||||||
self.import_dialog.disconnect(self.close_attempt_id)
|
self.import_dialog.disconnect(self.close_attempt_id)
|
||||||
# Stupid hack because stupid libadwaita is stupid
|
self.import_dialog.force_close()
|
||||||
GLib.timeout_add(50, self.import_dialog.force_close)
|
|
||||||
self.__class__.summary_toast = self.create_summary_toast()
|
self.__class__.summary_toast = self.create_summary_toast()
|
||||||
self.create_error_dialog()
|
self.create_error_dialog()
|
||||||
shared.win.get_application().lookup_action("import").set_enabled(True)
|
shared.win.get_application().lookup_action("import").set_enabled(True)
|
||||||
@@ -397,7 +396,13 @@ class Importer(ErrorProducer):
|
|||||||
|
|
||||||
toast.set_title(toast_title)
|
toast.set_title(toast_title)
|
||||||
|
|
||||||
shared.win.toast_overlay.add_toast(toast)
|
if not (
|
||||||
|
self.n_games_added == 0
|
||||||
|
and removed_length == 0
|
||||||
|
and shared.schema.get_boolean("auto-import")
|
||||||
|
):
|
||||||
|
shared.win.toast_overlay.add_toast(toast)
|
||||||
|
|
||||||
return toast
|
return toast
|
||||||
|
|
||||||
def open_preferences(
|
def open_preferences(
|
||||||
@@ -423,3 +428,11 @@ class Importer(ErrorProducer):
|
|||||||
self.open_preferences(*args).connect("close-request", self.timeout_toast)
|
self.open_preferences(*args).connect("close-request", self.timeout_toast)
|
||||||
else:
|
else:
|
||||||
self.timeout_toast()
|
self.timeout_toast()
|
||||||
|
|
||||||
|
def __watchdog(self) -> bool:
|
||||||
|
# This can help resolve a race condition where the dialog would stay open
|
||||||
|
if not self.finished:
|
||||||
|
return True
|
||||||
|
|
||||||
|
self.import_dialog.force_close()
|
||||||
|
return shared.win.get_visible_dialog() == self.import_dialog
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ class ItchSource(URLExecutableSource):
|
|||||||
name = _("itch")
|
name = _("itch")
|
||||||
iterable_class = ItchSourceIterable
|
iterable_class = ItchSourceIterable
|
||||||
url_format = "itch://caves/{cave_id}/launch"
|
url_format = "itch://caves/{cave_id}/launch"
|
||||||
available_on = {"linux", "win32"}
|
available_on = {"linux", "win32", "darwin"}
|
||||||
|
|
||||||
locations: ItchLocations
|
locations: ItchLocations
|
||||||
|
|
||||||
@@ -95,6 +95,7 @@ class ItchSource(URLExecutableSource):
|
|||||||
shared.config_dir / "itch",
|
shared.config_dir / "itch",
|
||||||
shared.host_config_dir / "itch",
|
shared.host_config_dir / "itch",
|
||||||
shared.appdata_dir / "itch",
|
shared.appdata_dir / "itch",
|
||||||
|
shared.app_support_dir / "itch",
|
||||||
),
|
),
|
||||||
paths={
|
paths={
|
||||||
"butler.db": LocationSubPath("db/butler.db"),
|
"butler.db": LocationSubPath("db/butler.db"),
|
||||||
|
|||||||
@@ -125,6 +125,8 @@ class URLExecutableSource(ExecutableFormatSource):
|
|||||||
return "start " + self.url_format
|
return "start " + self.url_format
|
||||||
case "linux":
|
case "linux":
|
||||||
return "xdg-open " + self.url_format
|
return "xdg-open " + self.url_format
|
||||||
|
case "darwin":
|
||||||
|
return "open " + self.url_format
|
||||||
case other:
|
case other:
|
||||||
raise NotImplementedError(
|
raise NotImplementedError(
|
||||||
f"No URL handler command available for {other}"
|
f"No URL handler command available for {other}"
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ class SteamLocations(NamedTuple):
|
|||||||
class SteamSource(URLExecutableSource):
|
class SteamSource(URLExecutableSource):
|
||||||
source_id = "steam"
|
source_id = "steam"
|
||||||
name = _("Steam")
|
name = _("Steam")
|
||||||
available_on = {"linux", "win32"}
|
available_on = {"linux", "win32", "darwin"}
|
||||||
iterable_class = SteamSourceIterable
|
iterable_class = SteamSourceIterable
|
||||||
url_format = "steam://rungameid/{game_id}"
|
url_format = "steam://rungameid/{game_id}"
|
||||||
|
|
||||||
@@ -128,6 +128,7 @@ class SteamSource(URLExecutableSource):
|
|||||||
shared.data_dir / "Steam",
|
shared.data_dir / "Steam",
|
||||||
shared.flatpak_dir / "com.valvesoftware.Steam" / "data" / "Steam",
|
shared.flatpak_dir / "com.valvesoftware.Steam" / "data" / "Steam",
|
||||||
shared.programfiles32_dir / "Steam",
|
shared.programfiles32_dir / "Steam",
|
||||||
|
shared.app_support_dir / "Steam",
|
||||||
),
|
),
|
||||||
paths={
|
paths={
|
||||||
"libraryfolders.vdf": LocationSubPath(
|
"libraryfolders.vdf": LocationSubPath(
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import shlex
|
|||||||
import sys
|
import sys
|
||||||
from time import time
|
from time import time
|
||||||
from typing import Any, Optional
|
from typing import Any, Optional
|
||||||
|
from urllib.parse import quote
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
|
|
||||||
@@ -40,7 +41,7 @@ from cartridges.importer.bottles_source import BottlesSource
|
|||||||
from cartridges.importer.desktop_source import DesktopSource
|
from cartridges.importer.desktop_source import DesktopSource
|
||||||
from cartridges.importer.flatpak_source import FlatpakSource
|
from cartridges.importer.flatpak_source import FlatpakSource
|
||||||
from cartridges.importer.heroic_source import HeroicSource
|
from cartridges.importer.heroic_source import HeroicSource
|
||||||
from cartridges.importer.importer import Importer
|
from cartridges.importer.importer import Importer # yo dawg
|
||||||
from cartridges.importer.itch_source import ItchSource
|
from cartridges.importer.itch_source import ItchSource
|
||||||
from cartridges.importer.legendary_source import LegendarySource
|
from cartridges.importer.legendary_source import LegendarySource
|
||||||
from cartridges.importer.lutris_source import LutrisSource
|
from cartridges.importer.lutris_source import LutrisSource
|
||||||
@@ -57,6 +58,12 @@ from cartridges.store.store import Store
|
|||||||
from cartridges.utils.run_executable import run_executable
|
from cartridges.utils.run_executable import run_executable
|
||||||
from cartridges.window import CartridgesWindow
|
from cartridges.window import CartridgesWindow
|
||||||
|
|
||||||
|
if sys.platform == "darwin":
|
||||||
|
from AppKit import NSApp # type: ignore
|
||||||
|
from PyObjCTools import AppHelper
|
||||||
|
|
||||||
|
from cartridges.application_delegate import ApplicationDelegate
|
||||||
|
|
||||||
|
|
||||||
class CartridgesApplication(Adw.Application):
|
class CartridgesApplication(Adw.Application):
|
||||||
state = shared.AppState.DEFAULT
|
state = shared.AppState.DEFAULT
|
||||||
@@ -87,14 +94,29 @@ class CartridgesApplication(Adw.Application):
|
|||||||
|
|
||||||
self.add_main_option_entries((search, launch))
|
self.add_main_option_entries((search, launch))
|
||||||
|
|
||||||
|
if sys.platform == "darwin":
|
||||||
|
if settings := Gtk.Settings.get_default():
|
||||||
|
settings.props.gtk_decoration_layout = "close,minimize,maximize:"
|
||||||
|
|
||||||
|
def setup_app_delegate() -> None:
|
||||||
|
NSApp.setDelegate_(ApplicationDelegate.alloc().init()) # type: ignore
|
||||||
|
AppHelper.runEventLoop() # type: ignore
|
||||||
|
|
||||||
|
GLib.Thread.new(None, setup_app_delegate)
|
||||||
|
|
||||||
def do_activate(self) -> None: # pylint: disable=arguments-differ
|
def do_activate(self) -> None: # pylint: disable=arguments-differ
|
||||||
"""Called on app creation"""
|
"""Called on app creation"""
|
||||||
|
|
||||||
setup_logging()
|
if os.getenv("XDG_CURRENT_DESKOP") == "COSMIC":
|
||||||
log_system_info()
|
Gio.AppInfo.launch_default_for_uri("https://stopthemingmy.app")
|
||||||
|
self.quit()
|
||||||
|
|
||||||
# Set fallback icon-name
|
try:
|
||||||
Gtk.Window.set_default_icon_name(shared.APP_ID)
|
setup_logging()
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
log_system_info()
|
||||||
|
|
||||||
# Create the main window
|
# Create the main window
|
||||||
win = self.props.active_window # pylint: disable=no-member
|
win = self.props.active_window # pylint: disable=no-member
|
||||||
@@ -171,6 +193,9 @@ class CartridgesApplication(Adw.Application):
|
|||||||
|
|
||||||
shared.win.present()
|
shared.win.present()
|
||||||
|
|
||||||
|
if shared.schema.get_boolean("auto-import"):
|
||||||
|
self.on_import_action()
|
||||||
|
|
||||||
def do_handle_local_options(self, options: GLib.VariantDict) -> int:
|
def do_handle_local_options(self, options: GLib.VariantDict) -> int:
|
||||||
if search := options.lookup_value("search"):
|
if search := options.lookup_value("search"):
|
||||||
self.init_search_term = search.get_string()
|
self.init_search_term = search.get_string()
|
||||||
@@ -280,7 +305,7 @@ class CartridgesApplication(Adw.Application):
|
|||||||
_parameter: Any = None,
|
_parameter: Any = None,
|
||||||
page_name: Optional[str] = None,
|
page_name: Optional[str] = None,
|
||||||
expander_row: Optional[str] = None,
|
expander_row: Optional[str] = None,
|
||||||
) -> CartridgesWindow:
|
) -> Optional[CartridgesPreferences]:
|
||||||
if CartridgesPreferences.is_open:
|
if CartridgesPreferences.is_open:
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -303,6 +328,9 @@ class CartridgesApplication(Adw.Application):
|
|||||||
DetailsDialog(shared.win.active_game).present(shared.win)
|
DetailsDialog(shared.win.active_game).present(shared.win)
|
||||||
|
|
||||||
def on_add_game_action(self, *_args: Any) -> None:
|
def on_add_game_action(self, *_args: Any) -> None:
|
||||||
|
if DetailsDialog.is_open:
|
||||||
|
return
|
||||||
|
|
||||||
DetailsDialog().present(shared.win)
|
DetailsDialog().present(shared.win)
|
||||||
|
|
||||||
def on_import_action(self, *_args: Any) -> None:
|
def on_import_action(self, *_args: Any) -> None:
|
||||||
@@ -345,7 +373,7 @@ class CartridgesApplication(Adw.Application):
|
|||||||
self.on_remove_game_action()
|
self.on_remove_game_action()
|
||||||
|
|
||||||
def search(self, uri: str) -> None:
|
def search(self, uri: str) -> None:
|
||||||
Gio.AppInfo.launch_default_for_uri(f"{uri}{shared.win.active_game.name}")
|
Gio.AppInfo.launch_default_for_uri(f"{uri}{quote(shared.win.active_game.name)}")
|
||||||
|
|
||||||
def on_igdb_search_action(self, *_args: Any) -> None:
|
def on_igdb_search_action(self, *_args: Any) -> None:
|
||||||
self.search("https://www.igdb.com/search?type=1&q=")
|
self.search("https://www.igdb.com/search?type=1&q=")
|
||||||
@@ -375,7 +403,11 @@ class CartridgesApplication(Adw.Application):
|
|||||||
if action[1:2]:
|
if action[1:2]:
|
||||||
self.set_accels_for_action(
|
self.set_accels_for_action(
|
||||||
f"app.{action[0]}" if scope == self else f"win.{action[0]}",
|
f"app.{action[0]}" if scope == self else f"win.{action[0]}",
|
||||||
action[1],
|
(
|
||||||
|
tuple(s.replace("<primary>", "<meta>") for s in action[1])
|
||||||
|
if sys.platform == "darwin"
|
||||||
|
else action[1]
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
scope.add_action(simple_action)
|
scope.add_action(simple_action)
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
moduledir = join_paths(python_dir, 'cartridges')
|
moduledir = python_dir / 'cartridges'
|
||||||
|
|
||||||
configure_file(
|
configure_file(
|
||||||
input: 'cartridges.in',
|
input: 'cartridges.in',
|
||||||
output: 'cartridges',
|
output: 'cartridges',
|
||||||
configuration: conf,
|
configuration: conf,
|
||||||
install: true,
|
install: true,
|
||||||
install_dir: get_option('bindir')
|
install_dir: get_option('bindir'),
|
||||||
)
|
)
|
||||||
|
|
||||||
install_subdir('importer', install_dir: moduledir)
|
install_subdir('importer', install_dir: moduledir)
|
||||||
@@ -15,17 +15,14 @@ install_subdir('logging', install_dir: moduledir)
|
|||||||
install_subdir('errors', install_dir: moduledir)
|
install_subdir('errors', install_dir: moduledir)
|
||||||
install_data(
|
install_data(
|
||||||
[
|
[
|
||||||
|
'application_delegate.py',
|
||||||
'main.py',
|
'main.py',
|
||||||
'window.py',
|
'window.py',
|
||||||
'preferences.py',
|
'preferences.py',
|
||||||
'details_dialog.py',
|
'details_dialog.py',
|
||||||
'game.py',
|
'game.py',
|
||||||
'game_cover.py',
|
'game_cover.py',
|
||||||
configure_file(
|
configure_file(input: 'shared.py.in', output: 'shared.py', configuration: conf),
|
||||||
input: 'shared.py.in',
|
|
||||||
output: 'shared.py',
|
|
||||||
configuration: conf
|
|
||||||
)
|
|
||||||
],
|
],
|
||||||
install_dir: moduledir
|
install_dir: moduledir,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
# pyright: reportAssignmentType=none
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
@@ -30,6 +32,7 @@ from cartridges import shared
|
|||||||
from cartridges.errors.friendly_error import FriendlyError
|
from cartridges.errors.friendly_error import FriendlyError
|
||||||
from cartridges.game import Game
|
from cartridges.game import Game
|
||||||
from cartridges.importer.bottles_source import BottlesSource
|
from cartridges.importer.bottles_source import BottlesSource
|
||||||
|
from cartridges.importer.desktop_source import DesktopSource
|
||||||
from cartridges.importer.flatpak_source import FlatpakSource
|
from cartridges.importer.flatpak_source import FlatpakSource
|
||||||
from cartridges.importer.heroic_source import HeroicSource
|
from cartridges.importer.heroic_source import HeroicSource
|
||||||
from cartridges.importer.itch_source import ItchSource
|
from cartridges.importer.itch_source import ItchSource
|
||||||
@@ -47,74 +50,74 @@ from cartridges.utils.create_dialog import create_dialog
|
|||||||
class CartridgesPreferences(Adw.PreferencesDialog):
|
class CartridgesPreferences(Adw.PreferencesDialog):
|
||||||
__gtype_name__ = "CartridgesPreferences"
|
__gtype_name__ = "CartridgesPreferences"
|
||||||
|
|
||||||
general_page = Gtk.Template.Child()
|
general_page: Adw.PreferencesPage = Gtk.Template.Child()
|
||||||
import_page = Gtk.Template.Child()
|
import_page: Adw.PreferencesPage = Gtk.Template.Child()
|
||||||
sgdb_page = Gtk.Template.Child()
|
sgdb_page: Adw.PreferencesPage = Gtk.Template.Child()
|
||||||
|
|
||||||
sources_group = Gtk.Template.Child()
|
sources_group: Adw.PreferencesGroup = Gtk.Template.Child()
|
||||||
|
|
||||||
exit_after_launch_switch = Gtk.Template.Child()
|
exit_after_launch_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
cover_launches_game_switch = Gtk.Template.Child()
|
cover_launches_game_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
high_quality_images_switch = Gtk.Template.Child()
|
high_quality_images_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
|
|
||||||
remove_missing_switch = Gtk.Template.Child()
|
auto_import_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
|
remove_missing_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
|
|
||||||
steam_expander_row = Gtk.Template.Child()
|
steam_expander_row: Adw.ExpanderRow = Gtk.Template.Child()
|
||||||
steam_data_action_row = Gtk.Template.Child()
|
steam_data_action_row: Adw.ActionRow = Gtk.Template.Child()
|
||||||
steam_data_file_chooser_button = Gtk.Template.Child()
|
steam_data_file_chooser_button: Gtk.Button = Gtk.Template.Child()
|
||||||
|
|
||||||
lutris_expander_row = Gtk.Template.Child()
|
lutris_expander_row: Adw.ExpanderRowClass = Gtk.Template.Child()
|
||||||
lutris_data_action_row = Gtk.Template.Child()
|
lutris_data_action_row: Adw.ActionRow = Gtk.Template.Child()
|
||||||
lutris_data_file_chooser_button = Gtk.Template.Child()
|
lutris_data_file_chooser_button: Gtk.Button = Gtk.Template.Child()
|
||||||
lutris_import_steam_switch = Gtk.Template.Child()
|
lutris_import_steam_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
lutris_import_flatpak_switch = Gtk.Template.Child()
|
lutris_import_flatpak_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
|
|
||||||
heroic_expander_row = Gtk.Template.Child()
|
heroic_expander_row: Adw.ExpanderRow = Gtk.Template.Child()
|
||||||
heroic_config_action_row = Gtk.Template.Child()
|
heroic_config_action_row: Adw.ActionRow = Gtk.Template.Child()
|
||||||
heroic_config_file_chooser_button = Gtk.Template.Child()
|
heroic_config_file_chooser_button: Gtk.Button = Gtk.Template.Child()
|
||||||
heroic_import_epic_switch = Gtk.Template.Child()
|
heroic_import_epic_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
heroic_import_gog_switch = Gtk.Template.Child()
|
heroic_import_gog_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
heroic_import_amazon_switch = Gtk.Template.Child()
|
heroic_import_amazon_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
heroic_import_sideload_switch = Gtk.Template.Child()
|
heroic_import_sideload_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
|
|
||||||
bottles_expander_row = Gtk.Template.Child()
|
bottles_expander_row: Adw.ExpanderRow = Gtk.Template.Child()
|
||||||
bottles_data_action_row = Gtk.Template.Child()
|
bottles_data_action_row: Adw.ActionRow = Gtk.Template.Child()
|
||||||
bottles_data_file_chooser_button = Gtk.Template.Child()
|
bottles_data_file_chooser_button: Gtk.Button = Gtk.Template.Child()
|
||||||
|
|
||||||
itch_expander_row = Gtk.Template.Child()
|
itch_expander_row: Adw.ExpanderRow = Gtk.Template.Child()
|
||||||
itch_config_action_row = Gtk.Template.Child()
|
itch_config_action_row: Adw.ActionRow = Gtk.Template.Child()
|
||||||
itch_config_file_chooser_button = Gtk.Template.Child()
|
itch_config_file_chooser_button: Gtk.Button = Gtk.Template.Child()
|
||||||
|
|
||||||
legendary_expander_row = Gtk.Template.Child()
|
legendary_expander_row: Adw.ExpanderRow = Gtk.Template.Child()
|
||||||
legendary_config_action_row = Gtk.Template.Child()
|
legendary_config_action_row: Adw.ActionRow = Gtk.Template.Child()
|
||||||
legendary_config_file_chooser_button = Gtk.Template.Child()
|
legendary_config_file_chooser_button: Gtk.Button = Gtk.Template.Child()
|
||||||
|
|
||||||
retroarch_expander_row = Gtk.Template.Child()
|
retroarch_expander_row: Adw.ExpanderRow = Gtk.Template.Child()
|
||||||
retroarch_config_action_row = Gtk.Template.Child()
|
retroarch_config_action_row: Adw.ActionRow = Gtk.Template.Child()
|
||||||
retroarch_config_file_chooser_button = Gtk.Template.Child()
|
retroarch_config_file_chooser_button: Gtk.Button = Gtk.Template.Child()
|
||||||
|
|
||||||
flatpak_expander_row = Gtk.Template.Child()
|
flatpak_expander_row: Adw.ExpanderRow = Gtk.Template.Child()
|
||||||
flatpak_system_data_action_row = Gtk.Template.Child()
|
flatpak_system_data_action_row: Adw.ActionRow = Gtk.Template.Child()
|
||||||
flatpak_system_data_file_chooser_button = Gtk.Template.Child()
|
flatpak_system_data_file_chooser_button: Gtk.Button = Gtk.Template.Child()
|
||||||
flatpak_user_data_action_row = Gtk.Template.Child()
|
flatpak_user_data_action_row: Adw.ActionRow = Gtk.Template.Child()
|
||||||
flatpak_user_data_file_chooser_button = Gtk.Template.Child()
|
flatpak_user_data_file_chooser_button: Gtk.Button = Gtk.Template.Child()
|
||||||
flatpak_import_launchers_switch = Gtk.Template.Child()
|
flatpak_import_launchers_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
|
|
||||||
desktop_switch = Gtk.Template.Child()
|
desktop_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
|
|
||||||
sgdb_key_group = Gtk.Template.Child()
|
sgdb_key_group: Adw.PreferencesGroup = Gtk.Template.Child()
|
||||||
sgdb_key_entry_row = Gtk.Template.Child()
|
sgdb_key_entry_row: Adw.EntryRow = Gtk.Template.Child()
|
||||||
sgdb_switch = Gtk.Template.Child()
|
sgdb_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
sgdb_prefer_switch = Gtk.Template.Child()
|
sgdb_prefer_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
sgdb_animated_switch = Gtk.Template.Child()
|
sgdb_animated_switch: Adw.SwitchRow = Gtk.Template.Child()
|
||||||
sgdb_fetch_button = Gtk.Template.Child()
|
sgdb_fetch_button: Gtk.Button = Gtk.Template.Child()
|
||||||
sgdb_stack = Gtk.Template.Child()
|
sgdb_stack: Gtk.Stack = Gtk.Template.Child()
|
||||||
sgdb_spinner = Gtk.Template.Child()
|
sgdb_spinner: Adw.Spinner = Gtk.Template.Child()
|
||||||
|
|
||||||
danger_zone_group = Gtk.Template.Child()
|
danger_zone_group = Gtk.Template.Child()
|
||||||
remove_all_games_list_box = Gtk.Template.Child()
|
remove_all_games_button_row = Gtk.Template.Child()
|
||||||
reset_list_box = Gtk.Template.Child()
|
reset_button_row = Gtk.Template.Child()
|
||||||
reset_group = Gtk.Template.Child()
|
|
||||||
|
|
||||||
removed_games: set[Game] = set()
|
removed_games: set[Game] = set()
|
||||||
warning_menu_buttons: dict = {}
|
warning_menu_buttons: dict = {}
|
||||||
@@ -144,12 +147,12 @@ class CartridgesPreferences(Adw.PreferencesDialog):
|
|||||||
self.add_controller(shortcut_controller)
|
self.add_controller(shortcut_controller)
|
||||||
|
|
||||||
# General
|
# General
|
||||||
self.remove_all_games_list_box.connect("row-activated", self.remove_all_games)
|
self.remove_all_games_button_row.connect("activated", self.remove_all_games)
|
||||||
|
|
||||||
# Debug
|
# Debug
|
||||||
if shared.PROFILE == "development":
|
if shared.PROFILE == "development":
|
||||||
self.reset_group.set_visible(True)
|
self.reset_button_row.set_visible(True)
|
||||||
self.reset_list_box.connect("row-activated", self.reset_app)
|
self.reset_button_row.connect("activated", self.reset_app)
|
||||||
|
|
||||||
# Sources settings
|
# Sources settings
|
||||||
for source_class in (
|
for source_class in (
|
||||||
@@ -169,6 +172,10 @@ class CartridgesPreferences(Adw.PreferencesDialog):
|
|||||||
else:
|
else:
|
||||||
self.init_source_row(source)
|
self.init_source_row(source)
|
||||||
|
|
||||||
|
# Special case for the desktop source
|
||||||
|
if not DesktopSource().is_available:
|
||||||
|
self.desktop_switch.set_visible(False)
|
||||||
|
|
||||||
# SteamGridDB
|
# SteamGridDB
|
||||||
def sgdb_key_changed(*_args: Any) -> None:
|
def sgdb_key_changed(*_args: Any) -> None:
|
||||||
shared.schema.set_string("sgdb-key", self.sgdb_key_entry_row.get_text())
|
shared.schema.set_string("sgdb-key", self.sgdb_key_entry_row.get_text())
|
||||||
@@ -190,7 +197,7 @@ class CartridgesPreferences(Adw.PreferencesDialog):
|
|||||||
sgdb_manager = shared.store.managers[SgdbManager]
|
sgdb_manager = shared.store.managers[SgdbManager]
|
||||||
sgdb_manager.reset_cancellable()
|
sgdb_manager.reset_cancellable()
|
||||||
|
|
||||||
self.sgdb_spinner.set_spinning(True)
|
self.sgdb_spinner.set_visible(True)
|
||||||
self.sgdb_stack.set_visible_child(self.sgdb_spinner)
|
self.sgdb_stack.set_visible_child(self.sgdb_spinner)
|
||||||
|
|
||||||
self.add_toast(download_toast := Adw.Toast.new(_("Downloading covers…")))
|
self.add_toast(download_toast := Adw.Toast.new(_("Downloading covers…")))
|
||||||
@@ -217,7 +224,7 @@ class CartridgesPreferences(Adw.PreferencesDialog):
|
|||||||
download_toast.dismiss()
|
download_toast.dismiss()
|
||||||
self.add_toast(toast)
|
self.add_toast(toast)
|
||||||
|
|
||||||
self.sgdb_spinner.set_spinning(False)
|
self.sgdb_spinner.set_visible(False)
|
||||||
self.sgdb_stack.set_visible_child(self.sgdb_fetch_button)
|
self.sgdb_stack.set_visible_child(self.sgdb_fetch_button)
|
||||||
|
|
||||||
for game in shared.store:
|
for game in shared.store:
|
||||||
@@ -231,6 +238,7 @@ class CartridgesPreferences(Adw.PreferencesDialog):
|
|||||||
"exit-after-launch",
|
"exit-after-launch",
|
||||||
"cover-launches-game",
|
"cover-launches-game",
|
||||||
"high-quality-images",
|
"high-quality-images",
|
||||||
|
"auto-import",
|
||||||
"remove-missing",
|
"remove-missing",
|
||||||
"lutris-import-steam",
|
"lutris-import-steam",
|
||||||
"lutris-import-flatpak",
|
"lutris-import-flatpak",
|
||||||
@@ -275,7 +283,7 @@ class CartridgesPreferences(Adw.PreferencesDialog):
|
|||||||
) -> None:
|
) -> None:
|
||||||
self.file_chooser.select_folder(shared.win, None, callback, callback_data)
|
self.file_chooser.select_folder(shared.win, None, callback, callback_data)
|
||||||
|
|
||||||
def undo_remove_all(self, *_args: Any) -> None:
|
def undo_remove_all(self, *_args: Any) -> bool:
|
||||||
shared.win.get_application().state = shared.AppState.UNDO_REMOVE_ALL_GAMES
|
shared.win.get_application().state = shared.AppState.UNDO_REMOVE_ALL_GAMES
|
||||||
for game in self.removed_games:
|
for game in self.removed_games:
|
||||||
game.removed = False
|
game.removed = False
|
||||||
@@ -287,6 +295,8 @@ class CartridgesPreferences(Adw.PreferencesDialog):
|
|||||||
shared.win.get_application().state = shared.AppState.DEFAULT
|
shared.win.get_application().state = shared.AppState.DEFAULT
|
||||||
shared.win.create_source_rows()
|
shared.win.create_source_rows()
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
def remove_all_games(self, *_args: Any) -> None:
|
def remove_all_games(self, *_args: Any) -> None:
|
||||||
shared.win.get_application().state = shared.AppState.REMOVE_ALL_GAMES
|
shared.win.get_application().state = shared.AppState.REMOVE_ALL_GAMES
|
||||||
shared.win.row_selected(None, shared.win.all_games_row_box.get_parent())
|
shared.win.row_selected(None, shared.win.all_games_row_box.get_parent())
|
||||||
|
|||||||
@@ -64,6 +64,8 @@ local_appdata_dir = Path(
|
|||||||
)
|
)
|
||||||
programfiles32_dir = Path(getenv("programfiles(x86)") or r"C:\Program Files (x86)")
|
programfiles32_dir = Path(getenv("programfiles(x86)") or r"C:\Program Files (x86)")
|
||||||
|
|
||||||
|
app_support_dir = home / "Library" / "Application Support"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
scale_factor = max(
|
scale_factor = max(
|
||||||
monitor.get_scale_factor()
|
monitor.get_scale_factor()
|
||||||
@@ -79,4 +81,4 @@ win = None
|
|||||||
importer = None
|
importer = None
|
||||||
import_time = None
|
import_time = None
|
||||||
store = None
|
store = None
|
||||||
log_files = None
|
log_files = []
|
||||||
|
|||||||
78
cartridges/shared.pyi
Normal file
78
cartridges/shared.pyi
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
# shared.pyi
|
||||||
|
#
|
||||||
|
# Copyright 2024 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 typing import Optional
|
||||||
|
|
||||||
|
from gi.repository import Gio
|
||||||
|
|
||||||
|
from cartridges.importer.importer import Importer
|
||||||
|
from cartridges.store.store import Store
|
||||||
|
from cartridges.window import CartridgesWindow
|
||||||
|
|
||||||
|
|
||||||
|
class AppState:
|
||||||
|
DEFAULT: int
|
||||||
|
LOAD_FROM_DISK: int
|
||||||
|
IMPORT: int
|
||||||
|
REMOVE_ALL_GAMES: int
|
||||||
|
UNDO_REMOVE_ALL_GAMES: int
|
||||||
|
|
||||||
|
|
||||||
|
APP_ID: str
|
||||||
|
VERSION: str
|
||||||
|
PREFIX: str
|
||||||
|
PROFILE: str
|
||||||
|
TIFF_COMPRESSION: str
|
||||||
|
SPEC_VERSION: float
|
||||||
|
|
||||||
|
schema: Gio.Settings
|
||||||
|
state_schema: Gio.Settings
|
||||||
|
|
||||||
|
home: Path
|
||||||
|
|
||||||
|
data_dir: Path
|
||||||
|
host_data_dir: Path
|
||||||
|
|
||||||
|
config_dir: Path
|
||||||
|
host_config_dir: Path
|
||||||
|
|
||||||
|
cache_dir: Path
|
||||||
|
host_cache_dir: Path
|
||||||
|
|
||||||
|
flatpak_dir: Path
|
||||||
|
|
||||||
|
games_dir: Path
|
||||||
|
covers_dir: Path
|
||||||
|
|
||||||
|
appdata_dir: Path
|
||||||
|
local_appdata_dir: Path
|
||||||
|
programfiles32_dir: Path
|
||||||
|
|
||||||
|
app_support_dir: Path
|
||||||
|
|
||||||
|
|
||||||
|
scale_factor: int
|
||||||
|
image_size: int
|
||||||
|
|
||||||
|
win: Optional[CartridgesWindow]
|
||||||
|
importer: Optional[Importer]
|
||||||
|
import_time: Optional[int]
|
||||||
|
store = Optional[Store]
|
||||||
|
log_files: list[Path]
|
||||||
@@ -19,10 +19,10 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import NamedTuple
|
from typing import NamedTuple, Optional
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
from gi.repository import GdkPixbuf, Gio
|
from gi.repository import GdkPixbuf, Gio, GLib
|
||||||
from requests.exceptions import HTTPError, SSLError
|
from requests.exceptions import HTTPError, SSLError
|
||||||
|
|
||||||
from cartridges import shared
|
from cartridges import shared
|
||||||
@@ -128,9 +128,21 @@ class CoverManager(Manager):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
# Load source image
|
# Load source image
|
||||||
source = GdkPixbuf.Pixbuf.new_from_file(
|
try:
|
||||||
str(convert_cover(image_path, resize=False))
|
source = GdkPixbuf.Pixbuf.new_from_file(
|
||||||
)
|
str(image_path)
|
||||||
|
)
|
||||||
|
except GLib.Error:
|
||||||
|
tmp_cover_path = convert_cover(image_path, resize=False)
|
||||||
|
|
||||||
|
if tmp_cover_path:
|
||||||
|
source = GdkPixbuf.Pixbuf.new_from_file(
|
||||||
|
str(tmp_cover_path)
|
||||||
|
)
|
||||||
|
tmp_cover_path.unlink(missing_ok=True)
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
source_size = ImageSize(source.get_width(), source.get_height())
|
source_size = ImageSize(source.get_width(), source.get_height())
|
||||||
cover_size = ImageSize._make(shared.image_size)
|
cover_size = ImageSize._make(shared.image_size)
|
||||||
|
|
||||||
@@ -192,7 +204,8 @@ class CoverManager(Manager):
|
|||||||
|
|
||||||
save_cover(
|
save_cover(
|
||||||
game.game_id,
|
game.game_id,
|
||||||
convert_cover(
|
pixbuf=self.composite_cover(image_path, **composite_kwargs),
|
||||||
pixbuf=self.composite_cover(image_path, **composite_kwargs)
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if key == "online_cover_url":
|
||||||
|
image_path.unlink(missing_ok=True)
|
||||||
|
|||||||
@@ -48,16 +48,10 @@ class SteamAPIManager(AsyncManager):
|
|||||||
appid = additional_data.get("steam_appid", None)
|
appid = additional_data.get("steam_appid", None)
|
||||||
if appid is None:
|
if appid is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
# Get online metadata
|
# Get online metadata
|
||||||
try:
|
try:
|
||||||
online_data = self.steam_api_helper.get_api_data(appid=appid)
|
online_data = self.steam_api_helper.get_api_data(appid=appid)
|
||||||
|
except (SteamNotAGameError, SteamGameNotFoundError):
|
||||||
except SteamGameNotFoundError:
|
|
||||||
return
|
|
||||||
|
|
||||||
except SteamNotAGameError:
|
|
||||||
game.update_values({"blacklisted": True})
|
game.update_values({"blacklisted": True})
|
||||||
|
|
||||||
else:
|
else:
|
||||||
game.update_values(online_data)
|
game.update_values(online_data)
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ def create_dialog(
|
|||||||
dialog.add_response("dismiss", _("Dismiss"))
|
dialog.add_response("dismiss", _("Dismiss"))
|
||||||
|
|
||||||
if extra_option:
|
if extra_option:
|
||||||
dialog.add_response(extra_option, _(extra_label))
|
dialog.add_response(extra_option, extra_label or "")
|
||||||
|
|
||||||
dialog.choose(win)
|
dialog.choose(win)
|
||||||
return dialog
|
return dialog
|
||||||
|
|||||||
@@ -30,24 +30,11 @@ from cartridges import shared
|
|||||||
|
|
||||||
def convert_cover(
|
def convert_cover(
|
||||||
cover_path: Optional[Path] = None,
|
cover_path: Optional[Path] = None,
|
||||||
pixbuf: Optional[GdkPixbuf.Pixbuf] = None,
|
|
||||||
resize: bool = True,
|
resize: bool = True,
|
||||||
) -> Optional[Path]:
|
) -> Optional[Path]:
|
||||||
if not cover_path and not pixbuf:
|
if not cover_path and not pixbuf:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
pixbuf_extensions = set()
|
|
||||||
for pixbuf_format in GdkPixbuf.Pixbuf.get_formats():
|
|
||||||
for pixbuf_extension in pixbuf_format.get_extensions():
|
|
||||||
pixbuf_extensions.add(pixbuf_extension)
|
|
||||||
|
|
||||||
if not resize and cover_path and cover_path.suffix.lower()[1:] in pixbuf_extensions:
|
|
||||||
return cover_path
|
|
||||||
|
|
||||||
if pixbuf:
|
|
||||||
cover_path = Path(Gio.File.new_tmp("XXXXXX.tiff")[0].get_path())
|
|
||||||
pixbuf.savev(str(cover_path), "tiff", ["compression"], ["1"])
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with Image.open(cover_path) as image:
|
with Image.open(cover_path) as image:
|
||||||
if getattr(image, "is_animated", False):
|
if getattr(image, "is_animated", False):
|
||||||
@@ -76,7 +63,7 @@ def convert_cover(
|
|||||||
if shared.schema.get_boolean("high-quality-images")
|
if shared.schema.get_boolean("high-quality-images")
|
||||||
else shared.TIFF_COMPRESSION,
|
else shared.TIFF_COMPRESSION,
|
||||||
)
|
)
|
||||||
except UnidentifiedImageError:
|
except (UnidentifiedImageError, OSError, ValueError):
|
||||||
try:
|
try:
|
||||||
Gdk.Texture.new_from_filename(str(cover_path)).save_to_tiff(
|
Gdk.Texture.new_from_filename(str(cover_path)).save_to_tiff(
|
||||||
tmp_path := Gio.File.new_tmp("XXXXXX.tiff")[0].get_path()
|
tmp_path := Gio.File.new_tmp("XXXXXX.tiff")[0].get_path()
|
||||||
@@ -88,7 +75,11 @@ def convert_cover(
|
|||||||
return tmp_path
|
return tmp_path
|
||||||
|
|
||||||
|
|
||||||
def save_cover(game_id: str, cover_path: Path) -> None:
|
def save_cover(
|
||||||
|
game_id: str,
|
||||||
|
cover_path: Optional[Path] = None,
|
||||||
|
pixbuf: Optional[GdkPixbuf.Pixbuf] = None,
|
||||||
|
) -> None:
|
||||||
shared.covers_dir.mkdir(parents=True, exist_ok=True)
|
shared.covers_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
animated_path = shared.covers_dir / f"{game_id}.gif"
|
animated_path = shared.covers_dir / f"{game_id}.gif"
|
||||||
@@ -98,7 +89,15 @@ def save_cover(game_id: str, cover_path: Path) -> None:
|
|||||||
animated_path.unlink(missing_ok=True)
|
animated_path.unlink(missing_ok=True)
|
||||||
static_path.unlink(missing_ok=True)
|
static_path.unlink(missing_ok=True)
|
||||||
|
|
||||||
if not cover_path:
|
if not cover_path and not pixbuf:
|
||||||
|
return
|
||||||
|
|
||||||
|
if pixbuf:
|
||||||
|
pixbuf.savev(str(static_path), "tiff", ["compression"], ["1"])
|
||||||
|
|
||||||
|
if game_id in shared.win.game_covers:
|
||||||
|
shared.win.game_covers[game_id].new_cover(static_path)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
copyfile(
|
copyfile(
|
||||||
|
|||||||
@@ -134,7 +134,11 @@ class SgdbHelper:
|
|||||||
tmp_file = Gio.File.new_tmp()[0]
|
tmp_file = Gio.File.new_tmp()[0]
|
||||||
tmp_file_path = tmp_file.get_path()
|
tmp_file_path = tmp_file.get_path()
|
||||||
Path(tmp_file_path).write_bytes(response.content)
|
Path(tmp_file_path).write_bytes(response.content)
|
||||||
save_cover(game.game_id, convert_cover(tmp_file_path))
|
tmp_cover_path = convert_cover(tmp_file_path)
|
||||||
|
if tmp_cover_path:
|
||||||
|
save_cover(game.game_id, tmp_cover_path)
|
||||||
|
tmp_cover_path.unlink(missing_ok=True)
|
||||||
|
tmp_file_path.unlink(missing_ok=True)
|
||||||
except SgdbAuthError as error:
|
except SgdbAuthError as error:
|
||||||
# Let caller handle auth errors
|
# Let caller handle auth errors
|
||||||
raise error
|
raise error
|
||||||
|
|||||||
@@ -17,9 +17,12 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
# pyright: reportAssignmentType=none
|
||||||
|
|
||||||
|
from sys import platform
|
||||||
from typing import Any, Optional
|
from typing import Any, Optional
|
||||||
|
|
||||||
from gi.repository import Adw, Gio, GLib, Gtk
|
from gi.repository import Adw, Gio, GLib, Gtk, Pango
|
||||||
|
|
||||||
from cartridges import shared
|
from cartridges import shared
|
||||||
from cartridges.game import Game
|
from cartridges.game import Game
|
||||||
@@ -31,51 +34,52 @@ from cartridges.utils.relative_date import relative_date
|
|||||||
class CartridgesWindow(Adw.ApplicationWindow):
|
class CartridgesWindow(Adw.ApplicationWindow):
|
||||||
__gtype_name__ = "CartridgesWindow"
|
__gtype_name__ = "CartridgesWindow"
|
||||||
|
|
||||||
overlay_split_view = Gtk.Template.Child()
|
overlay_split_view: Adw.OverlaySplitView = Gtk.Template.Child()
|
||||||
navigation_view = Gtk.Template.Child()
|
navigation_view: Adw.NavigationView = Gtk.Template.Child()
|
||||||
sidebar = Gtk.Template.Child()
|
sidebar_navigation_page: Adw.NavigationPage = Gtk.Template.Child()
|
||||||
all_games_row_box = Gtk.Template.Child()
|
sidebar: Gtk.ListBox = Gtk.Template.Child()
|
||||||
all_games_no_label = Gtk.Template.Child()
|
all_games_row_box: Gtk.Box = Gtk.Template.Child()
|
||||||
added_row_box = Gtk.Template.Child()
|
all_games_no_label: Gtk.Label = Gtk.Template.Child()
|
||||||
added_games_no_label = Gtk.Template.Child()
|
added_row_box: Gtk.Box = Gtk.Template.Child()
|
||||||
toast_overlay = Gtk.Template.Child()
|
added_games_no_label: Gtk.Label = Gtk.Template.Child()
|
||||||
primary_menu_button = Gtk.Template.Child()
|
toast_overlay: Adw.ToastOverlay = Gtk.Template.Child()
|
||||||
show_sidebar_button = Gtk.Template.Child()
|
primary_menu_button: Gtk.MenuButton = Gtk.Template.Child()
|
||||||
details_view = Gtk.Template.Child()
|
show_sidebar_button: Gtk.Button = Gtk.Template.Child()
|
||||||
library_page = Gtk.Template.Child()
|
details_view: Gtk.Overlay = Gtk.Template.Child()
|
||||||
library_view = Gtk.Template.Child()
|
library_page: Adw.NavigationPage = Gtk.Template.Child()
|
||||||
library = Gtk.Template.Child()
|
library_view: Adw.ToolbarView = Gtk.Template.Child()
|
||||||
scrolledwindow = Gtk.Template.Child()
|
library: Gtk.FlowBox = Gtk.Template.Child()
|
||||||
library_overlay = Gtk.Template.Child()
|
scrolledwindow: Gtk.ScrolledWindow = Gtk.Template.Child()
|
||||||
notice_empty = Gtk.Template.Child()
|
library_overlay: Gtk.Overlay = Gtk.Template.Child()
|
||||||
notice_no_results = Gtk.Template.Child()
|
notice_empty: Adw.StatusPage = Gtk.Template.Child()
|
||||||
search_bar = Gtk.Template.Child()
|
notice_no_results: Adw.StatusPage = Gtk.Template.Child()
|
||||||
search_entry = Gtk.Template.Child()
|
search_bar: Gtk.SearchBar = Gtk.Template.Child()
|
||||||
search_button = Gtk.Template.Child()
|
search_entry: Gtk.SearchEntry = Gtk.Template.Child()
|
||||||
|
search_button: Gtk.ToggleButton = Gtk.Template.Child()
|
||||||
|
|
||||||
details_page = Gtk.Template.Child()
|
details_page: Adw.NavigationPage = Gtk.Template.Child()
|
||||||
details_view_toolbar_view = Gtk.Template.Child()
|
details_view_toolbar_view: Adw.ToolbarView = Gtk.Template.Child()
|
||||||
details_view_cover = Gtk.Template.Child()
|
details_view_cover: Gtk.Picture = Gtk.Template.Child()
|
||||||
details_view_spinner = Gtk.Template.Child()
|
details_view_spinner: Adw.Spinner = Gtk.Template.Child()
|
||||||
details_view_title = Gtk.Template.Child()
|
details_view_title: Gtk.Label = Gtk.Template.Child()
|
||||||
details_view_blurred_cover = Gtk.Template.Child()
|
details_view_blurred_cover: Gtk.Picture = Gtk.Template.Child()
|
||||||
details_view_play_button = Gtk.Template.Child()
|
details_view_play_button: Gtk.Button = Gtk.Template.Child()
|
||||||
details_view_developer = Gtk.Template.Child()
|
details_view_developer: Gtk.Label = Gtk.Template.Child()
|
||||||
details_view_added = Gtk.Template.Child()
|
details_view_added: Gtk.ShortcutLabel = Gtk.Template.Child()
|
||||||
details_view_last_played = Gtk.Template.Child()
|
details_view_last_played: Gtk.Label = Gtk.Template.Child()
|
||||||
details_view_hide_button = Gtk.Template.Child()
|
details_view_hide_button: Gtk.Button = Gtk.Template.Child()
|
||||||
|
|
||||||
hidden_library_page = Gtk.Template.Child()
|
hidden_library_page: Adw.NavigationPage = Gtk.Template.Child()
|
||||||
hidden_primary_menu_button = Gtk.Template.Child()
|
hidden_primary_menu_button: Gtk.MenuButton = Gtk.Template.Child()
|
||||||
hidden_library = Gtk.Template.Child()
|
hidden_library: Gtk.FlowBox = Gtk.Template.Child()
|
||||||
hidden_library_view = Gtk.Template.Child()
|
hidden_library_view: Adw.ToolbarView = Gtk.Template.Child()
|
||||||
hidden_scrolledwindow = Gtk.Template.Child()
|
hidden_scrolledwindow: Gtk.ScrolledWindow = Gtk.Template.Child()
|
||||||
hidden_library_overlay = Gtk.Template.Child()
|
hidden_library_overlay: Gtk.Overlay = Gtk.Template.Child()
|
||||||
hidden_notice_empty = Gtk.Template.Child()
|
hidden_notice_empty: Adw.StatusPage = Gtk.Template.Child()
|
||||||
hidden_notice_no_results = Gtk.Template.Child()
|
hidden_notice_no_results: Adw.StatusPage = Gtk.Template.Child()
|
||||||
hidden_search_bar = Gtk.Template.Child()
|
hidden_search_bar: Gtk.SearchBar = Gtk.Template.Child()
|
||||||
hidden_search_entry = Gtk.Template.Child()
|
hidden_search_entry: Gtk.SearchEntry = Gtk.Template.Child()
|
||||||
hidden_search_button = Gtk.Template.Child()
|
hidden_search_button: Gtk.ToggleButton = Gtk.Template.Child()
|
||||||
|
|
||||||
game_covers: dict = {}
|
game_covers: dict = {}
|
||||||
toasts: dict = {}
|
toasts: dict = {}
|
||||||
@@ -152,6 +156,8 @@ class CartridgesWindow(Adw.ApplicationWindow):
|
|||||||
Gtk.Label(
|
Gtk.Label(
|
||||||
label=self.get_application().get_source_name(source_id),
|
label=self.get_application().get_source_name(source_id),
|
||||||
halign=Gtk.Align.START,
|
halign=Gtk.Align.START,
|
||||||
|
wrap=True,
|
||||||
|
wrap_mode=Pango.WrapMode.CHAR,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -213,6 +219,9 @@ class CartridgesWindow(Adw.ApplicationWindow):
|
|||||||
def __init__(self, **kwargs: Any) -> None:
|
def __init__(self, **kwargs: Any) -> None:
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
||||||
|
if platform == "darwin":
|
||||||
|
self.sidebar_navigation_page.set_title("")
|
||||||
|
|
||||||
self.details_view.set_measure_overlay(self.details_view_toolbar_view, True)
|
self.details_view.set_measure_overlay(self.details_view_toolbar_view, True)
|
||||||
self.details_view.set_clip_overlay(self.details_view_toolbar_view, False)
|
self.details_view.set_clip_overlay(self.details_view_toolbar_view, False)
|
||||||
|
|
||||||
@@ -342,7 +351,7 @@ class CartridgesWindow(Adw.ApplicationWindow):
|
|||||||
self.active_game = game
|
self.active_game = game
|
||||||
|
|
||||||
self.details_view_cover.set_opacity(int(not game.loading))
|
self.details_view_cover.set_opacity(int(not game.loading))
|
||||||
self.details_view_spinner.set_spinning(game.loading)
|
self.details_view_spinner.set_visible(game.loading)
|
||||||
|
|
||||||
self.details_view_developer.set_label(game.developer or "")
|
self.details_view_developer.set_label(game.developer or "")
|
||||||
self.details_view_developer.set_visible(bool(game.developer))
|
self.details_view_developer.set_visible(bool(game.developer))
|
||||||
@@ -443,6 +452,9 @@ class CartridgesWindow(Adw.ApplicationWindow):
|
|||||||
self.navigation_view.pop_to_page(self.library_page)
|
self.navigation_view.pop_to_page(self.library_page)
|
||||||
|
|
||||||
def on_show_hidden_action(self, *_args: Any) -> None:
|
def on_show_hidden_action(self, *_args: Any) -> None:
|
||||||
|
if self.navigation_view.get_visible_page() == self.hidden_library_page:
|
||||||
|
return
|
||||||
|
|
||||||
self.navigation_view.push(self.hidden_library_page)
|
self.navigation_view.push(self.hidden_library_page)
|
||||||
|
|
||||||
def on_sort_action(self, action: Gio.SimpleAction, state: GLib.Variant) -> None:
|
def on_sort_action(self, action: Gio.SimpleAction, state: GLib.Variant) -> None:
|
||||||
|
|||||||
@@ -31,9 +31,8 @@ template $DetailsDialog: Adw.Dialog {
|
|||||||
|
|
||||||
Overlay {
|
Overlay {
|
||||||
[overlay]
|
[overlay]
|
||||||
Spinner spinner {
|
Adw.Spinner spinner {
|
||||||
margin-start: 72;
|
visible: false;
|
||||||
margin-end: 72;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Overlay cover_overlay {
|
Overlay cover_overlay {
|
||||||
|
|||||||
@@ -64,9 +64,8 @@ template $Game: Box {
|
|||||||
|
|
||||||
Overlay {
|
Overlay {
|
||||||
[overlay]
|
[overlay]
|
||||||
Spinner spinner {
|
Adw.Spinner spinner {
|
||||||
margin-start: 72;
|
visible: false;
|
||||||
margin-end: 72;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Picture cover {
|
Picture cover {
|
||||||
|
|||||||
@@ -33,76 +33,21 @@ template $CartridgesPreferences: Adw.PreferencesDialog {
|
|||||||
|
|
||||||
Adw.PreferencesGroup danger_zone_group {
|
Adw.PreferencesGroup danger_zone_group {
|
||||||
title: _("Danger Zone");
|
title: _("Danger Zone");
|
||||||
|
separate-rows: true;
|
||||||
|
|
||||||
ListBox remove_all_games_list_box {
|
Adw.ButtonRow remove_all_games_button_row {
|
||||||
Adw.PreferencesRow {
|
title: _("Remove All Games");
|
||||||
activatable: true;
|
|
||||||
selectable: false;
|
|
||||||
|
|
||||||
Box {
|
|
||||||
spacing: 6;
|
|
||||||
valign: center;
|
|
||||||
halign: center;
|
|
||||||
|
|
||||||
Label {
|
|
||||||
label: _("Remove All Games");
|
|
||||||
ellipsize: end;
|
|
||||||
|
|
||||||
styles [
|
|
||||||
"heading",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
styles [
|
|
||||||
"header",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
styles [
|
|
||||||
"error",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
styles [
|
styles [
|
||||||
"boxed-list",
|
"destructive-action"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Adw.PreferencesGroup reset_group {
|
Adw.ButtonRow reset_button_row {
|
||||||
visible: false;
|
title: "Reset App";
|
||||||
|
|
||||||
ListBox reset_list_box {
|
|
||||||
Adw.PreferencesRow {
|
|
||||||
activatable: true;
|
|
||||||
selectable: false;
|
|
||||||
|
|
||||||
Box {
|
|
||||||
spacing: 6;
|
|
||||||
valign: center;
|
|
||||||
halign: center;
|
|
||||||
|
|
||||||
Label {
|
|
||||||
label: "Reset App";
|
|
||||||
ellipsize: end;
|
|
||||||
|
|
||||||
styles [
|
|
||||||
"heading",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
styles [
|
|
||||||
"header",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
styles [
|
|
||||||
"error",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
styles [
|
styles [
|
||||||
"boxed-list",
|
"destructive-action"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -116,6 +61,10 @@ template $CartridgesPreferences: Adw.PreferencesDialog {
|
|||||||
Adw.PreferencesGroup import_behavior_group {
|
Adw.PreferencesGroup import_behavior_group {
|
||||||
title: _("Behavior");
|
title: _("Behavior");
|
||||||
|
|
||||||
|
Adw.SwitchRow auto_import_switch {
|
||||||
|
title: _("Import Games Automatically");
|
||||||
|
}
|
||||||
|
|
||||||
Adw.SwitchRow remove_missing_switch {
|
Adw.SwitchRow remove_missing_switch {
|
||||||
title: _("Remove Uninstalled Games");
|
title: _("Remove Uninstalled Games");
|
||||||
}
|
}
|
||||||
@@ -123,6 +72,7 @@ template $CartridgesPreferences: Adw.PreferencesDialog {
|
|||||||
|
|
||||||
Adw.PreferencesGroup sources_group {
|
Adw.PreferencesGroup sources_group {
|
||||||
title: _("Sources");
|
title: _("Sources");
|
||||||
|
separate-rows: true;
|
||||||
|
|
||||||
Adw.ExpanderRow steam_expander_row {
|
Adw.ExpanderRow steam_expander_row {
|
||||||
title: _("Steam");
|
title: _("Steam");
|
||||||
@@ -440,7 +390,8 @@ template $CartridgesPreferences: Adw.PreferencesDialog {
|
|||||||
valign: center;
|
valign: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
Spinner sgdb_spinner {
|
Adw.Spinner sgdb_spinner {
|
||||||
|
visible: false;
|
||||||
valign: center;
|
valign: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
@define-color accent_color @purple_1;
|
:root {
|
||||||
@define-color accent_bg_color @purple_4;
|
--accent-color: var(--purple-1);
|
||||||
|
--accent-bg-color: var(--purple-4);
|
||||||
|
}
|
||||||
|
|
||||||
#details_view {
|
#details_view {
|
||||||
background-color: black;
|
background-color: black;
|
||||||
@@ -8,4 +10,4 @@
|
|||||||
#details_view_play_button {
|
#details_view_play_button {
|
||||||
color: rgba(0, 0, 0, .8);
|
color: rgba(0, 0, 0, .8);
|
||||||
background-color: white;
|
background-color: white;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
@define-color accent_color @purple_5;
|
:root {
|
||||||
@define-color accent_bg_color @purple_3;
|
--accent-color: var(--purple-5);
|
||||||
|
--accent-bg-color: var(--purple-3);
|
||||||
|
}
|
||||||
|
|
||||||
#details_view {
|
#details_view {
|
||||||
background-color: white;
|
background-color: white;
|
||||||
@@ -8,4 +10,4 @@
|
|||||||
#details_view_play_button {
|
#details_view_play_button {
|
||||||
color: white;
|
color: white;
|
||||||
background-color: rgba(0, 0, 0, .8);
|
background-color: rgba(0, 0, 0, .8);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ template $CartridgesWindow: Adw.ApplicationWindow {
|
|||||||
sidebar-width-fraction: .2;
|
sidebar-width-fraction: .2;
|
||||||
|
|
||||||
[sidebar]
|
[sidebar]
|
||||||
Adw.NavigationPage {
|
Adw.NavigationPage sidebar_navigation_page {
|
||||||
title: _("Cartridges");
|
title: _("Cartridges");
|
||||||
|
|
||||||
Adw.ToolbarView {
|
Adw.ToolbarView {
|
||||||
@@ -94,6 +94,8 @@ template $CartridgesWindow: Adw.ApplicationWindow {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ScrolledWindow {
|
ScrolledWindow {
|
||||||
|
hscrollbar-policy: never;
|
||||||
|
|
||||||
ListBox sidebar {
|
ListBox sidebar {
|
||||||
Box all_games_row_box {
|
Box all_games_row_box {
|
||||||
margin-top: 12;
|
margin-top: 12;
|
||||||
@@ -109,6 +111,8 @@ template $CartridgesWindow: Adw.ApplicationWindow {
|
|||||||
Label {
|
Label {
|
||||||
halign: start;
|
halign: start;
|
||||||
label: _("All Games");
|
label: _("All Games");
|
||||||
|
wrap: true;
|
||||||
|
wrap-mode: char;
|
||||||
}
|
}
|
||||||
|
|
||||||
Label all_games_no_label {
|
Label all_games_no_label {
|
||||||
@@ -135,6 +139,8 @@ template $CartridgesWindow: Adw.ApplicationWindow {
|
|||||||
halign: start;
|
halign: start;
|
||||||
label: _("Added");
|
label: _("Added");
|
||||||
margin-end: 6;
|
margin-end: 6;
|
||||||
|
wrap: true;
|
||||||
|
wrap-mode: char;
|
||||||
}
|
}
|
||||||
|
|
||||||
Label added_games_no_label {
|
Label added_games_no_label {
|
||||||
@@ -175,15 +181,11 @@ template $CartridgesWindow: Adw.ApplicationWindow {
|
|||||||
[top]
|
[top]
|
||||||
Adw.HeaderBar header_bar {
|
Adw.HeaderBar header_bar {
|
||||||
[start]
|
[start]
|
||||||
Revealer {
|
Button show_sidebar_button {
|
||||||
transition-type: slide_right;
|
icon-name: "sidebar-show-symbolic";
|
||||||
reveal-child: bind overlay_split_view.show-sidebar inverted;
|
action-name: "win.show_sidebar";
|
||||||
|
tooltip-text: _("Toggle Sidebar");
|
||||||
Button show_sidebar_button {
|
visible: bind overlay_split_view.show-sidebar inverted;
|
||||||
icon-name: "sidebar-show-symbolic";
|
|
||||||
action-name: "win.show_sidebar";
|
|
||||||
tooltip-text: _("Toggle Sidebar");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[start]
|
[start]
|
||||||
@@ -339,9 +341,8 @@ Adw.NavigationPage details_page {
|
|||||||
|
|
||||||
Overlay {
|
Overlay {
|
||||||
[overlay]
|
[overlay]
|
||||||
Spinner details_view_spinner {
|
Adw.Spinner details_view_spinner {
|
||||||
margin-start: 72;
|
visible: false;
|
||||||
margin-end: 72;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Picture details_view_cover {
|
Picture details_view_cover {
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
scalable_dir = join_paths('hicolor', 'scalable', 'apps')
|
scalable_dir = join_paths('hicolor', 'scalable', 'apps')
|
||||||
install_data(
|
install_data(
|
||||||
join_paths(scalable_dir, ('@0@.svg').format(app_id)),
|
join_paths(scalable_dir, ('@0@.svg').format(app_id)),
|
||||||
install_dir: join_paths(get_option('datadir'), 'icons', scalable_dir)
|
install_dir: join_paths(get_option('datadir'), 'icons', scalable_dir),
|
||||||
)
|
)
|
||||||
|
|
||||||
symbolic_dir = join_paths('hicolor', 'symbolic', 'apps')
|
symbolic_dir = join_paths('hicolor', 'symbolic', 'apps')
|
||||||
install_data(
|
install_data(
|
||||||
join_paths(symbolic_dir, ('@0@-symbolic.svg').format(app_id)),
|
join_paths(symbolic_dir, ('@0@-symbolic.svg').format(app_id)),
|
||||||
install_dir: join_paths(get_option('datadir'), 'icons', symbolic_dir)
|
install_dir: join_paths(get_option('datadir'), 'icons', symbolic_dir),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,20 +1,28 @@
|
|||||||
blueprints = custom_target('blueprints',
|
blueprints = custom_target(
|
||||||
|
'blueprints',
|
||||||
input: files(
|
input: files(
|
||||||
'gtk/help-overlay.blp',
|
'gtk/details-dialog.blp',
|
||||||
'gtk/window.blp',
|
|
||||||
'gtk/game.blp',
|
'gtk/game.blp',
|
||||||
|
'gtk/help-overlay.blp',
|
||||||
'gtk/preferences.blp',
|
'gtk/preferences.blp',
|
||||||
'gtk/details-dialog.blp'
|
'gtk/window.blp',
|
||||||
),
|
),
|
||||||
output: '.',
|
output: '.',
|
||||||
command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'],
|
command: [
|
||||||
|
find_program('blueprint-compiler'),
|
||||||
|
'batch-compile',
|
||||||
|
'@OUTPUT@',
|
||||||
|
'@CURRENT_SOURCE_DIR@',
|
||||||
|
'@INPUT@',
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
gnome.compile_resources('cartridges',
|
gnome.compile_resources(
|
||||||
|
'cartridges',
|
||||||
configure_file(
|
configure_file(
|
||||||
input: 'cartridges.gresource.xml.in',
|
input: 'cartridges.gresource.xml.in',
|
||||||
output: 'cartridges.gresource.xml',
|
output: 'cartridges.gresource.xml',
|
||||||
configuration: conf
|
configuration: conf,
|
||||||
),
|
),
|
||||||
gresource_bundle: true,
|
gresource_bundle: true,
|
||||||
install: true,
|
install: true,
|
||||||
@@ -22,27 +30,26 @@ gnome.compile_resources('cartridges',
|
|||||||
dependencies: blueprints,
|
dependencies: blueprints,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
if host_machine.system() == 'windows'
|
if host_machine.system() == 'windows'
|
||||||
desktop_file = configure_file(
|
desktop_file = configure_file(
|
||||||
input: 'page.kramo.Cartridges.desktop.in',
|
input: 'page.kramo.Cartridges.desktop.in',
|
||||||
output: app_id + '.desktop.in',
|
output: app_id + '.desktop.in',
|
||||||
configuration: conf,
|
configuration: conf,
|
||||||
install: true,
|
install: true,
|
||||||
install_dir: join_paths(get_option('datadir'), 'applications')
|
install_dir: join_paths(get_option('datadir'), 'applications'),
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
desktop_file = i18n.merge_file(
|
desktop_file = i18n.merge_file(
|
||||||
input: configure_file(
|
input: configure_file(
|
||||||
input: 'page.kramo.Cartridges.desktop.in',
|
input: 'page.kramo.Cartridges.desktop.in',
|
||||||
output: app_id + '.desktop.in',
|
output: app_id + '.desktop.in',
|
||||||
configuration: conf
|
configuration: conf,
|
||||||
),
|
),
|
||||||
output: app_id + '.desktop',
|
output: app_id + '.desktop',
|
||||||
type: 'desktop',
|
type: 'desktop',
|
||||||
po_dir: '../po',
|
po_dir: '../po',
|
||||||
install: true,
|
install: true,
|
||||||
install_dir: join_paths(get_option('datadir'), 'applications')
|
install_dir: join_paths(get_option('datadir'), 'applications'),
|
||||||
)
|
)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -59,29 +66,30 @@ if host_machine.system() == 'windows'
|
|||||||
output: app_id + '.metainfo.xml',
|
output: app_id + '.metainfo.xml',
|
||||||
configuration: conf,
|
configuration: conf,
|
||||||
install: true,
|
install: true,
|
||||||
install_dir: join_paths(get_option('datadir'), 'metainfo')
|
install_dir: join_paths(get_option('datadir'), 'metainfo'),
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
appstream_file = i18n.merge_file(
|
appstream_file = i18n.merge_file(
|
||||||
input: configure_file(
|
input: configure_file(
|
||||||
input: 'page.kramo.Cartridges.metainfo.xml.in',
|
input: 'page.kramo.Cartridges.metainfo.xml.in',
|
||||||
output: app_id + '.metainfo.xml.in',
|
output: app_id + '.metainfo.xml.in',
|
||||||
configuration: conf
|
configuration: conf,
|
||||||
),
|
),
|
||||||
output: app_id + '.metainfo.xml',
|
output: app_id + '.metainfo.xml',
|
||||||
po_dir: '../po',
|
po_dir: '../po',
|
||||||
install: true,
|
install: true,
|
||||||
install_dir: join_paths(get_option('datadir'), 'metainfo')
|
install_dir: join_paths(get_option('datadir'), 'metainfo'),
|
||||||
)
|
)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if host_machine.system() != 'windows'
|
if host_machine.system() != 'windows'
|
||||||
appstreamcli = find_program('appstreamcli', required: false)
|
appstreamcli = find_program('appstreamcli', required: false)
|
||||||
if appstreamcli.found()
|
if appstreamcli.found()
|
||||||
test('Validate appstream file',
|
test(
|
||||||
|
'Validate appstream file',
|
||||||
appstreamcli,
|
appstreamcli,
|
||||||
args: ['validate', '--no-net', '--explain', appstream_file],
|
args: ['validate', '--no-net', '--explain', appstream_file],
|
||||||
workdir: meson.current_build_dir()
|
workdir: meson.current_build_dir(),
|
||||||
)
|
)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -90,16 +98,18 @@ install_data(
|
|||||||
configure_file(
|
configure_file(
|
||||||
input: 'page.kramo.Cartridges.gschema.xml.in',
|
input: 'page.kramo.Cartridges.gschema.xml.in',
|
||||||
output: app_id + '.gschema.xml',
|
output: app_id + '.gschema.xml',
|
||||||
configuration: conf
|
configuration: conf,
|
||||||
),
|
),
|
||||||
install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas')
|
install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas'),
|
||||||
)
|
)
|
||||||
|
|
||||||
compile_schemas = find_program('glib-compile-schemas', required: false)
|
compile_schemas = find_program('glib-compile-schemas', required: false)
|
||||||
if compile_schemas.found()
|
if compile_schemas.found()
|
||||||
test('Validate schema file',
|
test(
|
||||||
compile_schemas,
|
'Validate schema file',
|
||||||
args: ['--strict', '--dry-run', meson.current_source_dir()])
|
compile_schemas,
|
||||||
|
args: ['--strict', '--dry-run', meson.current_source_dir()],
|
||||||
|
)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
subdir('icons')
|
subdir('icons')
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
<schemalist gettext-domain="cartridges">
|
<schemalist gettext-domain="cartridges">
|
||||||
|
|
||||||
<schema id="@APP_ID@" path="@PREFIX@/">
|
<schema id="@APP_ID@" path="@PREFIX@/">
|
||||||
|
<key name="auto-import" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
</key>
|
||||||
<key name="exit-after-launch" type="b">
|
<key name="exit-after-launch" type="b">
|
||||||
<default>false</default>
|
<default>false</default>
|
||||||
</key>
|
</key>
|
||||||
|
|||||||
@@ -31,9 +31,9 @@
|
|||||||
<control>keyboard</control>
|
<control>keyboard</control>
|
||||||
<control>touch</control>
|
<control>touch</control>
|
||||||
</supports>
|
</supports>
|
||||||
<recommends>
|
<requires>
|
||||||
<display_length compare="ge">360</display_length>
|
<display_length compare="ge">360</display_length>
|
||||||
</recommends>
|
</requires>
|
||||||
<screenshots>
|
<screenshots>
|
||||||
<screenshot type="default">
|
<screenshot type="default">
|
||||||
<image>https://raw.githubusercontent.com/kra-mo/cartridges/main/data/screenshots/1.png</image>
|
<image>https://raw.githubusercontent.com/kra-mo/cartridges/main/data/screenshots/1.png</image>
|
||||||
@@ -54,12 +54,28 @@
|
|||||||
</screenshots>
|
</screenshots>
|
||||||
<content_rating type="oars-1.1" />
|
<content_rating type="oars-1.1" />
|
||||||
<releases>
|
<releases>
|
||||||
<release version="2.8.4" date="2024-04-16">
|
<release version="2.10.1" date="2024-10-11">
|
||||||
|
<description translate="no">
|
||||||
|
<p>Fixed an issue with manually changing game cover art</p>
|
||||||
|
</description>
|
||||||
|
</release>
|
||||||
|
<release version="2.10.0" date="2024-09-18">
|
||||||
|
<description translate="no">
|
||||||
|
<p>Updated for GNOME 47</p>
|
||||||
|
</description>
|
||||||
|
</release>
|
||||||
|
<release version="2.9.3" date="2024-07-18">
|
||||||
<description translate="no">
|
<description translate="no">
|
||||||
<ul>
|
<ul>
|
||||||
<li>Fixed an issue with the import dialog not closing</li>
|
<li>Fixed incorrect modifiers being used for keyboard shortcuts</li>
|
||||||
<li>Fixed an issue with Lutris games not importing</li>
|
</ul>
|
||||||
<li>Cartrdiges builds are available for Windows again!</li>
|
</description>
|
||||||
|
</release>
|
||||||
|
<release version="2.9" date="2024-07-10">
|
||||||
|
<description translate="no">
|
||||||
|
<ul>
|
||||||
|
<li>Cartridges is now available on macOS! You can download it from GitHub.</li>
|
||||||
|
<li>Updated translations</li>
|
||||||
</ul>
|
</ul>
|
||||||
</description>
|
</description>
|
||||||
</release>
|
</release>
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ Stored as a Unix time stamp.
|
|||||||
|
|
||||||
The executable to run when launching a game.
|
The executable to run when launching a game.
|
||||||
|
|
||||||
If the source has a URL handler, using that is preferred. In that case, the value should be `"xdg-open url://example/url"` for Linux and `"start url://example/url"` for Windows.
|
If the source has a URL handler, using that is preferred. In that case, the value should be `"xdg-open url://example/url"` for Linux, `"start url://example/url"` for Windows and `"open url://example/url"` for macOS.
|
||||||
|
|
||||||
Stored as either a string (preferred) or an argument vector to be passed to the shell through [subprocess.Popen](https://docs.python.org/3/library/subprocess.html#popen-constructor).
|
Stored as either a string (preferred) or an argument vector to be passed to the shell through [subprocess.Popen](https://docs.python.org/3/library/subprocess.html#popen-constructor).
|
||||||
|
|
||||||
@@ -113,4 +113,4 @@ The version number of the [game_id].json specification.
|
|||||||
|
|
||||||
Cartridges will set the value for itself. Don't touch it.
|
Cartridges will set the value for itself. Don't touch it.
|
||||||
|
|
||||||
Stored as a number.
|
Stored as a number.
|
||||||
|
|||||||
@@ -1,138 +0,0 @@
|
|||||||
{
|
|
||||||
"id" : "page.kramo.Cartridges.Devel",
|
|
||||||
"runtime" : "org.gnome.Platform",
|
|
||||||
"runtime-version" : "46",
|
|
||||||
"sdk" : "org.gnome.Sdk",
|
|
||||||
"command" : "cartridges",
|
|
||||||
"finish-args" : [
|
|
||||||
"--share=network",
|
|
||||||
"--share=ipc",
|
|
||||||
"--socket=fallback-x11",
|
|
||||||
"--device=dri",
|
|
||||||
"--socket=wayland",
|
|
||||||
"--talk-name=org.freedesktop.Flatpak",
|
|
||||||
"--filesystem=host",
|
|
||||||
"--filesystem=~/.var/app/com.valvesoftware.Steam/data/Steam/:ro",
|
|
||||||
"--filesystem=~/.var/app/net.lutris.Lutris/: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/io.itch.itch/config/itch/:ro",
|
|
||||||
"--filesystem=~/.var/app/org.libretro.RetroArch/config/retroarch/:ro",
|
|
||||||
"--filesystem=/var/lib/flatpak/app:ro",
|
|
||||||
"--filesystem=/var/lib/flatpak/exports:ro",
|
|
||||||
"--filesystem=xdg-data/flatpak/app:ro",
|
|
||||||
"--filesystem=xdg-data/flatpak/exports:ro"
|
|
||||||
],
|
|
||||||
"cleanup" : [
|
|
||||||
"/include",
|
|
||||||
"/lib/pkgconfig",
|
|
||||||
"/man",
|
|
||||||
"/share/doc",
|
|
||||||
"/share/gtk-doc",
|
|
||||||
"/share/man",
|
|
||||||
"/share/pkgconfig",
|
|
||||||
"*.la",
|
|
||||||
"*.a"
|
|
||||||
],
|
|
||||||
"modules" : [
|
|
||||||
{
|
|
||||||
"name": "python3-modules",
|
|
||||||
"buildsystem": "simple",
|
|
||||||
"build-commands": [],
|
|
||||||
"modules": [
|
|
||||||
{
|
|
||||||
"name": "python3-pyyaml",
|
|
||||||
"buildsystem": "simple",
|
|
||||||
"build-commands": [
|
|
||||||
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pyyaml\" --no-build-isolation"
|
|
||||||
],
|
|
||||||
"sources": [
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"url": "https://files.pythonhosted.org/packages/36/2b/61d51a2c4f25ef062ae3f74576b01638bebad5e045f747ff12643df63844/PyYAML-6.0.tar.gz",
|
|
||||||
"sha256": "68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "python3-requests",
|
|
||||||
"buildsystem": "simple",
|
|
||||||
"build-commands": [
|
|
||||||
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"requests\" --no-build-isolation"
|
|
||||||
],
|
|
||||||
"sources": [
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"url": "https://files.pythonhosted.org/packages/71/4c/3db2b8021bd6f2f0ceb0e088d6b2d49147671f25832fb17970e9b583d742/certifi-2022.12.7-py3-none-any.whl",
|
|
||||||
"sha256": "4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"url": "https://files.pythonhosted.org/packages/ff/d7/8d757f8bd45be079d76309248845a04f09619a7b17d6dfc8c9ff6433cac2/charset-normalizer-3.1.0.tar.gz",
|
|
||||||
"sha256": "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
|
|
||||||
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"url": "https://files.pythonhosted.org/packages/d2/f4/274d1dbe96b41cf4e0efb70cbced278ffd61b5c7bb70338b62af94ccb25b/requests-2.28.2-py3-none-any.whl",
|
|
||||||
"sha256": "64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"url": "https://files.pythonhosted.org/packages/7b/f5/890a0baca17a61c1f92f72b81d3c31523c99bec609e60c292ea55b387ae8/urllib3-1.26.15-py2.py3-none-any.whl",
|
|
||||||
"sha256": "aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "python3-pillow",
|
|
||||||
"buildsystem": "simple",
|
|
||||||
"build-commands": [
|
|
||||||
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pillow\" --no-build-isolation"
|
|
||||||
],
|
|
||||||
"sources": [
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"url": "https://files.pythonhosted.org/packages/00/d5/4903f310765e0ff2b8e91ffe55031ac6af77d982f0156061e20a4d1a8b2d/Pillow-9.5.0.tar.gz",
|
|
||||||
"sha256": "bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name" : "blueprint-compiler",
|
|
||||||
"buildsystem" : "meson",
|
|
||||||
"sources" : [
|
|
||||||
{
|
|
||||||
"type" : "git",
|
|
||||||
"url" : "https://gitlab.gnome.org/jwestman/blueprint-compiler",
|
|
||||||
"tag" : "v0.12.0"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"cleanup" : [
|
|
||||||
"*"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name" : "cartridges",
|
|
||||||
"builddir" : true,
|
|
||||||
"buildsystem" : "meson",
|
|
||||||
"run-tests" : true,
|
|
||||||
"config-opts": [
|
|
||||||
"-Dprofile=development"
|
|
||||||
],
|
|
||||||
"sources" : [
|
|
||||||
{
|
|
||||||
"type" : "dir",
|
|
||||||
"path" : ".."
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
20
meson.build
20
meson.build
@@ -1,7 +1,11 @@
|
|||||||
project('cartridges',
|
project(
|
||||||
version: '2.8.3',
|
'cartridges',
|
||||||
meson_version: '>= 0.59.0',
|
version: '2.10.1',
|
||||||
default_options: [ 'warning_level=2', 'werror=false', ],
|
meson_version: '>= 0.59.0',
|
||||||
|
default_options: [
|
||||||
|
'warning_level=2',
|
||||||
|
'werror=false',
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
# Translations are broken on Windows for multiple reasons
|
# Translations are broken on Windows for multiple reasons
|
||||||
@@ -23,7 +27,7 @@ profile = get_option('profile')
|
|||||||
if profile == 'development'
|
if profile == 'development'
|
||||||
app_id = 'page.kramo.Cartridges.Devel'
|
app_id = 'page.kramo.Cartridges.Devel'
|
||||||
prefix = '/page/kramo/Cartridges/Devel'
|
prefix = '/page/kramo/Cartridges/Devel'
|
||||||
elif profile == 'release'
|
elif profile == 'release'
|
||||||
app_id = 'page.kramo.Cartridges'
|
app_id = 'page.kramo.Cartridges'
|
||||||
prefix = '/page/kramo/Cartridges'
|
prefix = '/page/kramo/Cartridges'
|
||||||
endif
|
endif
|
||||||
@@ -44,14 +48,14 @@ subdir('data')
|
|||||||
subdir('cartridges')
|
subdir('cartridges')
|
||||||
|
|
||||||
if host_machine.system() == 'windows'
|
if host_machine.system() == 'windows'
|
||||||
subdir('windows')
|
subdir('build-aux/windows')
|
||||||
else
|
else
|
||||||
subdir('search-provider')
|
subdir('search-provider')
|
||||||
subdir('po')
|
subdir('po')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
gnome.post_install(
|
gnome.post_install(
|
||||||
glib_compile_schemas: true,
|
glib_compile_schemas: true,
|
||||||
gtk_update_icon_cache: true,
|
gtk_update_icon_cache: true,
|
||||||
update_desktop_database: true,
|
update_desktop_database: true,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -27,3 +27,5 @@ ca
|
|||||||
ja
|
ja
|
||||||
hi
|
hi
|
||||||
en_GB
|
en_GB
|
||||||
|
ie
|
||||||
|
te
|
||||||
|
|||||||
@@ -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: 2024-04-14 12:48+0200\n"
|
"POT-Creation-Date: 2024-10-31 14:25+0100\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"
|
||||||
@@ -46,8 +46,8 @@ msgid ""
|
|||||||
"SteamGridDB."
|
"SteamGridDB."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/page.kramo.Cartridges.metainfo.xml.in:44 data/gtk/window.blp:318
|
#: data/page.kramo.Cartridges.metainfo.xml.in:44 data/gtk/window.blp:320
|
||||||
#: cartridges/details_dialog.py:68
|
#: cartridges/details_dialog.py:77
|
||||||
msgid "Game Details"
|
msgid "Game Details"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ msgid "Edit Game Details"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/page.kramo.Cartridges.metainfo.xml.in:52 data/gtk/help-overlay.blp:19
|
#: data/page.kramo.Cartridges.metainfo.xml.in:52 data/gtk/help-overlay.blp:19
|
||||||
#: data/gtk/window.blp:542 cartridges/details_dialog.py:267
|
#: data/gtk/window.blp:543 cartridges/details_dialog.py:276
|
||||||
#: cartridges/importer/importer.py:320 cartridges/importer/importer.py:370
|
#: cartridges/importer/importer.py:320 cartridges/importer/importer.py:370
|
||||||
msgid "Preferences"
|
msgid "Preferences"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -65,47 +65,47 @@ msgstr ""
|
|||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:46
|
#: data/gtk/details-dialog.blp:45
|
||||||
msgid "New Cover"
|
msgid "New Cover"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:65
|
#: data/gtk/details-dialog.blp:64
|
||||||
msgid "Delete Cover"
|
msgid "Delete Cover"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:93 data/gtk/game.blp:81
|
#: data/gtk/details-dialog.blp:92 data/gtk/game.blp:80
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:97
|
#: data/gtk/details-dialog.blp:96
|
||||||
msgid "Developer (optional)"
|
msgid "Developer (optional)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:103
|
#: data/gtk/details-dialog.blp:102
|
||||||
msgid "Executable"
|
msgid "Executable"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:109
|
#: data/gtk/details-dialog.blp:108
|
||||||
msgid "Select File"
|
msgid "Select File"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:120
|
#: data/gtk/details-dialog.blp:119
|
||||||
msgid "More Info"
|
msgid "More Info"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/game.blp:102 data/gtk/game.blp:110 data/gtk/window.blp:443
|
#: data/gtk/game.blp:101 data/gtk/game.blp:109 data/gtk/window.blp:444
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/game.blp:103 cartridges/window.py:350
|
#: data/gtk/game.blp:102 cartridges/window.py:359
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/game.blp:104 data/gtk/game.blp:112 data/gtk/window.blp:463
|
#: data/gtk/game.blp:103 data/gtk/game.blp:111 data/gtk/window.blp:464
|
||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/game.blp:111 cartridges/window.py:352
|
#: data/gtk/game.blp:110 cartridges/window.py:361
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -113,17 +113,17 @@ msgstr ""
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:14 data/gtk/window.blp:205 data/gtk/window.blp:221
|
#: data/gtk/help-overlay.blp:14 data/gtk/window.blp:207 data/gtk/window.blp:223
|
||||||
#: data/gtk/window.blp:272 data/gtk/window.blp:288 data/gtk/window.blp:474
|
#: data/gtk/window.blp:274 data/gtk/window.blp:290 data/gtk/window.blp:475
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:24 data/gtk/window.blp:543
|
#: data/gtk/help-overlay.blp:24 data/gtk/window.blp:544
|
||||||
msgid "Keyboard Shortcuts"
|
msgid "Keyboard Shortcuts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:29 cartridges/game.py:103
|
#: data/gtk/help-overlay.blp:29 cartridges/game.py:103
|
||||||
#: cartridges/preferences.py:134 cartridges/importer/importer.py:394
|
#: cartridges/preferences.py:137 cartridges/importer/importer.py:394
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -131,11 +131,11 @@ msgstr ""
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:92 data/gtk/window.blp:185
|
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:92 data/gtk/window.blp:187
|
||||||
msgid "Toggle Sidebar"
|
msgid "Toggle Sidebar"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:198 data/gtk/window.blp:265
|
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:200 data/gtk/window.blp:267
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -143,12 +143,12 @@ msgstr ""
|
|||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:53 data/gtk/window.blp:191 data/gtk/window.blp:550
|
#: data/gtk/help-overlay.blp:53 data/gtk/window.blp:193 data/gtk/window.blp:551
|
||||||
msgid "Add Game"
|
msgid "Add Game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:58 data/gtk/preferences.blp:113
|
#: data/gtk/help-overlay.blp:58 data/gtk/preferences.blp:58
|
||||||
#: data/gtk/window.blp:27 data/gtk/window.blp:554
|
#: data/gtk/window.blp:27 data/gtk/window.blp:555
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -160,8 +160,8 @@ msgstr ""
|
|||||||
msgid "Remove Game"
|
msgid "Remove Game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:117
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:62
|
||||||
#: data/gtk/preferences.blp:415
|
#: data/gtk/preferences.blp:365
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -177,7 +177,7 @@ msgstr ""
|
|||||||
msgid "Swaps the behavior of the cover image and the play button"
|
msgid "Swaps the behavior of the cover image and the play button"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:26 cartridges/details_dialog.py:82
|
#: data/gtk/preferences.blp:26 cartridges/details_dialog.py:91
|
||||||
msgid "Images"
|
msgid "Images"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -193,137 +193,141 @@ msgstr ""
|
|||||||
msgid "Danger Zone"
|
msgid "Danger Zone"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:48
|
#: data/gtk/preferences.blp:39
|
||||||
msgid "Remove All Games"
|
msgid "Remove All Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:120
|
#: data/gtk/preferences.blp:65
|
||||||
|
msgid "Import Games Automatically"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:69
|
||||||
msgid "Remove Uninstalled Games"
|
msgid "Remove Uninstalled Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:125
|
#: data/gtk/preferences.blp:74
|
||||||
msgid "Sources"
|
msgid "Sources"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:128 cartridges/importer/steam_source.py:114
|
#: data/gtk/preferences.blp:78 cartridges/importer/steam_source.py:114
|
||||||
msgid "Steam"
|
msgid "Steam"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137 data/gtk/preferences.blp:164
|
#: data/gtk/preferences.blp:87 data/gtk/preferences.blp:114
|
||||||
#: data/gtk/preferences.blp:199 data/gtk/preferences.blp:242
|
#: data/gtk/preferences.blp:149 data/gtk/preferences.blp:192
|
||||||
#: data/gtk/preferences.blp:269 data/gtk/preferences.blp:296
|
#: data/gtk/preferences.blp:219 data/gtk/preferences.blp:246
|
||||||
#: data/gtk/preferences.blp:323
|
#: data/gtk/preferences.blp:273
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:155 data/gtk/window.blp:564
|
#: data/gtk/preferences.blp:105 data/gtk/window.blp:565
|
||||||
#: cartridges/importer/lutris_source.py:96
|
#: cartridges/importer/lutris_source.py:107
|
||||||
msgid "Lutris"
|
msgid "Lutris"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:181
|
#: data/gtk/preferences.blp:131
|
||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:185
|
#: data/gtk/preferences.blp:135
|
||||||
msgid "Import Flatpak Games"
|
msgid "Import Flatpak Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:190 cartridges/importer/heroic_source.py:355
|
#: data/gtk/preferences.blp:140 cartridges/importer/heroic_source.py:355
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:166
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:170
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:224
|
#: data/gtk/preferences.blp:174
|
||||||
msgid "Import Amazon Games"
|
msgid "Import Amazon Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:228
|
#: data/gtk/preferences.blp:178
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:233 cartridges/importer/bottles_source.py:86
|
#: data/gtk/preferences.blp:183 cartridges/importer/bottles_source.py:86
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260 cartridges/importer/itch_source.py:81
|
#: data/gtk/preferences.blp:210 cartridges/importer/itch_source.py:81
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:287 cartridges/importer/legendary_source.py:97
|
#: data/gtk/preferences.blp:237 cartridges/importer/legendary_source.py:97
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:314 cartridges/importer/retroarch_source.py:142
|
#: data/gtk/preferences.blp:264 cartridges/importer/retroarch_source.py:142
|
||||||
msgid "RetroArch"
|
msgid "RetroArch"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:341 cartridges/importer/flatpak_source.py:143
|
#: data/gtk/preferences.blp:291 cartridges/importer/flatpak_source.py:143
|
||||||
msgid "Flatpak"
|
msgid "Flatpak"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The location of the system-wide data directory
|
#. The location of the system-wide data directory
|
||||||
#: data/gtk/preferences.blp:351
|
#: data/gtk/preferences.blp:301
|
||||||
msgid "System Location"
|
msgid "System Location"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The location of the user-specific data directory
|
#. The location of the user-specific data directory
|
||||||
#: data/gtk/preferences.blp:369
|
#: data/gtk/preferences.blp:319
|
||||||
msgid "User Location"
|
msgid "User Location"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:386
|
#: data/gtk/preferences.blp:336
|
||||||
msgid "Import Game Launchers"
|
msgid "Import Game Launchers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:391 cartridges/importer/desktop_source.py:215
|
#: data/gtk/preferences.blp:341 cartridges/importer/desktop_source.py:215
|
||||||
msgid "Desktop Entries"
|
msgid "Desktop Entries"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:403 data/gtk/window.blp:562
|
#: data/gtk/preferences.blp:353 data/gtk/window.blp:563
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:407
|
#: data/gtk/preferences.blp:357
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:410
|
#: data/gtk/preferences.blp:360
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:418
|
#: data/gtk/preferences.blp:368
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:419
|
#: data/gtk/preferences.blp:369
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:423
|
#: data/gtk/preferences.blp:373
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:427
|
#: data/gtk/preferences.blp:377
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:433
|
#: data/gtk/preferences.blp:383
|
||||||
msgid "Update Covers"
|
msgid "Update Covers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:434
|
#: data/gtk/preferences.blp:384
|
||||||
msgid "Fetch covers for games already in your library"
|
msgid "Fetch covers for games already in your library"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:439
|
#: data/gtk/preferences.blp:389
|
||||||
msgid "Update"
|
msgid "Update"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -351,135 +355,135 @@ msgstr ""
|
|||||||
msgid "Games you hide will appear here"
|
msgid "Games you hide will appear here"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:76 data/gtk/window.blp:111 cartridges/main.py:228
|
#: data/gtk/window.blp:76 data/gtk/window.blp:113 cartridges/main.py:249
|
||||||
msgid "All Games"
|
msgid "All Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:136 cartridges/main.py:230
|
#: data/gtk/window.blp:140 cartridges/main.py:251
|
||||||
msgid "Added"
|
msgid "Added"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:156
|
#: data/gtk/window.blp:162
|
||||||
msgid "Imported"
|
msgid "Imported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:258
|
#: data/gtk/window.blp:260
|
||||||
msgid "Hidden Games"
|
msgid "Hidden Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:367
|
#: data/gtk/window.blp:368
|
||||||
msgid "Game Title"
|
msgid "Game Title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:424
|
#: data/gtk/window.blp:425
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:501
|
#: data/gtk/window.blp:502
|
||||||
msgid "Sort"
|
msgid "Sort"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:504
|
#: data/gtk/window.blp:505
|
||||||
msgid "A-Z"
|
msgid "A-Z"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:510
|
#: data/gtk/window.blp:511
|
||||||
msgid "Z-A"
|
msgid "Z-A"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:516
|
#: data/gtk/window.blp:517
|
||||||
msgid "Newest"
|
msgid "Newest"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:522
|
#: data/gtk/window.blp:523
|
||||||
msgid "Oldest"
|
msgid "Oldest"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:528
|
#: data/gtk/window.blp:529
|
||||||
msgid "Last Played"
|
msgid "Last Played"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:535
|
#: data/gtk/window.blp:536
|
||||||
msgid "Show Hidden"
|
msgid "Show Hidden"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:544
|
#: data/gtk/window.blp:545
|
||||||
msgid "About Cartridges"
|
msgid "About Cartridges"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:561
|
#: data/gtk/window.blp:562
|
||||||
msgid "IGDB"
|
msgid "IGDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:563
|
#: data/gtk/window.blp:564
|
||||||
msgid "ProtonDB"
|
msgid "ProtonDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/window.blp:565
|
#: data/gtk/window.blp:566
|
||||||
msgid "HowLongToBeat"
|
msgid "HowLongToBeat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: cartridges/main.py:205 cartridges/game.py:125
|
#: cartridges/main.py:226 cartridges/game.py:125
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
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
|
||||||
#: cartridges/main.py:270
|
#: cartridges/main.py:291
|
||||||
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
|
||||||
#: cartridges/window.py:373
|
#: cartridges/window.py:382
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/window.py:376
|
#: cartridges/window.py:385
|
||||||
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
|
||||||
#: cartridges/window.py:380
|
#: cartridges/window.py:389
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:73
|
#: cartridges/details_dialog.py:82
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:79
|
#: cartridges/details_dialog.py:88
|
||||||
msgid "Add New Game"
|
msgid "Add New Game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:80
|
#: cartridges/details_dialog.py:89
|
||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:90
|
#: cartridges/details_dialog.py:99
|
||||||
msgid "Executables"
|
msgid "Executables"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: cartridges/details_dialog.py:105
|
#: cartridges/details_dialog.py:114
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: cartridges/details_dialog.py:107
|
#: cartridges/details_dialog.py:116
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: cartridges/details_dialog.py:112 cartridges/details_dialog.py:114
|
#: cartridges/details_dialog.py:121 cartridges/details_dialog.py:123
|
||||||
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 {}"
|
||||||
#: cartridges/details_dialog.py:118 cartridges/details_dialog.py:120
|
#: cartridges/details_dialog.py:127 cartridges/details_dialog.py:129
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:125
|
#: cartridges/details_dialog.py:134
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -492,19 +496,19 @@ 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 ""
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:167 cartridges/details_dialog.py:173
|
#: cartridges/details_dialog.py:176 cartridges/details_dialog.py:182
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:167 cartridges/details_dialog.py:209
|
#: cartridges/details_dialog.py:176 cartridges/details_dialog.py:218
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:173 cartridges/details_dialog.py:217
|
#: cartridges/details_dialog.py:182 cartridges/details_dialog.py:226
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:208 cartridges/details_dialog.py:216
|
#: cartridges/details_dialog.py:217 cartridges/details_dialog.py:225
|
||||||
msgid "Couldn't Apply Preferences"
|
msgid "Couldn't Apply Preferences"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -523,40 +527,40 @@ msgstr ""
|
|||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/preferences.py:133
|
#: cartridges/preferences.py:136
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/preferences.py:181
|
#: cartridges/preferences.py:188
|
||||||
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 ""
|
||||||
|
|
||||||
#: cartridges/preferences.py:196
|
#: cartridges/preferences.py:203
|
||||||
msgid "Downloading covers…"
|
msgid "Downloading covers…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/preferences.py:215
|
#: cartridges/preferences.py:222
|
||||||
msgid "Covers updated"
|
msgid "Covers updated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/preferences.py:360
|
#: cartridges/preferences.py:370
|
||||||
msgid "Installation Not Found"
|
msgid "Installation Not Found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/preferences.py:361
|
#: cartridges/preferences.py:371
|
||||||
msgid "Select a valid directory"
|
msgid "Select a valid directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/preferences.py:397 cartridges/importer/importer.py:318
|
#: cartridges/preferences.py:407 cartridges/importer/importer.py:318
|
||||||
msgid "Warning"
|
msgid "Warning"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/preferences.py:431
|
#: cartridges/preferences.py:441
|
||||||
msgid "Invalid Directory"
|
msgid "Invalid Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cartridges/preferences.py:437
|
#: cartridges/preferences.py:447
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
31
po/cs.po
31
po/cs.po
@@ -1,13 +1,13 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
# SOME DESCRIPTIVE TITLE.
|
||||||
# Copyright (C) YEAR kramo
|
# Copyright (C) YEAR kramo
|
||||||
# This file is distributed under the same license as the Cartridges package.
|
# This file is distributed under the same license as the Cartridges package.
|
||||||
# foo expert <deferred_water346@simplelogin.com>, 2023.
|
# foo expert <deferred_water346@simplelogin.com>, 2023, 2024.
|
||||||
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: 2024-04-14 12:48+0200\n"
|
"POT-Creation-Date: 2024-04-14 12:48+0200\n"
|
||||||
"PO-Revision-Date: 2023-09-24 16:04+0000\n"
|
"PO-Revision-Date: 2024-06-28 07:09+0000\n"
|
||||||
"Last-Translator: foo expert <deferred_water346@simplelogin.com>\n"
|
"Last-Translator: foo expert <deferred_water346@simplelogin.com>\n"
|
||||||
"Language-Team: Czech <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Czech <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/cs/>\n"
|
"cartridges/cs/>\n"
|
||||||
@@ -15,8 +15,8 @@ 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==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
|
||||||
"X-Generator: Weblate 5.1-dev\n"
|
"X-Generator: Weblate 5.7-dev\n"
|
||||||
|
|
||||||
#: data/page.kramo.Cartridges.desktop.in:3
|
#: data/page.kramo.Cartridges.desktop.in:3
|
||||||
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
||||||
@@ -276,15 +276,13 @@ msgstr "Flatpak"
|
|||||||
|
|
||||||
#. The location of the system-wide data directory
|
#. The location of the system-wide data directory
|
||||||
#: data/gtk/preferences.blp:351
|
#: data/gtk/preferences.blp:351
|
||||||
#, fuzzy
|
|
||||||
msgid "System Location"
|
msgid "System Location"
|
||||||
msgstr "Nastavit umístění"
|
msgstr "Systémové umístění"
|
||||||
|
|
||||||
#. The location of the user-specific data directory
|
#. The location of the user-specific data directory
|
||||||
#: data/gtk/preferences.blp:369
|
#: data/gtk/preferences.blp:369
|
||||||
#, fuzzy
|
|
||||||
msgid "User Location"
|
msgid "User Location"
|
||||||
msgstr "Nastavit umístění"
|
msgstr "Uživatelské umístění"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:386
|
#: data/gtk/preferences.blp:386
|
||||||
msgid "Import Game Launchers"
|
msgid "Import Game Launchers"
|
||||||
@@ -323,17 +321,16 @@ msgid "Prefer Animated Images"
|
|||||||
msgstr "Upřednostnit animované obrázky"
|
msgstr "Upřednostnit animované obrázky"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:433
|
#: data/gtk/preferences.blp:433
|
||||||
#, fuzzy
|
|
||||||
msgid "Update Covers"
|
msgid "Update Covers"
|
||||||
msgstr "Odstranit obal"
|
msgstr "Aktualizovat obálky"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:434
|
#: data/gtk/preferences.blp:434
|
||||||
msgid "Fetch covers for games already in your library"
|
msgid "Fetch covers for games already in your library"
|
||||||
msgstr ""
|
msgstr "Najít obálky pro hry ve vaší knihovně"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:439
|
#: data/gtk/preferences.blp:439
|
||||||
msgid "Update"
|
msgid "Update"
|
||||||
msgstr ""
|
msgstr "Aktualizovat"
|
||||||
|
|
||||||
#: data/gtk/window.blp:6 data/gtk/window.blp:14
|
#: data/gtk/window.blp:6 data/gtk/window.blp:14
|
||||||
msgid "No Games Found"
|
msgid "No Games Found"
|
||||||
@@ -417,15 +414,15 @@ msgstr "O Kazetách"
|
|||||||
|
|
||||||
#: data/gtk/window.blp:561
|
#: data/gtk/window.blp:561
|
||||||
msgid "IGDB"
|
msgid "IGDB"
|
||||||
msgstr ""
|
msgstr "IGDB"
|
||||||
|
|
||||||
#: data/gtk/window.blp:563
|
#: data/gtk/window.blp:563
|
||||||
msgid "ProtonDB"
|
msgid "ProtonDB"
|
||||||
msgstr ""
|
msgstr "ProtonDB"
|
||||||
|
|
||||||
#: data/gtk/window.blp:565
|
#: data/gtk/window.blp:565
|
||||||
msgid "HowLongToBeat"
|
msgid "HowLongToBeat"
|
||||||
msgstr ""
|
msgstr "HowLongToBeat"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: cartridges/main.py:205 cartridges/game.py:125
|
#: cartridges/main.py:205 cartridges/game.py:125
|
||||||
@@ -553,11 +550,11 @@ msgstr ""
|
|||||||
|
|
||||||
#: cartridges/preferences.py:196
|
#: cartridges/preferences.py:196
|
||||||
msgid "Downloading covers…"
|
msgid "Downloading covers…"
|
||||||
msgstr ""
|
msgstr "Stahování obálek…"
|
||||||
|
|
||||||
#: cartridges/preferences.py:215
|
#: cartridges/preferences.py:215
|
||||||
msgid "Covers updated"
|
msgid "Covers updated"
|
||||||
msgstr ""
|
msgstr "Obálky aktualizovány"
|
||||||
|
|
||||||
#: cartridges/preferences.py:360
|
#: cartridges/preferences.py:360
|
||||||
msgid "Installation Not Found"
|
msgid "Installation Not Found"
|
||||||
|
|||||||
58
po/fa.po
58
po/fa.po
@@ -3,13 +3,14 @@
|
|||||||
# This file is distributed under the same license as the Cartridges package.
|
# This file is distributed under the same license as the Cartridges package.
|
||||||
# سید حسین موسوی فرد <shmf1385@protonmail.com>, 2023.
|
# سید حسین موسوی فرد <shmf1385@protonmail.com>, 2023.
|
||||||
# Danial Behzadi <dani.behzi@ubuntu.com>, 2023.
|
# Danial Behzadi <dani.behzi@ubuntu.com>, 2023.
|
||||||
|
# آوید <avds+git@disroot.org>, 2024.
|
||||||
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: 2024-04-14 12:48+0200\n"
|
"POT-Creation-Date: 2024-04-14 12:48+0200\n"
|
||||||
"PO-Revision-Date: 2023-09-24 16:04+0000\n"
|
"PO-Revision-Date: 2024-07-14 20:09+0000\n"
|
||||||
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
|
"Last-Translator: آوید <avds+git@disroot.org>\n"
|
||||||
"Language-Team: Persian <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Persian <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/fa/>\n"
|
"cartridges/fa/>\n"
|
||||||
"Language: fa\n"
|
"Language: fa\n"
|
||||||
@@ -17,7 +18,7 @@ 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.1-dev\n"
|
"X-Generator: Weblate 5.7-dev\n"
|
||||||
|
|
||||||
#: data/page.kramo.Cartridges.desktop.in:3
|
#: data/page.kramo.Cartridges.desktop.in:3
|
||||||
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
||||||
@@ -74,7 +75,7 @@ msgstr "لغو"
|
|||||||
|
|
||||||
#: data/gtk/details-dialog.blp:46
|
#: data/gtk/details-dialog.blp:46
|
||||||
msgid "New Cover"
|
msgid "New Cover"
|
||||||
msgstr "طرج جلد جدید"
|
msgstr "طرح جلد جدید"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:65
|
#: data/gtk/details-dialog.blp:65
|
||||||
msgid "Delete Cover"
|
msgid "Delete Cover"
|
||||||
@@ -98,7 +99,7 @@ msgstr "گزینش پرونده"
|
|||||||
|
|
||||||
#: data/gtk/details-dialog.blp:120
|
#: data/gtk/details-dialog.blp:120
|
||||||
msgid "More Info"
|
msgid "More Info"
|
||||||
msgstr "اطّلاعات بیشتر"
|
msgstr "اطلاعات بیشتر"
|
||||||
|
|
||||||
#: data/gtk/game.blp:102 data/gtk/game.blp:110 data/gtk/window.blp:443
|
#: data/gtk/game.blp:102 data/gtk/game.blp:110 data/gtk/window.blp:443
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
@@ -127,7 +128,7 @@ msgstr "جستوجو"
|
|||||||
|
|
||||||
#: data/gtk/help-overlay.blp:24 data/gtk/window.blp:543
|
#: data/gtk/help-overlay.blp:24 data/gtk/window.blp:543
|
||||||
msgid "Keyboard Shortcuts"
|
msgid "Keyboard Shortcuts"
|
||||||
msgstr "میانبرهیا صفحهکلید"
|
msgstr "میانبرهای صفحهکلید"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:29 cartridges/game.py:103
|
#: data/gtk/help-overlay.blp:29 cartridges/game.py:103
|
||||||
#: cartridges/preferences.py:134 cartridges/importer/importer.py:394
|
#: cartridges/preferences.py:134 cartridges/importer/importer.py:394
|
||||||
@@ -182,7 +183,7 @@ msgstr "طرح جلد بازی را اجرا میکند"
|
|||||||
|
|
||||||
#: data/gtk/preferences.blp:21
|
#: data/gtk/preferences.blp:21
|
||||||
msgid "Swaps the behavior of the cover image and the play button"
|
msgid "Swaps the behavior of the cover image and the play button"
|
||||||
msgstr "تعویض رفتار تصویر جلد و دکمهٔ بازی کردن"
|
msgstr "تغییر رفتار تصویر جلد و دکمهٔ بازی کردن"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:26 cartridges/details_dialog.py:82
|
#: data/gtk/preferences.blp:26 cartridges/details_dialog.py:82
|
||||||
msgid "Images"
|
msgid "Images"
|
||||||
@@ -194,7 +195,7 @@ msgstr "عکسهای با کیفیت بالا"
|
|||||||
|
|
||||||
#: data/gtk/preferences.blp:30
|
#: data/gtk/preferences.blp:30
|
||||||
msgid "Save game covers losslessly at the cost of storage"
|
msgid "Save game covers losslessly at the cost of storage"
|
||||||
msgstr "ذخیرهٔ طرح جلدهای بدون اتلاف به فیمت ذخیرهسازی"
|
msgstr "ذخیرهٔ طرح جلدهای بدون اتلاف به قیمت ذخیرهسازی"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:35
|
#: data/gtk/preferences.blp:35
|
||||||
msgid "Danger Zone"
|
msgid "Danger Zone"
|
||||||
@@ -206,7 +207,7 @@ msgstr "حذف کردن همهٔ بازیها"
|
|||||||
|
|
||||||
#: data/gtk/preferences.blp:120
|
#: data/gtk/preferences.blp:120
|
||||||
msgid "Remove Uninstalled Games"
|
msgid "Remove Uninstalled Games"
|
||||||
msgstr "برداشن بازیهای نصب نشده"
|
msgstr "برداشتن بازیهای نصبنشده"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:125
|
#: data/gtk/preferences.blp:125
|
||||||
msgid "Sources"
|
msgid "Sources"
|
||||||
@@ -254,7 +255,7 @@ msgstr "درونریزی بازیهای آمازون"
|
|||||||
|
|
||||||
#: data/gtk/preferences.blp:228
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "درونریزی بازیهای نصب شده"
|
msgstr "درونریزی بازیهای نصبشده"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:233 cartridges/importer/bottles_source.py:86
|
#: data/gtk/preferences.blp:233 cartridges/importer/bottles_source.py:86
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
@@ -278,15 +279,13 @@ msgstr "فلتپک"
|
|||||||
|
|
||||||
#. The location of the system-wide data directory
|
#. The location of the system-wide data directory
|
||||||
#: data/gtk/preferences.blp:351
|
#: data/gtk/preferences.blp:351
|
||||||
#, fuzzy
|
|
||||||
msgid "System Location"
|
msgid "System Location"
|
||||||
msgstr "تنظیم مکان"
|
msgstr "مکان سامانه"
|
||||||
|
|
||||||
#. The location of the user-specific data directory
|
#. The location of the user-specific data directory
|
||||||
#: data/gtk/preferences.blp:369
|
#: data/gtk/preferences.blp:369
|
||||||
#, fuzzy
|
|
||||||
msgid "User Location"
|
msgid "User Location"
|
||||||
msgstr "تنظیم مکان"
|
msgstr "مکان کاربر"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:386
|
#: data/gtk/preferences.blp:386
|
||||||
msgid "Import Game Launchers"
|
msgid "Import Game Launchers"
|
||||||
@@ -322,20 +321,19 @@ msgstr "ترجیح به تصویرهای رسمی"
|
|||||||
|
|
||||||
#: data/gtk/preferences.blp:427
|
#: data/gtk/preferences.blp:427
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "ترچیح تصویرهای پویا"
|
msgstr "ترجیح تصویرهای پویا"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:433
|
#: data/gtk/preferences.blp:433
|
||||||
#, fuzzy
|
|
||||||
msgid "Update Covers"
|
msgid "Update Covers"
|
||||||
msgstr "حذف طرح جلد"
|
msgstr "بهروزرسانی طرح جلد"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:434
|
#: data/gtk/preferences.blp:434
|
||||||
msgid "Fetch covers for games already in your library"
|
msgid "Fetch covers for games already in your library"
|
||||||
msgstr ""
|
msgstr "دریافت طرح جلد بازیهای کنونی کتابخانهتان"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:439
|
#: data/gtk/preferences.blp:439
|
||||||
msgid "Update"
|
msgid "Update"
|
||||||
msgstr ""
|
msgstr "بهروزرسانی"
|
||||||
|
|
||||||
#: data/gtk/window.blp:6 data/gtk/window.blp:14
|
#: data/gtk/window.blp:6 data/gtk/window.blp:14
|
||||||
msgid "No Games Found"
|
msgid "No Games Found"
|
||||||
@@ -359,7 +357,7 @@ msgstr "بدون بازی نهفته"
|
|||||||
|
|
||||||
#: 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 "بازیهایی که پنهان میکنید، اینجا ظاهر خواهند شد"
|
msgstr "بازیهایی که پنهان میکنید، اینجا نمایان خواهند شد"
|
||||||
|
|
||||||
#: data/gtk/window.blp:76 data/gtk/window.blp:111 cartridges/main.py:228
|
#: data/gtk/window.blp:76 data/gtk/window.blp:111 cartridges/main.py:228
|
||||||
msgid "All Games"
|
msgid "All Games"
|
||||||
@@ -407,7 +405,7 @@ msgstr "قدیمیترین"
|
|||||||
|
|
||||||
#: data/gtk/window.blp:528
|
#: data/gtk/window.blp:528
|
||||||
msgid "Last Played"
|
msgid "Last Played"
|
||||||
msgstr "آخرین بازی شده"
|
msgstr "آخرین بازیشده"
|
||||||
|
|
||||||
#: data/gtk/window.blp:535
|
#: data/gtk/window.blp:535
|
||||||
msgid "Show Hidden"
|
msgid "Show Hidden"
|
||||||
@@ -419,15 +417,15 @@ msgstr "دربارهٔ کارتریجها"
|
|||||||
|
|
||||||
#: data/gtk/window.blp:561
|
#: data/gtk/window.blp:561
|
||||||
msgid "IGDB"
|
msgid "IGDB"
|
||||||
msgstr ""
|
msgstr "IGDB"
|
||||||
|
|
||||||
#: data/gtk/window.blp:563
|
#: data/gtk/window.blp:563
|
||||||
msgid "ProtonDB"
|
msgid "ProtonDB"
|
||||||
msgstr ""
|
msgstr "ProtonDB"
|
||||||
|
|
||||||
#: data/gtk/window.blp:565
|
#: data/gtk/window.blp:565
|
||||||
msgid "HowLongToBeat"
|
msgid "HowLongToBeat"
|
||||||
msgstr ""
|
msgstr "HowLongToBeat"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: cartridges/main.py:205 cartridges/game.py:125
|
#: cartridges/main.py:205 cartridges/game.py:125
|
||||||
@@ -451,7 +449,7 @@ msgstr "هرگز"
|
|||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: cartridges/window.py:380
|
#: cartridges/window.py:380
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "آخرین بازی شده: {}"
|
msgstr "آخرین بازیشده: {}"
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:73
|
#: cartridges/details_dialog.py:73
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
@@ -505,7 +503,7 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"<tt>\"{}\"</tt>\n"
|
"<tt>\"{}\"</tt>\n"
|
||||||
"\n"
|
"\n"
|
||||||
"برای گشودن پروندهٔ {}با برنامهٔ پیشگزیده:\n"
|
"برای گشودن پروندهٔ {} با برنامهٔ پیشگزیده:\n"
|
||||||
"\n"
|
"\n"
|
||||||
"<tt>{} \"{}\"</tt>\n"
|
"<tt>{} \"{}\"</tt>\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -530,7 +528,7 @@ msgstr "نتوانست ترجیحات را اعمال کند"
|
|||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: cartridges/game.py:139
|
#: cartridges/game.py:139
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{}نهفته"
|
msgstr "{} نهفته"
|
||||||
|
|
||||||
#: cartridges/game.py:139
|
#: cartridges/game.py:139
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
@@ -555,11 +553,11 @@ msgstr ""
|
|||||||
|
|
||||||
#: cartridges/preferences.py:196
|
#: cartridges/preferences.py:196
|
||||||
msgid "Downloading covers…"
|
msgid "Downloading covers…"
|
||||||
msgstr ""
|
msgstr "در حال دریافت طرحهای جلد…"
|
||||||
|
|
||||||
#: cartridges/preferences.py:215
|
#: cartridges/preferences.py:215
|
||||||
msgid "Covers updated"
|
msgid "Covers updated"
|
||||||
msgstr ""
|
msgstr "طرحهای جلد بهروزرسانی شد"
|
||||||
|
|
||||||
#: cartridges/preferences.py:360
|
#: cartridges/preferences.py:360
|
||||||
msgid "Installation Not Found"
|
msgid "Installation Not Found"
|
||||||
@@ -599,7 +597,7 @@ msgstr "هیچ بازی جدیدی پیدا نشد"
|
|||||||
|
|
||||||
#: cartridges/importer/importer.py:379
|
#: cartridges/importer/importer.py:379
|
||||||
msgid "1 game imported"
|
msgid "1 game imported"
|
||||||
msgstr "۱ بازی درونریخته شد"
|
msgstr "یک بازی درونریخته شد"
|
||||||
|
|
||||||
#. The variable is the number of games
|
#. The variable is the number of games
|
||||||
#: cartridges/importer/importer.py:383
|
#: cartridges/importer/importer.py:383
|
||||||
|
|||||||
77
po/hi.po
77
po/hi.po
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: Cartridges\n"
|
"Project-Id-Version: Cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-04-14 12:48+0200\n"
|
"POT-Creation-Date: 2024-04-14 12:48+0200\n"
|
||||||
"PO-Revision-Date: 2024-03-27 19:15+0000\n"
|
"PO-Revision-Date: 2024-05-07 09:07+0000\n"
|
||||||
"Last-Translator: Scrambled777 <weblate.scrambled777@simplelogin.com>\n"
|
"Last-Translator: Scrambled777 <weblate.scrambled777@simplelogin.com>\n"
|
||||||
"Language-Team: Hindi <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Hindi <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/hi/>\n"
|
"cartridges/hi/>\n"
|
||||||
@@ -17,7 +17,7 @@ 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.5-dev\n"
|
"X-Generator: Weblate 5.5.4-dev\n"
|
||||||
|
|
||||||
#: data/page.kramo.Cartridges.desktop.in:3
|
#: data/page.kramo.Cartridges.desktop.in:3
|
||||||
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
||||||
@@ -65,7 +65,7 @@ msgstr "गेम विवरण संपादन"
|
|||||||
#: data/gtk/window.blp:542 cartridges/details_dialog.py:267
|
#: data/gtk/window.blp:542 cartridges/details_dialog.py:267
|
||||||
#: cartridges/importer/importer.py:320 cartridges/importer/importer.py:370
|
#: cartridges/importer/importer.py:320 cartridges/importer/importer.py:370
|
||||||
msgid "Preferences"
|
msgid "Preferences"
|
||||||
msgstr "प्राथमिकताएँ"
|
msgstr "प्राथमिकताएं"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:15
|
#: data/gtk/details-dialog.blp:15
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
@@ -77,7 +77,7 @@ msgstr "नया कवर"
|
|||||||
|
|
||||||
#: data/gtk/details-dialog.blp:65
|
#: data/gtk/details-dialog.blp:65
|
||||||
msgid "Delete Cover"
|
msgid "Delete Cover"
|
||||||
msgstr "कवर हटाएँ"
|
msgstr "कवर मिटाएं"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:93 data/gtk/game.blp:81
|
#: data/gtk/details-dialog.blp:93 data/gtk/game.blp:81
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
@@ -89,7 +89,7 @@ msgstr "विकासकर्ता (वैकल्पिक)"
|
|||||||
|
|
||||||
#: data/gtk/details-dialog.blp:103
|
#: data/gtk/details-dialog.blp:103
|
||||||
msgid "Executable"
|
msgid "Executable"
|
||||||
msgstr "एक्सेक्यूटेबल"
|
msgstr "निष्पादनयोग्य"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:109
|
#: data/gtk/details-dialog.blp:109
|
||||||
msgid "Select File"
|
msgid "Select File"
|
||||||
@@ -109,15 +109,15 @@ msgstr "छुपाएं"
|
|||||||
|
|
||||||
#: data/gtk/game.blp:104 data/gtk/game.blp:112 data/gtk/window.blp:463
|
#: data/gtk/game.blp:104 data/gtk/game.blp:112 data/gtk/window.blp:463
|
||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "हटाएँ"
|
msgstr "हटाएं"
|
||||||
|
|
||||||
#: data/gtk/game.blp:111 cartridges/window.py:352
|
#: data/gtk/game.blp:111 cartridges/window.py:352
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "सामने लाएँ"
|
msgstr "सामने लाएं"
|
||||||
|
|
||||||
#: 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"
|
||||||
msgstr "जनरल"
|
msgstr "सामान्य"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:14 data/gtk/window.blp:205 data/gtk/window.blp:221
|
#: data/gtk/help-overlay.blp:14 data/gtk/window.blp:205 data/gtk/window.blp:221
|
||||||
#: data/gtk/window.blp:272 data/gtk/window.blp:288 data/gtk/window.blp:474
|
#: data/gtk/window.blp:272 data/gtk/window.blp:288 data/gtk/window.blp:474
|
||||||
@@ -131,7 +131,7 @@ msgstr "कीबोर्ड शॉर्टकट"
|
|||||||
#: data/gtk/help-overlay.blp:29 cartridges/game.py:103
|
#: data/gtk/help-overlay.blp:29 cartridges/game.py:103
|
||||||
#: cartridges/preferences.py:134 cartridges/importer/importer.py:394
|
#: cartridges/preferences.py:134 cartridges/importer/importer.py:394
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "पूर्ववत"
|
msgstr "पूर्ववत करें"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34
|
#: data/gtk/help-overlay.blp:34
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
@@ -139,11 +139,11 @@ msgstr "छोड़ें"
|
|||||||
|
|
||||||
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:92 data/gtk/window.blp:185
|
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:92 data/gtk/window.blp:185
|
||||||
msgid "Toggle Sidebar"
|
msgid "Toggle Sidebar"
|
||||||
msgstr "साइडबार टॉगल करें"
|
msgstr "पार्श्वपट्टी टॉगल करें"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:198 data/gtk/window.blp:265
|
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:198 data/gtk/window.blp:265
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
msgstr "मुख्य मेन्यू"
|
msgstr "मुख्य मेनू"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:50
|
#: data/gtk/help-overlay.blp:50
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
@@ -160,7 +160,7 @@ msgstr "आयात"
|
|||||||
|
|
||||||
#: data/gtk/help-overlay.blp:63
|
#: data/gtk/help-overlay.blp:63
|
||||||
msgid "Show Hidden Games"
|
msgid "Show Hidden Games"
|
||||||
msgstr "छिपे हुए गेम्स दिखाएँ"
|
msgstr "छिपे हुए गेम्स दिखाएं"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:68
|
#: data/gtk/help-overlay.blp:68
|
||||||
msgid "Remove Game"
|
msgid "Remove Game"
|
||||||
@@ -205,7 +205,7 @@ msgstr "सभी गेम्स हटाएं"
|
|||||||
|
|
||||||
#: data/gtk/preferences.blp:120
|
#: data/gtk/preferences.blp:120
|
||||||
msgid "Remove Uninstalled Games"
|
msgid "Remove Uninstalled Games"
|
||||||
msgstr "अनइंस्टॉल किए गए गेम्स हटाएं"
|
msgstr "अस्थापित गेम्स हटाएं"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:125
|
#: data/gtk/preferences.blp:125
|
||||||
msgid "Sources"
|
msgid "Sources"
|
||||||
@@ -291,7 +291,7 @@ msgstr "गेम लॉन्चर आयात करें"
|
|||||||
|
|
||||||
#: data/gtk/preferences.blp:391 cartridges/importer/desktop_source.py:215
|
#: data/gtk/preferences.blp:391 cartridges/importer/desktop_source.py:215
|
||||||
msgid "Desktop Entries"
|
msgid "Desktop Entries"
|
||||||
msgstr "डेस्कटॉप प्रविष्टियाँ"
|
msgstr "डेस्कटॉप प्रविष्टियां"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:403 data/gtk/window.blp:562
|
#: data/gtk/preferences.blp:403 data/gtk/window.blp:562
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
@@ -319,11 +319,11 @@ msgstr "आधिकारिक छवियों से अधिक प्
|
|||||||
|
|
||||||
#: data/gtk/preferences.blp:427
|
#: data/gtk/preferences.blp:427
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "एनिमेटेड छवियों को प्राथमिकता दें"
|
msgstr "सजीव छवियों को प्राथमिकता दें"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:433
|
#: data/gtk/preferences.blp:433
|
||||||
msgid "Update Covers"
|
msgid "Update Covers"
|
||||||
msgstr "कवर अपडेट करें"
|
msgstr "कवर अद्यतन करें"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:434
|
#: data/gtk/preferences.blp:434
|
||||||
msgid "Fetch covers for games already in your library"
|
msgid "Fetch covers for games already in your library"
|
||||||
@@ -331,7 +331,7 @@ msgstr "अपनी लाइब्रेरी में पहले से
|
|||||||
|
|
||||||
#: data/gtk/preferences.blp:439
|
#: data/gtk/preferences.blp:439
|
||||||
msgid "Update"
|
msgid "Update"
|
||||||
msgstr "अपडेट"
|
msgstr "अद्यतन"
|
||||||
|
|
||||||
#: data/gtk/window.blp:6 data/gtk/window.blp:14
|
#: data/gtk/window.blp:6 data/gtk/window.blp:14
|
||||||
msgid "No Games Found"
|
msgid "No Games Found"
|
||||||
@@ -339,7 +339,7 @@ msgstr "कोई गेम नहीं मिला"
|
|||||||
|
|
||||||
#: 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 "कोई भिन्न खोज आज़माएँ।"
|
msgstr "भिन्न खोज का प्रयास करें"
|
||||||
|
|
||||||
#: data/gtk/window.blp:21
|
#: data/gtk/window.blp:21
|
||||||
msgid "No Games"
|
msgid "No Games"
|
||||||
@@ -347,7 +347,7 @@ msgstr "कोई गेम नहीं"
|
|||||||
|
|
||||||
#: 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 "गेम जोड़ने के लिए + बटन का उपयोग करें।"
|
msgstr "गेम जोड़ने के लिए + बटन का उपयोग करें"
|
||||||
|
|
||||||
#: data/gtk/window.blp:40
|
#: data/gtk/window.blp:40
|
||||||
msgid "No Hidden Games"
|
msgid "No Hidden Games"
|
||||||
@@ -355,7 +355,7 @@ msgstr "कोई छुपे गेम्स नहीं"
|
|||||||
|
|
||||||
#: 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 "आपके द्वारा छिपाए गए गेम यहां दिखाई देंगे।"
|
msgstr "आपके द्वारा छिपाए गए गेम यहां दिखाई देंगे"
|
||||||
|
|
||||||
#: data/gtk/window.blp:76 data/gtk/window.blp:111 cartridges/main.py:228
|
#: data/gtk/window.blp:76 data/gtk/window.blp:111 cartridges/main.py:228
|
||||||
msgid "All Games"
|
msgid "All Games"
|
||||||
@@ -407,7 +407,7 @@ msgstr "अंतिम बार खेला गया"
|
|||||||
|
|
||||||
#: data/gtk/window.blp:535
|
#: data/gtk/window.blp:535
|
||||||
msgid "Show Hidden"
|
msgid "Show Hidden"
|
||||||
msgstr "छुपा हुआ दिखाए"
|
msgstr "छुपे हुआ दिखाएं"
|
||||||
|
|
||||||
#: data/gtk/window.blp:544
|
#: data/gtk/window.blp:544
|
||||||
msgid "About Cartridges"
|
msgid "About Cartridges"
|
||||||
@@ -451,7 +451,7 @@ msgstr "अंतिम बार खेला गया: {}"
|
|||||||
|
|
||||||
#: cartridges/details_dialog.py:73
|
#: cartridges/details_dialog.py:73
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr "लागू"
|
msgstr "लागू करें"
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:79
|
#: cartridges/details_dialog.py:79
|
||||||
msgid "Add New Game"
|
msgid "Add New Game"
|
||||||
@@ -463,7 +463,7 @@ msgstr "जोड़ें"
|
|||||||
|
|
||||||
#: cartridges/details_dialog.py:90
|
#: cartridges/details_dialog.py:90
|
||||||
msgid "Executables"
|
msgid "Executables"
|
||||||
msgstr "एक्सेक्यूटेबल"
|
msgstr "निष्पादनयोग्य"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: cartridges/details_dialog.py:105
|
#: cartridges/details_dialog.py:105
|
||||||
@@ -497,15 +497,16 @@ msgid ""
|
|||||||
"\n"
|
"\n"
|
||||||
"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 ""
|
||||||
"एक्सेक्यूटेबल \"{}\" लॉन्च करने के लिए, कमांड का उपयोग करें:\n"
|
"निष्पादनयोग्य \"{}\" लॉन्च करने के लिए, कमांड का उपयोग करें:\n"
|
||||||
"\n"
|
"\n"
|
||||||
"<tt>\"{}\"</tt>\n"
|
"<tt>\"{}\"</tt>\n"
|
||||||
"\n"
|
"\n"
|
||||||
"डिफ़ॉल्ट एप्लिकेशन के साथ \"{}\" फाइल खोलने के लिए, इसका उपयोग करें:\n"
|
"तयशुदा अनुप्रयोग के साथ \"{}\" फाइल खोलने के लिए, इसका उपयोग करें:\n"
|
||||||
"\n"
|
"\n"
|
||||||
"<tt>{} \"{}\"</tt>\n"
|
"<tt>{} \"{}\"</tt>\n"
|
||||||
"\n"
|
"\n"
|
||||||
"यदि पथ में रिक्त स्थान हैं, तो इसे दोहरे उद्धरण चिह्नों में लपेटना सुनिश्चित करें!"
|
"यदि पथ में रिक्त स्थान हैं, तो इसे दोहरे उद्धरण चिह्नों में लपेटना सुनिश्चित "
|
||||||
|
"करें!"
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:167 cartridges/details_dialog.py:173
|
#: cartridges/details_dialog.py:167 cartridges/details_dialog.py:173
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
@@ -517,11 +518,11 @@ msgstr "गेम का शीर्षक रिक्त नहीं हो
|
|||||||
|
|
||||||
#: cartridges/details_dialog.py:173 cartridges/details_dialog.py:217
|
#: cartridges/details_dialog.py:173 cartridges/details_dialog.py:217
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "Executable खाली नहीं हो सकता।"
|
msgstr "निष्पादनयोग्य खाली नहीं हो सकता।"
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:208 cartridges/details_dialog.py:216
|
#: cartridges/details_dialog.py:208 cartridges/details_dialog.py:216
|
||||||
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
|
||||||
#: cartridges/game.py:139
|
#: cartridges/game.py:139
|
||||||
@@ -555,7 +556,7 @@ msgstr "कवर डाउनलोड हो रहा है…"
|
|||||||
|
|
||||||
#: cartridges/preferences.py:215
|
#: cartridges/preferences.py:215
|
||||||
msgid "Covers updated"
|
msgid "Covers updated"
|
||||||
msgstr "कवर अप्डैटिड"
|
msgstr "कवर अद्यतित"
|
||||||
|
|
||||||
#: cartridges/preferences.py:360
|
#: cartridges/preferences.py:360
|
||||||
msgid "Installation Not Found"
|
msgid "Installation Not Found"
|
||||||
@@ -563,7 +564,7 @@ msgstr "इंस्टालेशन नहीं मिला"
|
|||||||
|
|
||||||
#: cartridges/preferences.py:361
|
#: cartridges/preferences.py:361
|
||||||
msgid "Select a valid directory"
|
msgid "Select a valid directory"
|
||||||
msgstr "एक वैध डॉयरेक्टरी का चयन करें।"
|
msgstr "एक मान्य निर्देशिका चुनें"
|
||||||
|
|
||||||
#: cartridges/preferences.py:397 cartridges/importer/importer.py:318
|
#: cartridges/preferences.py:397 cartridges/importer/importer.py:318
|
||||||
msgid "Warning"
|
msgid "Warning"
|
||||||
@@ -571,7 +572,7 @@ msgstr "चेतावनी"
|
|||||||
|
|
||||||
#: cartridges/preferences.py:431
|
#: cartridges/preferences.py:431
|
||||||
msgid "Invalid Directory"
|
msgid "Invalid Directory"
|
||||||
msgstr "अवैध डॉयरेक्टरी"
|
msgstr "अमान्य निर्देशिका"
|
||||||
|
|
||||||
#: cartridges/preferences.py:437
|
#: cartridges/preferences.py:437
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
@@ -579,7 +580,7 @@ msgstr "स्थान तय करें"
|
|||||||
|
|
||||||
#: cartridges/utils/create_dialog.py:33 cartridges/importer/importer.py:319
|
#: cartridges/utils/create_dialog.py:33 cartridges/importer/importer.py:319
|
||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "खारिज"
|
msgstr "खारिज करें"
|
||||||
|
|
||||||
#: cartridges/importer/importer.py:145
|
#: cartridges/importer/importer.py:145
|
||||||
msgid "Importing Games…"
|
msgid "Importing Games…"
|
||||||
@@ -587,7 +588,7 @@ msgstr "गेम्स आयात किया जा रहा है…"
|
|||||||
|
|
||||||
#: cartridges/importer/importer.py:338
|
#: cartridges/importer/importer.py:338
|
||||||
msgid "The following errors occured during import:"
|
msgid "The following errors occured during import:"
|
||||||
msgstr "आयात के दौरान निम्नलिखित त्रुटियाँ हुईं:"
|
msgstr "आयात के दौरान निम्नलिखित त्रुटियां हुईं:"
|
||||||
|
|
||||||
#: cartridges/importer/importer.py:367
|
#: cartridges/importer/importer.py:367
|
||||||
msgid "No new games found"
|
msgid "No new games found"
|
||||||
@@ -605,22 +606,22 @@ msgstr "{} गेम्स आयातित"
|
|||||||
#. A single game removed
|
#. A single game removed
|
||||||
#: cartridges/importer/importer.py:387
|
#: cartridges/importer/importer.py:387
|
||||||
msgid "1 removed"
|
msgid "1 removed"
|
||||||
msgstr "1 हटाया"
|
msgstr "1 हटाया गया"
|
||||||
|
|
||||||
#. The variable is the name of the source
|
#. The variable is the name of the source
|
||||||
#: cartridges/importer/location.py:34
|
#: cartridges/importer/location.py:34
|
||||||
msgid "Select the {} cache directory."
|
msgid "Select the {} cache directory."
|
||||||
msgstr "{} कैशे डॉयरेक्टरी का चयन करें।"
|
msgstr "{} कैशे निर्देशिका का चयन करें।"
|
||||||
|
|
||||||
#. The variable is the name of the source
|
#. The variable is the name of the source
|
||||||
#: cartridges/importer/location.py:36
|
#: cartridges/importer/location.py:36
|
||||||
msgid "Select the {} configuration directory."
|
msgid "Select the {} configuration directory."
|
||||||
msgstr "{} कॉन्फ़िगरेशन डॉयरेक्टरी का चयन करें।"
|
msgstr "{} विन्यास निर्देशिका का चयन करें।"
|
||||||
|
|
||||||
#. The variable is the name of the source
|
#. The variable is the name of the source
|
||||||
#: cartridges/importer/location.py:38
|
#: cartridges/importer/location.py:38
|
||||||
msgid "Select the {} data directory."
|
msgid "Select the {} data directory."
|
||||||
msgstr "{} डेटा डॉयरेक्टरी का चयन करें।"
|
msgstr "{} डेटा निर्देशिका का चयन करें।"
|
||||||
|
|
||||||
#: cartridges/importer/retroarch_source.py:129
|
#: cartridges/importer/retroarch_source.py:129
|
||||||
msgid "No RetroArch Core Selected"
|
msgid "No RetroArch Core Selected"
|
||||||
@@ -629,7 +630,7 @@ msgstr "कोई RetroArch कोर चयनित नहीं"
|
|||||||
#. The variable is a newline separated list of playlists
|
#. The variable is a newline separated list of playlists
|
||||||
#: cartridges/importer/retroarch_source.py:131
|
#: cartridges/importer/retroarch_source.py:131
|
||||||
msgid "The following playlists have no default core:"
|
msgid "The following playlists have no default core:"
|
||||||
msgstr "निम्नलिखित प्लेलिस्ट में कोई डिफ़ॉल्ट कोर नहीं है:"
|
msgstr "निम्नलिखित प्लेलिस्ट में कोई तयशुदा कोर नहीं है:"
|
||||||
|
|
||||||
#: cartridges/importer/retroarch_source.py:133
|
#: cartridges/importer/retroarch_source.py:133
|
||||||
msgid "Games with no core selected were not imported"
|
msgid "Games with no core selected were not imported"
|
||||||
|
|||||||
6
po/hu.po
6
po/hu.po
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-04-14 12:48+0200\n"
|
"POT-Creation-Date: 2024-04-14 12:48+0200\n"
|
||||||
"PO-Revision-Date: 2024-03-23 19:56+0000\n"
|
"PO-Revision-Date: 2024-10-22 10:56+0000\n"
|
||||||
"Last-Translator: Balázs Meskó <meskobalazs@mailbox.org>\n"
|
"Last-Translator: Balázs Meskó <meskobalazs@mailbox.org>\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"
|
||||||
@@ -19,7 +19,7 @@ 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.5-dev\n"
|
"X-Generator: Weblate 5.8-rc\n"
|
||||||
|
|
||||||
#: data/page.kramo.Cartridges.desktop.in:3
|
#: data/page.kramo.Cartridges.desktop.in:3
|
||||||
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
||||||
@@ -260,7 +260,7 @@ msgstr "Kézileg hozzáadott játékok importálása"
|
|||||||
|
|
||||||
#: data/gtk/preferences.blp:233 cartridges/importer/bottles_source.py:86
|
#: data/gtk/preferences.blp:233 cartridges/importer/bottles_source.py:86
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Palackok"
|
msgstr "Bottles"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260 cartridges/importer/itch_source.py:81
|
#: data/gtk/preferences.blp:260 cartridges/importer/itch_source.py:81
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
|
|||||||
642
po/ie.po
Normal file
642
po/ie.po
Normal file
@@ -0,0 +1,642 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR kramo
|
||||||
|
# This file is distributed under the same license as the Cartridges package.
|
||||||
|
# OIS <mistresssilvara@hotmail.com>, 2024.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Cartridges\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2024-04-14 12:48+0200\n"
|
||||||
|
"PO-Revision-Date: 2024-09-13 15:09+0000\n"
|
||||||
|
"Last-Translator: OIS <mistresssilvara@hotmail.com>\n"
|
||||||
|
"Language-Team: Occidental <https://hosted.weblate.org/projects/cartridges/"
|
||||||
|
"cartridges/ie/>\n"
|
||||||
|
"Language: ie\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
|
"X-Generator: Weblate 5.8-dev\n"
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.desktop.in:3
|
||||||
|
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
||||||
|
#: data/page.kramo.Cartridges.metainfo.xml.in:40 data/gtk/window.blp:47
|
||||||
|
#: data/gtk/window.blp:83
|
||||||
|
msgid "Cartridges"
|
||||||
|
msgstr "Cartridges"
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.desktop.in:4
|
||||||
|
msgid "Game Launcher"
|
||||||
|
msgstr "Lansator de ludes"
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.desktop.in:5
|
||||||
|
#: data/page.kramo.Cartridges.metainfo.xml.in:10
|
||||||
|
msgid "Launch all your games"
|
||||||
|
msgstr "Lansar vor ludes"
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.desktop.in:11
|
||||||
|
msgid ""
|
||||||
|
"gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;legendary;retroarch;"
|
||||||
|
msgstr ""
|
||||||
|
"ludes;lansator;steam;lutris;heroic;bottles;itch;flatpak;legendary;retroarch;"
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.metainfo.xml.in:12
|
||||||
|
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 ""
|
||||||
|
"Cartridges es un simplic lansator por vor ludes. It supporta importation de "
|
||||||
|
"ludes de Steam, Lutris, Heroic e plu sin inregistration. On posse celar e "
|
||||||
|
"ordinar ludes o descargar covrimentes de SteamGridDB."
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.metainfo.xml.in:44 data/gtk/window.blp:318
|
||||||
|
#: cartridges/details_dialog.py:68
|
||||||
|
msgid "Game Details"
|
||||||
|
msgstr "Detallies del lude"
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.metainfo.xml.in:48
|
||||||
|
msgid "Edit Game Details"
|
||||||
|
msgstr "Redacter li detallies del lude"
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.metainfo.xml.in:52 data/gtk/help-overlay.blp:19
|
||||||
|
#: data/gtk/window.blp:542 cartridges/details_dialog.py:267
|
||||||
|
#: cartridges/importer/importer.py:320 cartridges/importer/importer.py:370
|
||||||
|
msgid "Preferences"
|
||||||
|
msgstr "Preferenties"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:15
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Anullar"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:46
|
||||||
|
msgid "New Cover"
|
||||||
|
msgstr "Nov covriment"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:65
|
||||||
|
msgid "Delete Cover"
|
||||||
|
msgstr "Remover li covriment"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:93 data/gtk/game.blp:81
|
||||||
|
msgid "Title"
|
||||||
|
msgstr "Titul"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:97
|
||||||
|
msgid "Developer (optional)"
|
||||||
|
msgstr "Developator (facultativ)"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:103
|
||||||
|
msgid "Executable"
|
||||||
|
msgstr "Executibile"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:109
|
||||||
|
msgid "Select File"
|
||||||
|
msgstr "Selecter un file"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:120
|
||||||
|
msgid "More Info"
|
||||||
|
msgstr "Plu information"
|
||||||
|
|
||||||
|
#: data/gtk/game.blp:102 data/gtk/game.blp:110 data/gtk/window.blp:443
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Redacter"
|
||||||
|
|
||||||
|
#: data/gtk/game.blp:103 cartridges/window.py:350
|
||||||
|
msgid "Hide"
|
||||||
|
msgstr "Celar"
|
||||||
|
|
||||||
|
#: data/gtk/game.blp:104 data/gtk/game.blp:112 data/gtk/window.blp:463
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr "Remover"
|
||||||
|
|
||||||
|
#: data/gtk/game.blp:111 cartridges/window.py:352
|
||||||
|
msgid "Unhide"
|
||||||
|
msgstr "Revelar"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:11 data/gtk/preferences.blp:9
|
||||||
|
msgid "General"
|
||||||
|
msgstr "General"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:14 data/gtk/window.blp:205 data/gtk/window.blp:221
|
||||||
|
#: data/gtk/window.blp:272 data/gtk/window.blp:288 data/gtk/window.blp:474
|
||||||
|
msgid "Search"
|
||||||
|
msgstr "Serchar"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:24 data/gtk/window.blp:543
|
||||||
|
msgid "Keyboard Shortcuts"
|
||||||
|
msgstr "Rapid-tastes"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:29 cartridges/game.py:103
|
||||||
|
#: cartridges/preferences.py:134 cartridges/importer/importer.py:394
|
||||||
|
msgid "Undo"
|
||||||
|
msgstr "Defar"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:34
|
||||||
|
msgid "Quit"
|
||||||
|
msgstr "Surtir"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:92 data/gtk/window.blp:185
|
||||||
|
msgid "Toggle Sidebar"
|
||||||
|
msgstr "Panel lateral"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:198 data/gtk/window.blp:265
|
||||||
|
msgid "Main Menu"
|
||||||
|
msgstr "Menú principal"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:50
|
||||||
|
msgid "Games"
|
||||||
|
msgstr "Ludes"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:53 data/gtk/window.blp:191 data/gtk/window.blp:550
|
||||||
|
msgid "Add Game"
|
||||||
|
msgstr "Adjunter un lude"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:58 data/gtk/preferences.blp:113
|
||||||
|
#: data/gtk/window.blp:27 data/gtk/window.blp:554
|
||||||
|
msgid "Import"
|
||||||
|
msgstr "Importar"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:63
|
||||||
|
msgid "Show Hidden Games"
|
||||||
|
msgstr "Monstrar celat ludes"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:68
|
||||||
|
msgid "Remove Game"
|
||||||
|
msgstr "Remover li lude"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:117
|
||||||
|
#: data/gtk/preferences.blp:415
|
||||||
|
msgid "Behavior"
|
||||||
|
msgstr "Conduida"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:16
|
||||||
|
msgid "Exit After Launching Games"
|
||||||
|
msgstr "Surtir pos que lansar un lude"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:20
|
||||||
|
msgid "Cover Image Launches Game"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:21
|
||||||
|
msgid "Swaps the behavior of the cover image and the play button"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:26 cartridges/details_dialog.py:82
|
||||||
|
msgid "Images"
|
||||||
|
msgstr "Images"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:29
|
||||||
|
msgid "High Quality Images"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:30
|
||||||
|
msgid "Save game covers losslessly at the cost of storage"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:35
|
||||||
|
msgid "Danger Zone"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:48
|
||||||
|
msgid "Remove All Games"
|
||||||
|
msgstr "Remover omni ludes"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:120
|
||||||
|
msgid "Remove Uninstalled Games"
|
||||||
|
msgstr "Remover desinstallat ludes"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:125
|
||||||
|
msgid "Sources"
|
||||||
|
msgstr "Orígines"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:128 cartridges/importer/steam_source.py:114
|
||||||
|
msgid "Steam"
|
||||||
|
msgstr "Steam"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:137 data/gtk/preferences.blp:164
|
||||||
|
#: data/gtk/preferences.blp:199 data/gtk/preferences.blp:242
|
||||||
|
#: data/gtk/preferences.blp:269 data/gtk/preferences.blp:296
|
||||||
|
#: data/gtk/preferences.blp:323
|
||||||
|
msgid "Install Location"
|
||||||
|
msgstr "Localisation de installation"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:155 data/gtk/window.blp:564
|
||||||
|
#: cartridges/importer/lutris_source.py:96
|
||||||
|
msgid "Lutris"
|
||||||
|
msgstr "Lutris"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:181
|
||||||
|
msgid "Import Steam Games"
|
||||||
|
msgstr "Importar ludes de Steam"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:185
|
||||||
|
msgid "Import Flatpak Games"
|
||||||
|
msgstr "Importar ludes Flatpak"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:190 cartridges/importer/heroic_source.py:355
|
||||||
|
msgid "Heroic"
|
||||||
|
msgstr "Heroic"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:216
|
||||||
|
msgid "Import Epic Games"
|
||||||
|
msgstr "Importar ludes de Epic"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:220
|
||||||
|
msgid "Import GOG Games"
|
||||||
|
msgstr "Importar ludes de GOG"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:224
|
||||||
|
msgid "Import Amazon Games"
|
||||||
|
msgstr "Importar ludes de Amazon"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:228
|
||||||
|
msgid "Import Sideloaded Games"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:233 cartridges/importer/bottles_source.py:86
|
||||||
|
msgid "Bottles"
|
||||||
|
msgstr "Botelles"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:260 cartridges/importer/itch_source.py:81
|
||||||
|
msgid "itch"
|
||||||
|
msgstr "itch"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:287 cartridges/importer/legendary_source.py:97
|
||||||
|
msgid "Legendary"
|
||||||
|
msgstr "Legendary"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:314 cartridges/importer/retroarch_source.py:142
|
||||||
|
msgid "RetroArch"
|
||||||
|
msgstr "RetroArch"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:341 cartridges/importer/flatpak_source.py:143
|
||||||
|
msgid "Flatpak"
|
||||||
|
msgstr "Flatpak"
|
||||||
|
|
||||||
|
#. The location of the system-wide data directory
|
||||||
|
#: data/gtk/preferences.blp:351
|
||||||
|
msgid "System Location"
|
||||||
|
msgstr "Localisation del sistema"
|
||||||
|
|
||||||
|
#. The location of the user-specific data directory
|
||||||
|
#: data/gtk/preferences.blp:369
|
||||||
|
msgid "User Location"
|
||||||
|
msgstr "Localisation del usator"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:386
|
||||||
|
msgid "Import Game Launchers"
|
||||||
|
msgstr "Importar lansatores de ludes"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:391 cartridges/importer/desktop_source.py:215
|
||||||
|
msgid "Desktop Entries"
|
||||||
|
msgstr "Files desktop"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:403 data/gtk/window.blp:562
|
||||||
|
msgid "SteamGridDB"
|
||||||
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:407
|
||||||
|
msgid "Authentication"
|
||||||
|
msgstr "Autentication"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:410
|
||||||
|
msgid "API Key"
|
||||||
|
msgstr "Clave de API"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:418
|
||||||
|
msgid "Use SteamGridDB"
|
||||||
|
msgstr "Usar SteamGridDB"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:419
|
||||||
|
msgid "Download images when adding or importing games"
|
||||||
|
msgstr "Descargar images quande on adjunte o importa ludes"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:423
|
||||||
|
msgid "Prefer Over Official Images"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:427
|
||||||
|
msgid "Prefer Animated Images"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:433
|
||||||
|
msgid "Update Covers"
|
||||||
|
msgstr "Actualisar covrimentes"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:434
|
||||||
|
msgid "Fetch covers for games already in your library"
|
||||||
|
msgstr "Obtener covrimentes por ludes in vor biblioteca"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:439
|
||||||
|
msgid "Update"
|
||||||
|
msgstr "Actualisar"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:6 data/gtk/window.blp:14
|
||||||
|
msgid "No Games Found"
|
||||||
|
msgstr "Null ludes trovat"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:7 data/gtk/window.blp:15
|
||||||
|
msgid "Try a different search"
|
||||||
|
msgstr "Ples provar un altri sercha"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:21
|
||||||
|
msgid "No Games"
|
||||||
|
msgstr "Null ludes"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:22
|
||||||
|
msgid "Use the + button to add games"
|
||||||
|
msgstr "Usar li buton + por adjunter ludes"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:40
|
||||||
|
msgid "No Hidden Games"
|
||||||
|
msgstr "Null celat ludes"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:41
|
||||||
|
msgid "Games you hide will appear here"
|
||||||
|
msgstr "Ludes celat de vos va aparir ci ti"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:76 data/gtk/window.blp:111 cartridges/main.py:228
|
||||||
|
msgid "All Games"
|
||||||
|
msgstr "Omni ludes"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:136 cartridges/main.py:230
|
||||||
|
msgid "Added"
|
||||||
|
msgstr "Adjuntet"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:156
|
||||||
|
msgid "Imported"
|
||||||
|
msgstr "Importat"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:258
|
||||||
|
msgid "Hidden Games"
|
||||||
|
msgstr "Celat ludes"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:367
|
||||||
|
msgid "Game Title"
|
||||||
|
msgstr "Titul del lude"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:424
|
||||||
|
msgid "Play"
|
||||||
|
msgstr "Luder"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:501
|
||||||
|
msgid "Sort"
|
||||||
|
msgstr "Ordinar"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:504
|
||||||
|
msgid "A-Z"
|
||||||
|
msgstr "A-Z"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:510
|
||||||
|
msgid "Z-A"
|
||||||
|
msgstr "Z-A"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:516
|
||||||
|
msgid "Newest"
|
||||||
|
msgstr "Plu recent"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:522
|
||||||
|
msgid "Oldest"
|
||||||
|
msgstr "Plu old"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:528
|
||||||
|
msgid "Last Played"
|
||||||
|
msgstr "Ludet"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:535
|
||||||
|
msgid "Show Hidden"
|
||||||
|
msgstr "Revelar celat"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:544
|
||||||
|
msgid "About Cartridges"
|
||||||
|
msgstr "Pri Cartridges"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:561
|
||||||
|
msgid "IGDB"
|
||||||
|
msgstr "IGDB"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:563
|
||||||
|
msgid "ProtonDB"
|
||||||
|
msgstr "ProtonDB"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:565
|
||||||
|
msgid "HowLongToBeat"
|
||||||
|
msgstr "HowLongToBeat"
|
||||||
|
|
||||||
|
#. The variable is the title of the game
|
||||||
|
#: cartridges/main.py:205 cartridges/game.py:125
|
||||||
|
msgid "{} launched"
|
||||||
|
msgstr "{} ea lansat"
|
||||||
|
|
||||||
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
|
#: cartridges/main.py:270
|
||||||
|
msgid "translator_credits"
|
||||||
|
msgstr "OIS <mistresssilvara@hotmail.com>, 2024"
|
||||||
|
|
||||||
|
#. The variable is the date when the game was added
|
||||||
|
#: cartridges/window.py:373
|
||||||
|
msgid "Added: {}"
|
||||||
|
msgstr "Adjuntet: {}"
|
||||||
|
|
||||||
|
#: cartridges/window.py:376
|
||||||
|
msgid "Never"
|
||||||
|
msgstr "Nequande"
|
||||||
|
|
||||||
|
#. The variable is the date when the game was last played
|
||||||
|
#: cartridges/window.py:380
|
||||||
|
msgid "Last played: {}"
|
||||||
|
msgstr "Ludet: {}"
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:73
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr "Applicar"
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:79
|
||||||
|
msgid "Add New Game"
|
||||||
|
msgstr "Adjunter un nov lude"
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:80
|
||||||
|
msgid "Add"
|
||||||
|
msgstr "Adjunter"
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:90
|
||||||
|
msgid "Executables"
|
||||||
|
msgstr "Executibiles"
|
||||||
|
|
||||||
|
#. Translate this string as you would translate "file"
|
||||||
|
#: cartridges/details_dialog.py:105
|
||||||
|
msgid "file.txt"
|
||||||
|
msgstr "file.txt"
|
||||||
|
|
||||||
|
#. As in software
|
||||||
|
#: cartridges/details_dialog.py:107
|
||||||
|
msgid "program"
|
||||||
|
msgstr "programma"
|
||||||
|
|
||||||
|
#. Translate this string as you would translate "path to {}"
|
||||||
|
#: cartridges/details_dialog.py:112 cartridges/details_dialog.py:114
|
||||||
|
msgid "C:\\path\\to\\{}"
|
||||||
|
msgstr "C:\\rute\\a\\{}"
|
||||||
|
|
||||||
|
#. Translate this string as you would translate "path to {}"
|
||||||
|
#: cartridges/details_dialog.py:118 cartridges/details_dialog.py:120
|
||||||
|
msgid "/path/to/{}"
|
||||||
|
msgstr "/rute/a/{}"
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:125
|
||||||
|
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 ""
|
||||||
|
"Por lansar li executibile «{}» usa li commande:\n"
|
||||||
|
"\n"
|
||||||
|
"<tt>\"{}\"</tt>\n"
|
||||||
|
"\n"
|
||||||
|
"Por aperter li file «{}» med li application predefinit, usa:\n"
|
||||||
|
"\n"
|
||||||
|
"<tt>{} \"{}\"</tt>\n"
|
||||||
|
"\n"
|
||||||
|
"Si li rute contene spacies, metter it in signes de citation (\"\")!"
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:167 cartridges/details_dialog.py:173
|
||||||
|
msgid "Couldn't Add Game"
|
||||||
|
msgstr "Ne successat adjunter un lude"
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:167 cartridges/details_dialog.py:209
|
||||||
|
msgid "Game title cannot be empty."
|
||||||
|
msgstr "Li titul ne posse esser vacui."
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:173 cartridges/details_dialog.py:217
|
||||||
|
msgid "Executable cannot be empty."
|
||||||
|
msgstr "Li executibile es besonat."
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:208 cartridges/details_dialog.py:216
|
||||||
|
msgid "Couldn't Apply Preferences"
|
||||||
|
msgstr "Ne successat adjunter li preferenties"
|
||||||
|
|
||||||
|
#. The variable is the title of the game
|
||||||
|
#: cartridges/game.py:139
|
||||||
|
msgid "{} hidden"
|
||||||
|
msgstr "{} celat"
|
||||||
|
|
||||||
|
#: cartridges/game.py:139
|
||||||
|
msgid "{} unhidden"
|
||||||
|
msgstr "{} revelat"
|
||||||
|
|
||||||
|
#. The variable is the title of the game
|
||||||
|
#. The variable is the number of games removed
|
||||||
|
#: cartridges/game.py:153 cartridges/importer/importer.py:391
|
||||||
|
msgid "{} removed"
|
||||||
|
msgstr "{} sta removet"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:133
|
||||||
|
msgid "All games removed"
|
||||||
|
msgstr "Omni ludes sta removet"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:181
|
||||||
|
msgid ""
|
||||||
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
|
msgstr ""
|
||||||
|
"Un clave de API es besonat por SteamGridDB. Vu posse generar ún {}ci ti{}."
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:196
|
||||||
|
msgid "Downloading covers…"
|
||||||
|
msgstr "Descarga de covrimentes…"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:215
|
||||||
|
msgid "Covers updated"
|
||||||
|
msgstr "Li covrimentes sta actualisat"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:360
|
||||||
|
msgid "Installation Not Found"
|
||||||
|
msgstr "Installation ne es trovat"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:361
|
||||||
|
msgid "Select a valid directory"
|
||||||
|
msgstr "Ples selecter un valid categorie"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:397 cartridges/importer/importer.py:318
|
||||||
|
msgid "Warning"
|
||||||
|
msgstr "Avise"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:431
|
||||||
|
msgid "Invalid Directory"
|
||||||
|
msgstr "Ínvalid fólder"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:437
|
||||||
|
msgid "Set Location"
|
||||||
|
msgstr "Assignar li localisation"
|
||||||
|
|
||||||
|
#: cartridges/utils/create_dialog.py:33 cartridges/importer/importer.py:319
|
||||||
|
msgid "Dismiss"
|
||||||
|
msgstr "Demisser"
|
||||||
|
|
||||||
|
#: cartridges/importer/importer.py:145
|
||||||
|
msgid "Importing Games…"
|
||||||
|
msgstr "Importation de ludes…"
|
||||||
|
|
||||||
|
#: cartridges/importer/importer.py:338
|
||||||
|
msgid "The following errors occured during import:"
|
||||||
|
msgstr "Li sequent errorees evenit durante li importation:"
|
||||||
|
|
||||||
|
#: cartridges/importer/importer.py:367
|
||||||
|
msgid "No new games found"
|
||||||
|
msgstr "Null nov ludes trovat"
|
||||||
|
|
||||||
|
#: cartridges/importer/importer.py:379
|
||||||
|
msgid "1 game imported"
|
||||||
|
msgstr "1 lude sta importat"
|
||||||
|
|
||||||
|
#. The variable is the number of games
|
||||||
|
#: cartridges/importer/importer.py:383
|
||||||
|
msgid "{} games imported"
|
||||||
|
msgstr "{} ludes sta importat"
|
||||||
|
|
||||||
|
#. A single game removed
|
||||||
|
#: cartridges/importer/importer.py:387
|
||||||
|
msgid "1 removed"
|
||||||
|
msgstr "1 removet"
|
||||||
|
|
||||||
|
#. The variable is the name of the source
|
||||||
|
#: cartridges/importer/location.py:34
|
||||||
|
msgid "Select the {} cache directory."
|
||||||
|
msgstr "Selecte li fólder de cache de {}."
|
||||||
|
|
||||||
|
#. The variable is the name of the source
|
||||||
|
#: cartridges/importer/location.py:36
|
||||||
|
msgid "Select the {} configuration directory."
|
||||||
|
msgstr "Selecte li fólder de configuration de {}."
|
||||||
|
|
||||||
|
#. The variable is the name of the source
|
||||||
|
#: cartridges/importer/location.py:38
|
||||||
|
msgid "Select the {} data directory."
|
||||||
|
msgstr "Selecte li fólder de data de {}."
|
||||||
|
|
||||||
|
#: cartridges/importer/retroarch_source.py:129
|
||||||
|
msgid "No RetroArch Core Selected"
|
||||||
|
msgstr "Null nucleos de RetroArch es selectet"
|
||||||
|
|
||||||
|
#. The variable is a newline separated list of playlists
|
||||||
|
#: cartridges/importer/retroarch_source.py:131
|
||||||
|
msgid "The following playlists have no default core:"
|
||||||
|
msgstr "Li sequent playlistes ne have un predefinit nucleo:"
|
||||||
|
|
||||||
|
#: cartridges/importer/retroarch_source.py:133
|
||||||
|
msgid "Games with no core selected were not imported"
|
||||||
|
msgstr "Ludes sin selectet nucleo ne va esser importat"
|
||||||
|
|
||||||
|
#: cartridges/store/managers/sgdb_manager.py:46
|
||||||
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
|
msgstr "Autentication ínvalid de SteamGridDB"
|
||||||
|
|
||||||
|
#: cartridges/store/managers/sgdb_manager.py:47
|
||||||
|
msgid "Verify your API key in preferences"
|
||||||
|
msgstr "Ples controlar vor clave de API in li preferenties"
|
||||||
147
po/nb_NO.po
147
po/nb_NO.po
@@ -3,13 +3,14 @@
|
|||||||
# This file is distributed under the same license as the cartridges package.
|
# This file is distributed under the same license as the cartridges package.
|
||||||
# kramo <contact@kramo.hu>, 2023.
|
# kramo <contact@kramo.hu>, 2023.
|
||||||
# Allan Nordhøy <epost@anotheragency.no>, 2023.
|
# Allan Nordhøy <epost@anotheragency.no>, 2023.
|
||||||
|
# sunniva <schildkroteskoldpadda@gmail.com>, 2024.
|
||||||
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: 2024-04-14 12:48+0200\n"
|
"POT-Creation-Date: 2024-04-14 12:48+0200\n"
|
||||||
"PO-Revision-Date: 2023-04-06 08:09+0000\n"
|
"PO-Revision-Date: 2024-10-22 10:56+0000\n"
|
||||||
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
|
"Last-Translator: sunniva <schildkroteskoldpadda@gmail.com>\n"
|
||||||
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
|
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
|
||||||
"cartridges/cartridges/nb_NO/>\n"
|
"cartridges/cartridges/nb_NO/>\n"
|
||||||
"Language: nb_NO\n"
|
"Language: nb_NO\n"
|
||||||
@@ -17,7 +18,7 @@ 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 4.17-dev\n"
|
"X-Generator: Weblate 5.8-rc\n"
|
||||||
|
|
||||||
#: data/page.kramo.Cartridges.desktop.in:3
|
#: data/page.kramo.Cartridges.desktop.in:3
|
||||||
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
||||||
@@ -39,6 +40,8 @@ msgstr "Start alle spillene dine"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;legendary;retroarch;"
|
"gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;legendary;retroarch;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"gaming;lansere;spillstartere;steam;lutris;heroic;bottles;flasker;flatpak;lege"
|
||||||
|
"ndary;retroarch;"
|
||||||
|
|
||||||
#: data/page.kramo.Cartridges.metainfo.xml.in:12
|
#: data/page.kramo.Cartridges.metainfo.xml.in:12
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -73,20 +76,19 @@ msgstr "Avbryt"
|
|||||||
|
|
||||||
#: data/gtk/details-dialog.blp:46
|
#: data/gtk/details-dialog.blp:46
|
||||||
msgid "New Cover"
|
msgid "New Cover"
|
||||||
msgstr ""
|
msgstr "Nytt omslag"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:65
|
#: data/gtk/details-dialog.blp:65
|
||||||
msgid "Delete Cover"
|
msgid "Delete Cover"
|
||||||
msgstr ""
|
msgstr "Fjern omslag"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:93 data/gtk/game.blp:81
|
#: data/gtk/details-dialog.blp:93 data/gtk/game.blp:81
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Navn"
|
msgstr "Navn"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:97
|
#: data/gtk/details-dialog.blp:97
|
||||||
#, fuzzy
|
|
||||||
msgid "Developer (optional)"
|
msgid "Developer (optional)"
|
||||||
msgstr "Utvikler eller utgiver (valgfritt)"
|
msgstr "Utvikler (valgfritt)"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:103
|
#: data/gtk/details-dialog.blp:103
|
||||||
msgid "Executable"
|
msgid "Executable"
|
||||||
@@ -94,11 +96,11 @@ msgstr "Kjørbar"
|
|||||||
|
|
||||||
#: data/gtk/details-dialog.blp:109
|
#: data/gtk/details-dialog.blp:109
|
||||||
msgid "Select File"
|
msgid "Select File"
|
||||||
msgstr ""
|
msgstr "Velg fil"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:120
|
#: data/gtk/details-dialog.blp:120
|
||||||
msgid "More Info"
|
msgid "More Info"
|
||||||
msgstr ""
|
msgstr "Mer informasjon"
|
||||||
|
|
||||||
#: data/gtk/game.blp:102 data/gtk/game.blp:110 data/gtk/window.blp:443
|
#: data/gtk/game.blp:102 data/gtk/game.blp:110 data/gtk/window.blp:443
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
@@ -114,7 +116,7 @@ msgstr "Fjern"
|
|||||||
|
|
||||||
#: data/gtk/game.blp:111 cartridges/window.py:352
|
#: data/gtk/game.blp:111 cartridges/window.py:352
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Opphev fjerning"
|
msgstr "Vis"
|
||||||
|
|
||||||
#: 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"
|
||||||
@@ -122,7 +124,6 @@ msgstr "Generelt"
|
|||||||
|
|
||||||
#: data/gtk/help-overlay.blp:14 data/gtk/window.blp:205 data/gtk/window.blp:221
|
#: data/gtk/help-overlay.blp:14 data/gtk/window.blp:205 data/gtk/window.blp:221
|
||||||
#: data/gtk/window.blp:272 data/gtk/window.blp:288 data/gtk/window.blp:474
|
#: data/gtk/window.blp:272 data/gtk/window.blp:288 data/gtk/window.blp:474
|
||||||
#, fuzzy
|
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Søk"
|
msgstr "Søk"
|
||||||
|
|
||||||
@@ -141,7 +142,7 @@ msgstr "Avslutt"
|
|||||||
|
|
||||||
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:92 data/gtk/window.blp:185
|
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:92 data/gtk/window.blp:185
|
||||||
msgid "Toggle Sidebar"
|
msgid "Toggle Sidebar"
|
||||||
msgstr ""
|
msgstr "Vis/skjul sidefelt"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:198 data/gtk/window.blp:265
|
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:198 data/gtk/window.blp:265
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
@@ -161,20 +162,17 @@ msgid "Import"
|
|||||||
msgstr "Importer"
|
msgstr "Importer"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:63
|
#: data/gtk/help-overlay.blp:63
|
||||||
#, fuzzy
|
|
||||||
msgid "Show Hidden Games"
|
msgid "Show Hidden Games"
|
||||||
msgstr "Vis skjulte spill"
|
msgstr "Vis skjulte spill"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:68
|
#: data/gtk/help-overlay.blp:68
|
||||||
#, fuzzy
|
|
||||||
msgid "Remove Game"
|
msgid "Remove Game"
|
||||||
msgstr "Fjern spill"
|
msgstr "Fjern spill"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:117
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:117
|
||||||
#: data/gtk/preferences.blp:415
|
#: data/gtk/preferences.blp:415
|
||||||
#, fuzzy
|
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Adferd"
|
msgstr "Atferd"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:16
|
#: data/gtk/preferences.blp:16
|
||||||
msgid "Exit After Launching Games"
|
msgid "Exit After Launching Games"
|
||||||
@@ -209,9 +207,8 @@ msgid "Remove All Games"
|
|||||||
msgstr "Fjern alle spill"
|
msgstr "Fjern alle spill"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:120
|
#: data/gtk/preferences.blp:120
|
||||||
#, fuzzy
|
|
||||||
msgid "Remove Uninstalled Games"
|
msgid "Remove Uninstalled Games"
|
||||||
msgstr "Fjern alle spill"
|
msgstr "Fjern avinstallerte spill"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:125
|
#: data/gtk/preferences.blp:125
|
||||||
msgid "Sources"
|
msgid "Sources"
|
||||||
@@ -225,9 +222,8 @@ msgstr "Steam"
|
|||||||
#: data/gtk/preferences.blp:199 data/gtk/preferences.blp:242
|
#: data/gtk/preferences.blp:199 data/gtk/preferences.blp:242
|
||||||
#: data/gtk/preferences.blp:269 data/gtk/preferences.blp:296
|
#: data/gtk/preferences.blp:269 data/gtk/preferences.blp:296
|
||||||
#: data/gtk/preferences.blp:323
|
#: data/gtk/preferences.blp:323
|
||||||
#, fuzzy
|
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr "Installasjonssted for itch"
|
msgstr "Installasjonssted"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:155 data/gtk/window.blp:564
|
#: data/gtk/preferences.blp:155 data/gtk/window.blp:564
|
||||||
#: cartridges/importer/lutris_source.py:96
|
#: cartridges/importer/lutris_source.py:96
|
||||||
@@ -235,14 +231,12 @@ msgid "Lutris"
|
|||||||
msgstr "Lutris"
|
msgstr "Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:181
|
#: data/gtk/preferences.blp:181
|
||||||
#, fuzzy
|
|
||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Importer sideinnlastede spill"
|
msgstr "Import Steam-spill"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:185
|
#: data/gtk/preferences.blp:185
|
||||||
#, fuzzy
|
|
||||||
msgid "Import Flatpak Games"
|
msgid "Import Flatpak Games"
|
||||||
msgstr "Importer sideinnlastede spill"
|
msgstr "Importer Flatpak-spill"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:190 cartridges/importer/heroic_source.py:355
|
#: data/gtk/preferences.blp:190 cartridges/importer/heroic_source.py:355
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
@@ -269,42 +263,38 @@ msgid "Bottles"
|
|||||||
msgstr "Bottles"
|
msgstr "Bottles"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260 cartridges/importer/itch_source.py:81
|
#: data/gtk/preferences.blp:260 cartridges/importer/itch_source.py:81
|
||||||
#, fuzzy
|
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:287 cartridges/importer/legendary_source.py:97
|
#: data/gtk/preferences.blp:287 cartridges/importer/legendary_source.py:97
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr ""
|
msgstr "Legendary"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:314 cartridges/importer/retroarch_source.py:142
|
#: data/gtk/preferences.blp:314 cartridges/importer/retroarch_source.py:142
|
||||||
msgid "RetroArch"
|
msgid "RetroArch"
|
||||||
msgstr ""
|
msgstr "RetroArch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:341 cartridges/importer/flatpak_source.py:143
|
#: data/gtk/preferences.blp:341 cartridges/importer/flatpak_source.py:143
|
||||||
msgid "Flatpak"
|
msgid "Flatpak"
|
||||||
msgstr ""
|
msgstr "Flatpak"
|
||||||
|
|
||||||
#. The location of the system-wide data directory
|
#. The location of the system-wide data directory
|
||||||
#: data/gtk/preferences.blp:351
|
#: data/gtk/preferences.blp:351
|
||||||
#, fuzzy
|
|
||||||
msgid "System Location"
|
msgid "System Location"
|
||||||
msgstr "Velg mappe"
|
msgstr "System-lagringssted"
|
||||||
|
|
||||||
#. The location of the user-specific data directory
|
#. The location of the user-specific data directory
|
||||||
#: data/gtk/preferences.blp:369
|
#: data/gtk/preferences.blp:369
|
||||||
#, fuzzy
|
|
||||||
msgid "User Location"
|
msgid "User Location"
|
||||||
msgstr "Velg mappe"
|
msgstr "Bruker-lagringssted"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:386
|
#: data/gtk/preferences.blp:386
|
||||||
#, fuzzy
|
|
||||||
msgid "Import Game Launchers"
|
msgid "Import Game Launchers"
|
||||||
msgstr "Spillutvalgstarter"
|
msgstr "Importer spillstartere"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:391 cartridges/importer/desktop_source.py:215
|
#: data/gtk/preferences.blp:391 cartridges/importer/desktop_source.py:215
|
||||||
msgid "Desktop Entries"
|
msgid "Desktop Entries"
|
||||||
msgstr ""
|
msgstr "Skrivebordsoppføringer"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:403 data/gtk/window.blp:562
|
#: data/gtk/preferences.blp:403 data/gtk/window.blp:562
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
@@ -315,7 +305,6 @@ msgid "Authentication"
|
|||||||
msgstr "Identitetsbekreftelse"
|
msgstr "Identitetsbekreftelse"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:410
|
#: data/gtk/preferences.blp:410
|
||||||
#, fuzzy
|
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "API-nøkkel"
|
msgstr "API-nøkkel"
|
||||||
|
|
||||||
@@ -324,31 +313,28 @@ msgid "Use SteamGridDB"
|
|||||||
msgstr "Bruk SteamGridDB"
|
msgstr "Bruk SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:419
|
#: data/gtk/preferences.blp:419
|
||||||
#, fuzzy
|
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Mappe å bruke ved import av spill"
|
msgstr "Last ned bilder når spill legges til eller importeres"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:423
|
#: data/gtk/preferences.blp:423
|
||||||
#, fuzzy
|
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Foretrekk over offisielle bilder"
|
msgstr "Foretrekk fremfor offisielle bilder"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:427
|
#: data/gtk/preferences.blp:427
|
||||||
#, fuzzy
|
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Foretrekk over offisielle bilder"
|
msgstr "Foretrekk animerte bilder"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:433
|
#: data/gtk/preferences.blp:433
|
||||||
msgid "Update Covers"
|
msgid "Update Covers"
|
||||||
msgstr ""
|
msgstr "Oppdater omslag"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:434
|
#: data/gtk/preferences.blp:434
|
||||||
msgid "Fetch covers for games already in your library"
|
msgid "Fetch covers for games already in your library"
|
||||||
msgstr ""
|
msgstr "Hente omslag til spill som allerede finnes i biblioteket ditt"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:439
|
#: data/gtk/preferences.blp:439
|
||||||
msgid "Update"
|
msgid "Update"
|
||||||
msgstr ""
|
msgstr "Oppdater"
|
||||||
|
|
||||||
#: data/gtk/window.blp:6 data/gtk/window.blp:14
|
#: data/gtk/window.blp:6 data/gtk/window.blp:14
|
||||||
msgid "No Games Found"
|
msgid "No Games Found"
|
||||||
@@ -375,19 +361,16 @@ msgid "Games you hide will appear here"
|
|||||||
msgstr "Spill du skjuler vil vises her"
|
msgstr "Spill du skjuler vil vises her"
|
||||||
|
|
||||||
#: data/gtk/window.blp:76 data/gtk/window.blp:111 cartridges/main.py:228
|
#: data/gtk/window.blp:76 data/gtk/window.blp:111 cartridges/main.py:228
|
||||||
#, fuzzy
|
|
||||||
msgid "All Games"
|
msgid "All Games"
|
||||||
msgstr "Fjern alle spill"
|
msgstr "Alle spill"
|
||||||
|
|
||||||
#: data/gtk/window.blp:136 cartridges/main.py:230
|
#: data/gtk/window.blp:136 cartridges/main.py:230
|
||||||
#, fuzzy
|
|
||||||
msgid "Added"
|
msgid "Added"
|
||||||
msgstr "Tillagt: {}"
|
msgstr "Tillagte"
|
||||||
|
|
||||||
#: data/gtk/window.blp:156
|
#: data/gtk/window.blp:156
|
||||||
#, fuzzy
|
|
||||||
msgid "Imported"
|
msgid "Imported"
|
||||||
msgstr "Importer"
|
msgstr "Importerte"
|
||||||
|
|
||||||
#: data/gtk/window.blp:258
|
#: data/gtk/window.blp:258
|
||||||
msgid "Hidden Games"
|
msgid "Hidden Games"
|
||||||
@@ -435,15 +418,15 @@ msgstr "Om"
|
|||||||
|
|
||||||
#: data/gtk/window.blp:561
|
#: data/gtk/window.blp:561
|
||||||
msgid "IGDB"
|
msgid "IGDB"
|
||||||
msgstr ""
|
msgstr "IGDB"
|
||||||
|
|
||||||
#: data/gtk/window.blp:563
|
#: data/gtk/window.blp:563
|
||||||
msgid "ProtonDB"
|
msgid "ProtonDB"
|
||||||
msgstr ""
|
msgstr "ProtonDB"
|
||||||
|
|
||||||
#: data/gtk/window.blp:565
|
#: data/gtk/window.blp:565
|
||||||
msgid "HowLongToBeat"
|
msgid "HowLongToBeat"
|
||||||
msgstr ""
|
msgstr "HowLongToBeat"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: cartridges/main.py:205 cartridges/game.py:125
|
#: cartridges/main.py:205 cartridges/game.py:125
|
||||||
@@ -479,12 +462,11 @@ msgstr "Legg til nytt spill"
|
|||||||
|
|
||||||
#: cartridges/details_dialog.py:80
|
#: cartridges/details_dialog.py:80
|
||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr ""
|
msgstr "Legg til"
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:90
|
#: cartridges/details_dialog.py:90
|
||||||
#, fuzzy
|
|
||||||
msgid "Executables"
|
msgid "Executables"
|
||||||
msgstr "Kjørbar"
|
msgstr "Kjørbare filer"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: cartridges/details_dialog.py:105
|
#: cartridges/details_dialog.py:105
|
||||||
@@ -526,7 +508,7 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"<tt>{} «{}»</tt>\n"
|
"<tt>{} «{}»</tt>\n"
|
||||||
"\n"
|
"\n"
|
||||||
"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."
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:167 cartridges/details_dialog.py:173
|
#: cartridges/details_dialog.py:167 cartridges/details_dialog.py:173
|
||||||
@@ -547,7 +529,6 @@ msgstr "Kunne ikke ta i bruk endringer"
|
|||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: cartridges/game.py:139
|
#: cartridges/game.py:139
|
||||||
#, fuzzy
|
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} skjult"
|
msgstr "{} skjult"
|
||||||
|
|
||||||
@@ -572,36 +553,32 @@ 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{}."
|
||||||
|
|
||||||
#: cartridges/preferences.py:196
|
#: cartridges/preferences.py:196
|
||||||
#, fuzzy
|
|
||||||
msgid "Downloading covers…"
|
msgid "Downloading covers…"
|
||||||
msgstr "Importerer omslag …"
|
msgstr "Laster ned omslag…"
|
||||||
|
|
||||||
#: cartridges/preferences.py:215
|
#: cartridges/preferences.py:215
|
||||||
msgid "Covers updated"
|
msgid "Covers updated"
|
||||||
msgstr ""
|
msgstr "Omslag oppdaterte"
|
||||||
|
|
||||||
#: cartridges/preferences.py:360
|
#: cartridges/preferences.py:360
|
||||||
#, fuzzy
|
|
||||||
msgid "Installation Not Found"
|
msgid "Installation Not Found"
|
||||||
msgstr "Fant ikke installasjonen"
|
msgstr "Fant ikke installasjon"
|
||||||
|
|
||||||
#: cartridges/preferences.py:361
|
#: cartridges/preferences.py:361
|
||||||
#, fuzzy
|
|
||||||
msgid "Select a valid directory"
|
msgid "Select a valid directory"
|
||||||
msgstr "Velg {}-datamappen."
|
msgstr "Velg en gyldig datamappe"
|
||||||
|
|
||||||
#: cartridges/preferences.py:397 cartridges/importer/importer.py:318
|
#: cartridges/preferences.py:397 cartridges/importer/importer.py:318
|
||||||
msgid "Warning"
|
msgid "Warning"
|
||||||
msgstr ""
|
msgstr "Advarsel"
|
||||||
|
|
||||||
#: cartridges/preferences.py:431
|
#: cartridges/preferences.py:431
|
||||||
msgid "Invalid Directory"
|
msgid "Invalid Directory"
|
||||||
msgstr ""
|
msgstr "Ugyldig filmappe"
|
||||||
|
|
||||||
#: cartridges/preferences.py:437
|
#: cartridges/preferences.py:437
|
||||||
#, fuzzy
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Velg mappe"
|
msgstr "Angi lagringssted"
|
||||||
|
|
||||||
#: cartridges/utils/create_dialog.py:33 cartridges/importer/importer.py:319
|
#: cartridges/utils/create_dialog.py:33 cartridges/importer/importer.py:319
|
||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
@@ -613,69 +590,61 @@ msgstr "Importerer spill …"
|
|||||||
|
|
||||||
#: cartridges/importer/importer.py:338
|
#: cartridges/importer/importer.py:338
|
||||||
msgid "The following errors occured during import:"
|
msgid "The following errors occured during import:"
|
||||||
msgstr ""
|
msgstr "De følgende feilene oppsto under importering:"
|
||||||
|
|
||||||
#: cartridges/importer/importer.py:367
|
#: cartridges/importer/importer.py:367
|
||||||
#, fuzzy
|
|
||||||
msgid "No new games found"
|
msgid "No new games found"
|
||||||
msgstr "Fant ingen spill"
|
msgstr "Fant ingen nye spill"
|
||||||
|
|
||||||
#: cartridges/importer/importer.py:379
|
#: cartridges/importer/importer.py:379
|
||||||
#, fuzzy
|
|
||||||
msgid "1 game imported"
|
msgid "1 game imported"
|
||||||
msgstr "Spill importert"
|
msgstr "Ett spill importert"
|
||||||
|
|
||||||
#. The variable is the number of games
|
#. The variable is the number of games
|
||||||
#: cartridges/importer/importer.py:383
|
#: cartridges/importer/importer.py:383
|
||||||
#, fuzzy
|
|
||||||
msgid "{} games imported"
|
msgid "{} games imported"
|
||||||
msgstr "Spill importert"
|
msgstr "{} spill importert"
|
||||||
|
|
||||||
#. A single game removed
|
#. A single game removed
|
||||||
#: cartridges/importer/importer.py:387
|
#: cartridges/importer/importer.py:387
|
||||||
#, fuzzy
|
|
||||||
msgid "1 removed"
|
msgid "1 removed"
|
||||||
msgstr "{} fjernet"
|
msgstr "Ett spill fjernet"
|
||||||
|
|
||||||
#. The variable is the name of the source
|
#. The variable is the name of the source
|
||||||
#: cartridges/importer/location.py:34
|
#: cartridges/importer/location.py:34
|
||||||
#, fuzzy
|
|
||||||
msgid "Select the {} cache directory."
|
msgid "Select the {} cache directory."
|
||||||
msgstr "Velg {}-datamappen."
|
msgstr "Velg {}-hurtiglagermappen."
|
||||||
|
|
||||||
#. The variable is the name of the source
|
#. The variable is the name of the source
|
||||||
#: cartridges/importer/location.py:36
|
#: cartridges/importer/location.py:36
|
||||||
#, fuzzy
|
|
||||||
msgid "Select the {} configuration directory."
|
msgid "Select the {} configuration directory."
|
||||||
msgstr "Velg {}-oppsettsmappen."
|
msgstr "Velg {}-oppsettsmappen."
|
||||||
|
|
||||||
#. The variable is the name of the source
|
#. The variable is the name of the source
|
||||||
#: cartridges/importer/location.py:38
|
#: cartridges/importer/location.py:38
|
||||||
#, fuzzy
|
|
||||||
msgid "Select the {} data directory."
|
msgid "Select the {} data directory."
|
||||||
msgstr "Velg {}-datamappen."
|
msgstr "Velg {}-datamappen."
|
||||||
|
|
||||||
#: cartridges/importer/retroarch_source.py:129
|
#: cartridges/importer/retroarch_source.py:129
|
||||||
msgid "No RetroArch Core Selected"
|
msgid "No RetroArch Core Selected"
|
||||||
msgstr ""
|
msgstr "Ingen RetroArch-kjerne valgt"
|
||||||
|
|
||||||
#. The variable is a newline separated list of playlists
|
#. The variable is a newline separated list of playlists
|
||||||
#: cartridges/importer/retroarch_source.py:131
|
#: cartridges/importer/retroarch_source.py:131
|
||||||
msgid "The following playlists have no default core:"
|
msgid "The following playlists have no default core:"
|
||||||
msgstr ""
|
msgstr "De følgende spillelister har ingen standardkjerne:"
|
||||||
|
|
||||||
#: cartridges/importer/retroarch_source.py:133
|
#: cartridges/importer/retroarch_source.py:133
|
||||||
msgid "Games with no core selected were not imported"
|
msgid "Games with no core selected were not imported"
|
||||||
msgstr ""
|
msgstr "Spill med ingen kjerne valgt har ikke blitt importert"
|
||||||
|
|
||||||
#: cartridges/store/managers/sgdb_manager.py:46
|
#: cartridges/store/managers/sgdb_manager.py:46
|
||||||
#, fuzzy
|
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr "Kunne ikke koble til SteamGridDB"
|
msgstr "Kunne ikke autentisere SteamGridDB"
|
||||||
|
|
||||||
#: cartridges/store/managers/sgdb_manager.py:47
|
#: cartridges/store/managers/sgdb_manager.py:47
|
||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr ""
|
msgstr "Verifiser API-nøkkelen din i Brukervalg"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Cache Location"
|
#~ msgid "Cache Location"
|
||||||
|
|||||||
26
po/pl.po
26
po/pl.po
@@ -7,13 +7,14 @@
|
|||||||
# Michaks <fexwex3@gmail.com>, 2023.
|
# Michaks <fexwex3@gmail.com>, 2023.
|
||||||
# Igor Popowicz <igorpopowicz12@gmail.com>, 2024.
|
# Igor Popowicz <igorpopowicz12@gmail.com>, 2024.
|
||||||
# polswert1 <polswert1@users.noreply.hosted.weblate.org>, 2024.
|
# polswert1 <polswert1@users.noreply.hosted.weblate.org>, 2024.
|
||||||
|
# Karol <k.derbotprogramista@gmail.com>, 2024.
|
||||||
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: 2024-04-14 12:48+0200\n"
|
"POT-Creation-Date: 2024-04-14 12:48+0200\n"
|
||||||
"PO-Revision-Date: 2024-04-14 07:01+0000\n"
|
"PO-Revision-Date: 2024-05-15 14:01+0000\n"
|
||||||
"Last-Translator: polswert1 <polswert1@users.noreply.hosted.weblate.org>\n"
|
"Last-Translator: Karol <k.derbotprogramista@gmail.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"
|
||||||
@@ -22,7 +23,7 @@ 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.5-dev\n"
|
"X-Generator: Weblate 5.6-dev\n"
|
||||||
|
|
||||||
#: data/page.kramo.Cartridges.desktop.in:3
|
#: data/page.kramo.Cartridges.desktop.in:3
|
||||||
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
||||||
@@ -98,7 +99,7 @@ msgstr "Plik wykonywalny"
|
|||||||
|
|
||||||
#: data/gtk/details-dialog.blp:109
|
#: data/gtk/details-dialog.blp:109
|
||||||
msgid "Select File"
|
msgid "Select File"
|
||||||
msgstr ""
|
msgstr "Wybierz Plik"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:120
|
#: data/gtk/details-dialog.blp:120
|
||||||
msgid "More Info"
|
msgid "More Info"
|
||||||
@@ -143,8 +144,9 @@ msgid "Quit"
|
|||||||
msgstr "Wyjdź"
|
msgstr "Wyjdź"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:92 data/gtk/window.blp:185
|
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:92 data/gtk/window.blp:185
|
||||||
|
#, fuzzy
|
||||||
msgid "Toggle Sidebar"
|
msgid "Toggle Sidebar"
|
||||||
msgstr ""
|
msgstr "przełącz pasek boczny"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:198 data/gtk/window.blp:265
|
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:198 data/gtk/window.blp:265
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
@@ -164,14 +166,12 @@ msgid "Import"
|
|||||||
msgstr "Importuj"
|
msgstr "Importuj"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:63
|
#: data/gtk/help-overlay.blp:63
|
||||||
#, fuzzy
|
|
||||||
msgid "Show Hidden Games"
|
msgid "Show Hidden Games"
|
||||||
msgstr "Pokaż ukryte gry"
|
msgstr "Pokaż Ukryte Gry"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:68
|
#: data/gtk/help-overlay.blp:68
|
||||||
#, fuzzy
|
|
||||||
msgid "Remove Game"
|
msgid "Remove Game"
|
||||||
msgstr "Usuń grę"
|
msgstr "Usuń Grę"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:117
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:117
|
||||||
#: data/gtk/preferences.blp:415
|
#: data/gtk/preferences.blp:415
|
||||||
@@ -211,9 +211,8 @@ msgid "Remove All Games"
|
|||||||
msgstr "Usuń wszystkie gry"
|
msgstr "Usuń wszystkie gry"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:120
|
#: data/gtk/preferences.blp:120
|
||||||
#, fuzzy
|
|
||||||
msgid "Remove Uninstalled Games"
|
msgid "Remove Uninstalled Games"
|
||||||
msgstr "Usuń wszystkie gry"
|
msgstr "Usuń Odinstalowane Gry"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:125
|
#: data/gtk/preferences.blp:125
|
||||||
msgid "Sources"
|
msgid "Sources"
|
||||||
@@ -256,9 +255,8 @@ msgid "Import GOG Games"
|
|||||||
msgstr "Importuj gry z GOG"
|
msgstr "Importuj gry z GOG"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:224
|
#: data/gtk/preferences.blp:224
|
||||||
#, fuzzy
|
|
||||||
msgid "Import Amazon Games"
|
msgid "Import Amazon Games"
|
||||||
msgstr "Importuj gry Steam"
|
msgstr "Importuj gry Amazon"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:228
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
@@ -278,7 +276,7 @@ msgstr "Legendarne"
|
|||||||
|
|
||||||
#: data/gtk/preferences.blp:314 cartridges/importer/retroarch_source.py:142
|
#: data/gtk/preferences.blp:314 cartridges/importer/retroarch_source.py:142
|
||||||
msgid "RetroArch"
|
msgid "RetroArch"
|
||||||
msgstr ""
|
msgstr "RetroArch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:341 cartridges/importer/flatpak_source.py:143
|
#: data/gtk/preferences.blp:341 cartridges/importer/flatpak_source.py:143
|
||||||
msgid "Flatpak"
|
msgid "Flatpak"
|
||||||
|
|||||||
13
po/pt_BR.po
13
po/pt_BR.po
@@ -11,7 +11,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: Cartridges\n"
|
"Project-Id-Version: Cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-04-14 12:48+0200\n"
|
"POT-Creation-Date: 2024-04-14 12:48+0200\n"
|
||||||
"PO-Revision-Date: 2024-01-04 04:07+0000\n"
|
"PO-Revision-Date: 2024-04-20 05:07+0000\n"
|
||||||
"Last-Translator: Filipe Motta <luiz_filipe_motta@hotmail.com>\n"
|
"Last-Translator: Filipe Motta <luiz_filipe_motta@hotmail.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"
|
||||||
@@ -20,7 +20,7 @@ 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.4-dev\n"
|
"X-Generator: Weblate 5.5-dev\n"
|
||||||
|
|
||||||
#: data/page.kramo.Cartridges.desktop.in:3
|
#: data/page.kramo.Cartridges.desktop.in:3
|
||||||
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
||||||
@@ -343,27 +343,24 @@ msgid "No Games Found"
|
|||||||
msgstr "Nenhum jogo encontrado"
|
msgstr "Nenhum jogo encontrado"
|
||||||
|
|
||||||
#: data/gtk/window.blp:7 data/gtk/window.blp:15
|
#: data/gtk/window.blp:7 data/gtk/window.blp:15
|
||||||
#, fuzzy
|
|
||||||
msgid "Try a different search"
|
msgid "Try a different search"
|
||||||
msgstr "Tente uma busca diferente."
|
msgstr "Tente uma busca diferente"
|
||||||
|
|
||||||
#: data/gtk/window.blp:21
|
#: data/gtk/window.blp:21
|
||||||
msgid "No Games"
|
msgid "No Games"
|
||||||
msgstr "Sem jogos"
|
msgstr "Sem jogos"
|
||||||
|
|
||||||
#: data/gtk/window.blp:22
|
#: data/gtk/window.blp:22
|
||||||
#, fuzzy
|
|
||||||
msgid "Use the + button to add games"
|
msgid "Use the + button to add games"
|
||||||
msgstr "Use o botão + para adicionar jogos."
|
msgstr "Use o botão + para adicionar jogos"
|
||||||
|
|
||||||
#: data/gtk/window.blp:40
|
#: data/gtk/window.blp:40
|
||||||
msgid "No Hidden Games"
|
msgid "No Hidden Games"
|
||||||
msgstr "Sem jogos ocultos"
|
msgstr "Sem jogos ocultos"
|
||||||
|
|
||||||
#: data/gtk/window.blp:41
|
#: data/gtk/window.blp:41
|
||||||
#, fuzzy
|
|
||||||
msgid "Games you hide will appear here"
|
msgid "Games you hide will appear here"
|
||||||
msgstr "Os jogos ocultos aparecerão aqui."
|
msgstr "Os jogos ocultos aparecerão aqui"
|
||||||
|
|
||||||
#: data/gtk/window.blp:76 data/gtk/window.blp:111 cartridges/main.py:228
|
#: data/gtk/window.blp:76 data/gtk/window.blp:111 cartridges/main.py:228
|
||||||
msgid "All Games"
|
msgid "All Games"
|
||||||
|
|||||||
270
po/ro.po
270
po/ro.po
@@ -2,13 +2,14 @@
|
|||||||
# Copyright (C) YEAR kramo
|
# Copyright (C) YEAR kramo
|
||||||
# This file is distributed under the same license as the Cartridges package.
|
# This file is distributed under the same license as the Cartridges package.
|
||||||
# Matt C <matei.gurzu@gmail.com>, 2023.
|
# Matt C <matei.gurzu@gmail.com>, 2023.
|
||||||
|
# Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2024.
|
||||||
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: 2024-04-14 12:48+0200\n"
|
"POT-Creation-Date: 2024-04-14 12:48+0200\n"
|
||||||
"PO-Revision-Date: 2023-04-04 17:12+0000\n"
|
"PO-Revision-Date: 2024-10-14 00:15+0000\n"
|
||||||
"Last-Translator: Matt C <matei.gurzu@gmail.com>\n"
|
"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
|
||||||
"Language-Team: Romanian <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Romanian <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/ro/>\n"
|
"cartridges/ro/>\n"
|
||||||
"Language: ro\n"
|
"Language: ro\n"
|
||||||
@@ -17,7 +18,7 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
|
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
|
||||||
"20)) ? 1 : 2;\n"
|
"20)) ? 1 : 2;\n"
|
||||||
"X-Generator: Weblate 4.17-dev\n"
|
"X-Generator: Weblate 5.8-dev\n"
|
||||||
|
|
||||||
#: data/page.kramo.Cartridges.desktop.in:3
|
#: data/page.kramo.Cartridges.desktop.in:3
|
||||||
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
||||||
@@ -39,18 +40,20 @@ msgstr "Lansați toate jocurile dvs"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;legendary;retroarch;"
|
"gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;legendary;retroarch;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"jocuri;lansator;gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;lege"
|
||||||
|
"ndary;retroarch;"
|
||||||
|
|
||||||
#: data/page.kramo.Cartridges.metainfo.xml.in:12
|
#: data/page.kramo.Cartridges.metainfo.xml.in:12
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Cartridges is a simple game launcher for all of your games. It has support "
|
"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 "
|
"for importing games from Steam, Lutris, Heroic and more with no login "
|
||||||
"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 ""
|
||||||
"Cartridges este un simplu lansator de jocuri. Are suport pentru importarea "
|
"Cartușe este un lansator de jocuri simplu pentru toate jocurile tale. Acesta "
|
||||||
"jocurilor dvs. din Steam, Heroic și Bottles cu funcții de organizare, cum ar "
|
"are suport pentru importul de jocuri de pe Steam, Lutris, Heroic și multe "
|
||||||
"fi ascunderea și sortarea după data adăugată sau ultima dată jucată."
|
"altele, fără a fi necesară autentificarea. Puteți sorta și ascunde jocurile "
|
||||||
|
"sau descărca coperta jocului din SteamGridDB."
|
||||||
|
|
||||||
#: data/page.kramo.Cartridges.metainfo.xml.in:44 data/gtk/window.blp:318
|
#: data/page.kramo.Cartridges.metainfo.xml.in:44 data/gtk/window.blp:318
|
||||||
#: cartridges/details_dialog.py:68
|
#: cartridges/details_dialog.py:68
|
||||||
@@ -69,55 +72,55 @@ msgstr "Preferințe"
|
|||||||
|
|
||||||
#: data/gtk/details-dialog.blp:15
|
#: data/gtk/details-dialog.blp:15
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr ""
|
msgstr "Anulare"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:46
|
#: data/gtk/details-dialog.blp:46
|
||||||
msgid "New Cover"
|
msgid "New Cover"
|
||||||
msgstr ""
|
msgstr "Copertă nouă"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:65
|
#: data/gtk/details-dialog.blp:65
|
||||||
msgid "Delete Cover"
|
msgid "Delete Cover"
|
||||||
msgstr ""
|
msgstr "Șterge coperta"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:93 data/gtk/game.blp:81
|
#: data/gtk/details-dialog.blp:93 data/gtk/game.blp:81
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr ""
|
msgstr "Titlu"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:97
|
#: data/gtk/details-dialog.blp:97
|
||||||
msgid "Developer (optional)"
|
msgid "Developer (optional)"
|
||||||
msgstr ""
|
msgstr "Dezvoltator (opțional)"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:103
|
#: data/gtk/details-dialog.blp:103
|
||||||
msgid "Executable"
|
msgid "Executable"
|
||||||
msgstr ""
|
msgstr "Executabil"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:109
|
#: data/gtk/details-dialog.blp:109
|
||||||
msgid "Select File"
|
msgid "Select File"
|
||||||
msgstr ""
|
msgstr "Selectare fișier"
|
||||||
|
|
||||||
#: data/gtk/details-dialog.blp:120
|
#: data/gtk/details-dialog.blp:120
|
||||||
msgid "More Info"
|
msgid "More Info"
|
||||||
msgstr ""
|
msgstr "Mai multe informații"
|
||||||
|
|
||||||
#: data/gtk/game.blp:102 data/gtk/game.blp:110 data/gtk/window.blp:443
|
#: data/gtk/game.blp:102 data/gtk/game.blp:110 data/gtk/window.blp:443
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr ""
|
msgstr "Editare"
|
||||||
|
|
||||||
#: data/gtk/game.blp:103 cartridges/window.py:350
|
#: data/gtk/game.blp:103 cartridges/window.py:350
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr ""
|
msgstr "Ascunde"
|
||||||
|
|
||||||
#: data/gtk/game.blp:104 data/gtk/game.blp:112 data/gtk/window.blp:463
|
#: data/gtk/game.blp:104 data/gtk/game.blp:112 data/gtk/window.blp:463
|
||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr ""
|
msgstr "Elimină"
|
||||||
|
|
||||||
#: data/gtk/game.blp:111 cartridges/window.py:352
|
#: data/gtk/game.blp:111 cartridges/window.py:352
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr ""
|
msgstr "Afișează"
|
||||||
|
|
||||||
#: 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"
|
||||||
msgstr ""
|
msgstr "General"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:14 data/gtk/window.blp:205 data/gtk/window.blp:221
|
#: data/gtk/help-overlay.blp:14 data/gtk/window.blp:205 data/gtk/window.blp:221
|
||||||
#: data/gtk/window.blp:272 data/gtk/window.blp:288 data/gtk/window.blp:474
|
#: data/gtk/window.blp:272 data/gtk/window.blp:288 data/gtk/window.blp:474
|
||||||
@@ -126,20 +129,20 @@ msgstr "Căutare"
|
|||||||
|
|
||||||
#: data/gtk/help-overlay.blp:24 data/gtk/window.blp:543
|
#: data/gtk/help-overlay.blp:24 data/gtk/window.blp:543
|
||||||
msgid "Keyboard Shortcuts"
|
msgid "Keyboard Shortcuts"
|
||||||
msgstr ""
|
msgstr "Taste de comenzi rapide"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:29 cartridges/game.py:103
|
#: data/gtk/help-overlay.blp:29 cartridges/game.py:103
|
||||||
#: cartridges/preferences.py:134 cartridges/importer/importer.py:394
|
#: cartridges/preferences.py:134 cartridges/importer/importer.py:394
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr ""
|
msgstr "Anulează"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34
|
#: data/gtk/help-overlay.blp:34
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr ""
|
msgstr "Ieșire"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:92 data/gtk/window.blp:185
|
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:92 data/gtk/window.blp:185
|
||||||
msgid "Toggle Sidebar"
|
msgid "Toggle Sidebar"
|
||||||
msgstr ""
|
msgstr "Afișează/ascunde bara laterală"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:198 data/gtk/window.blp:265
|
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:198 data/gtk/window.blp:265
|
||||||
msgid "Main Menu"
|
msgid "Main Menu"
|
||||||
@@ -147,7 +150,7 @@ msgstr "Meniu principal"
|
|||||||
|
|
||||||
#: data/gtk/help-overlay.blp:50
|
#: data/gtk/help-overlay.blp:50
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr ""
|
msgstr "Jocuri"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:53 data/gtk/window.blp:191 data/gtk/window.blp:550
|
#: data/gtk/help-overlay.blp:53 data/gtk/window.blp:191 data/gtk/window.blp:550
|
||||||
msgid "Add Game"
|
msgid "Add Game"
|
||||||
@@ -156,186 +159,185 @@ msgstr "Adăugați joc"
|
|||||||
#: data/gtk/help-overlay.blp:58 data/gtk/preferences.blp:113
|
#: data/gtk/help-overlay.blp:58 data/gtk/preferences.blp:113
|
||||||
#: data/gtk/window.blp:27 data/gtk/window.blp:554
|
#: data/gtk/window.blp:27 data/gtk/window.blp:554
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr ""
|
msgstr "Import"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:63
|
#: data/gtk/help-overlay.blp:63
|
||||||
#, fuzzy
|
|
||||||
msgid "Show Hidden Games"
|
msgid "Show Hidden Games"
|
||||||
msgstr "Fără jocuri ascunse"
|
msgstr "Afișează jocurile ascunse"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:68
|
#: data/gtk/help-overlay.blp:68
|
||||||
#, fuzzy
|
|
||||||
msgid "Remove Game"
|
msgid "Remove Game"
|
||||||
msgstr "Fără jocuri"
|
msgstr "Elimină jocul"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:117
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:117
|
||||||
#: data/gtk/preferences.blp:415
|
#: data/gtk/preferences.blp:415
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr ""
|
msgstr "Comportament"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:16
|
#: data/gtk/preferences.blp:16
|
||||||
msgid "Exit After Launching Games"
|
msgid "Exit After Launching Games"
|
||||||
msgstr ""
|
msgstr "Ieșire din program după lansarea jocurilor"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:20
|
#: data/gtk/preferences.blp:20
|
||||||
msgid "Cover Image Launches Game"
|
msgid "Cover Image Launches Game"
|
||||||
msgstr ""
|
msgstr "Imaginea de copertă lansează jocul"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:21
|
#: data/gtk/preferences.blp:21
|
||||||
msgid "Swaps the behavior of the cover image and the play button"
|
msgid "Swaps the behavior of the cover image and the play button"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Interschimbă comportamentul imaginii de copertă și al butonului de redare"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:26 cartridges/details_dialog.py:82
|
#: data/gtk/preferences.blp:26 cartridges/details_dialog.py:82
|
||||||
msgid "Images"
|
msgid "Images"
|
||||||
msgstr ""
|
msgstr "Imagini"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:29
|
#: data/gtk/preferences.blp:29
|
||||||
msgid "High Quality Images"
|
msgid "High Quality Images"
|
||||||
msgstr ""
|
msgstr "Imagini de înaltă calitate"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:30
|
#: data/gtk/preferences.blp:30
|
||||||
msgid "Save game covers losslessly at the cost of storage"
|
msgid "Save game covers losslessly at the cost of storage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Salvează coperțile jocurilor fără pierderi, dar ocupă mai mult spațiu de "
|
||||||
|
"stocare"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:35
|
#: data/gtk/preferences.blp:35
|
||||||
msgid "Danger Zone"
|
msgid "Danger Zone"
|
||||||
msgstr ""
|
msgstr "Zonă periculoasă"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:48
|
#: data/gtk/preferences.blp:48
|
||||||
msgid "Remove All Games"
|
msgid "Remove All Games"
|
||||||
msgstr ""
|
msgstr "Elimină toate jocurile"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:120
|
#: data/gtk/preferences.blp:120
|
||||||
msgid "Remove Uninstalled Games"
|
msgid "Remove Uninstalled Games"
|
||||||
msgstr ""
|
msgstr "Elimină jocurile dezinstalate"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:125
|
#: data/gtk/preferences.blp:125
|
||||||
msgid "Sources"
|
msgid "Sources"
|
||||||
msgstr ""
|
msgstr "Surse"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:128 cartridges/importer/steam_source.py:114
|
#: data/gtk/preferences.blp:128 cartridges/importer/steam_source.py:114
|
||||||
msgid "Steam"
|
msgid "Steam"
|
||||||
msgstr ""
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137 data/gtk/preferences.blp:164
|
#: data/gtk/preferences.blp:137 data/gtk/preferences.blp:164
|
||||||
#: data/gtk/preferences.blp:199 data/gtk/preferences.blp:242
|
#: data/gtk/preferences.blp:199 data/gtk/preferences.blp:242
|
||||||
#: data/gtk/preferences.blp:269 data/gtk/preferences.blp:296
|
#: data/gtk/preferences.blp:269 data/gtk/preferences.blp:296
|
||||||
#: data/gtk/preferences.blp:323
|
#: data/gtk/preferences.blp:323
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr ""
|
msgstr "Locația de instalare"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:155 data/gtk/window.blp:564
|
#: data/gtk/preferences.blp:155 data/gtk/window.blp:564
|
||||||
#: cartridges/importer/lutris_source.py:96
|
#: cartridges/importer/lutris_source.py:96
|
||||||
msgid "Lutris"
|
msgid "Lutris"
|
||||||
msgstr ""
|
msgstr "Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:181
|
#: data/gtk/preferences.blp:181
|
||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr ""
|
msgstr "Importă jocuri din Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:185
|
#: data/gtk/preferences.blp:185
|
||||||
msgid "Import Flatpak Games"
|
msgid "Import Flatpak Games"
|
||||||
msgstr ""
|
msgstr "Importă jocuri din Flatpak"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:190 cartridges/importer/heroic_source.py:355
|
#: data/gtk/preferences.blp:190 cartridges/importer/heroic_source.py:355
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr ""
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:216
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr ""
|
msgstr "Importă jocuri din Epic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:220
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr ""
|
msgstr "Importă jocuri din GOG"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:224
|
#: data/gtk/preferences.blp:224
|
||||||
#, fuzzy
|
|
||||||
msgid "Import Amazon Games"
|
msgid "Import Amazon Games"
|
||||||
msgstr "Lansator de jocuri"
|
msgstr "Importă jocuri din Amazon"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:228
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr ""
|
msgstr "Importă jocuri descărcate manual"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:233 cartridges/importer/bottles_source.py:86
|
#: data/gtk/preferences.blp:233 cartridges/importer/bottles_source.py:86
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr ""
|
msgstr "Bottles"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260 cartridges/importer/itch_source.py:81
|
#: data/gtk/preferences.blp:260 cartridges/importer/itch_source.py:81
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr ""
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:287 cartridges/importer/legendary_source.py:97
|
#: data/gtk/preferences.blp:287 cartridges/importer/legendary_source.py:97
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr ""
|
msgstr "Legendary"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:314 cartridges/importer/retroarch_source.py:142
|
#: data/gtk/preferences.blp:314 cartridges/importer/retroarch_source.py:142
|
||||||
msgid "RetroArch"
|
msgid "RetroArch"
|
||||||
msgstr ""
|
msgstr "RetroArch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:341 cartridges/importer/flatpak_source.py:143
|
#: data/gtk/preferences.blp:341 cartridges/importer/flatpak_source.py:143
|
||||||
msgid "Flatpak"
|
msgid "Flatpak"
|
||||||
msgstr ""
|
msgstr "Flatpak"
|
||||||
|
|
||||||
#. The location of the system-wide data directory
|
#. The location of the system-wide data directory
|
||||||
#: data/gtk/preferences.blp:351
|
#: data/gtk/preferences.blp:351
|
||||||
msgid "System Location"
|
msgid "System Location"
|
||||||
msgstr ""
|
msgstr "Locația directorului de date la nivel de sistem"
|
||||||
|
|
||||||
#. The location of the user-specific data directory
|
#. The location of the user-specific data directory
|
||||||
#: data/gtk/preferences.blp:369
|
#: data/gtk/preferences.blp:369
|
||||||
msgid "User Location"
|
msgid "User Location"
|
||||||
msgstr ""
|
msgstr "Locația directorului de date specific utilizatorului"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:386
|
#: data/gtk/preferences.blp:386
|
||||||
#, fuzzy
|
|
||||||
msgid "Import Game Launchers"
|
msgid "Import Game Launchers"
|
||||||
msgstr "Lansator de jocuri"
|
msgstr "Importare lansatoare de jocuri"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:391 cartridges/importer/desktop_source.py:215
|
#: data/gtk/preferences.blp:391 cartridges/importer/desktop_source.py:215
|
||||||
msgid "Desktop Entries"
|
msgid "Desktop Entries"
|
||||||
msgstr ""
|
msgstr "Elemente de acces direct, pe birou"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:403 data/gtk/window.blp:562
|
#: data/gtk/preferences.blp:403 data/gtk/window.blp:562
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr ""
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:407
|
#: data/gtk/preferences.blp:407
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr ""
|
msgstr "Autentificare"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:410
|
#: data/gtk/preferences.blp:410
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr ""
|
msgstr "Cheie API"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:418
|
#: data/gtk/preferences.blp:418
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr ""
|
msgstr "Utilizează SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:419
|
#: data/gtk/preferences.blp:419
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr ""
|
msgstr "Descarcă imagini atunci când se adaugă sau se importă jocuri"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:423
|
#: data/gtk/preferences.blp:423
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr ""
|
msgstr "Preferă mai mult decât imaginile oficiale"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:427
|
#: data/gtk/preferences.blp:427
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr ""
|
msgstr "Preferă imaginile animate"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:433
|
#: data/gtk/preferences.blp:433
|
||||||
msgid "Update Covers"
|
msgid "Update Covers"
|
||||||
msgstr ""
|
msgstr "Actualizare coperți"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:434
|
#: data/gtk/preferences.blp:434
|
||||||
msgid "Fetch covers for games already in your library"
|
msgid "Fetch covers for games already in your library"
|
||||||
msgstr ""
|
msgstr "Obține coperți pentru jocurile aflate deja în colecție"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:439
|
#: data/gtk/preferences.blp:439
|
||||||
msgid "Update"
|
msgid "Update"
|
||||||
msgstr ""
|
msgstr "Actualizare"
|
||||||
|
|
||||||
#: data/gtk/window.blp:6 data/gtk/window.blp:14
|
#: data/gtk/window.blp:6 data/gtk/window.blp:14
|
||||||
msgid "No Games Found"
|
msgid "No Games Found"
|
||||||
@@ -362,17 +364,16 @@ msgid "Games you hide will appear here"
|
|||||||
msgstr "Jocurile pe care le ascundeți vor apărea aici"
|
msgstr "Jocurile pe care le ascundeți vor apărea aici"
|
||||||
|
|
||||||
#: data/gtk/window.blp:76 data/gtk/window.blp:111 cartridges/main.py:228
|
#: data/gtk/window.blp:76 data/gtk/window.blp:111 cartridges/main.py:228
|
||||||
#, fuzzy
|
|
||||||
msgid "All Games"
|
msgid "All Games"
|
||||||
msgstr "Fără jocuri"
|
msgstr "Toate jocurile"
|
||||||
|
|
||||||
#: data/gtk/window.blp:136 cartridges/main.py:230
|
#: data/gtk/window.blp:136 cartridges/main.py:230
|
||||||
msgid "Added"
|
msgid "Added"
|
||||||
msgstr ""
|
msgstr "Adăugat"
|
||||||
|
|
||||||
#: data/gtk/window.blp:156
|
#: data/gtk/window.blp:156
|
||||||
msgid "Imported"
|
msgid "Imported"
|
||||||
msgstr ""
|
msgstr "Importat"
|
||||||
|
|
||||||
#: data/gtk/window.blp:258
|
#: data/gtk/window.blp:258
|
||||||
msgid "Hidden Games"
|
msgid "Hidden Games"
|
||||||
@@ -388,107 +389,109 @@ msgstr "Joacă"
|
|||||||
|
|
||||||
#: data/gtk/window.blp:501
|
#: data/gtk/window.blp:501
|
||||||
msgid "Sort"
|
msgid "Sort"
|
||||||
msgstr ""
|
msgstr "Sortează"
|
||||||
|
|
||||||
#: data/gtk/window.blp:504
|
#: data/gtk/window.blp:504
|
||||||
msgid "A-Z"
|
msgid "A-Z"
|
||||||
msgstr ""
|
msgstr "A-Z"
|
||||||
|
|
||||||
#: data/gtk/window.blp:510
|
#: data/gtk/window.blp:510
|
||||||
msgid "Z-A"
|
msgid "Z-A"
|
||||||
msgstr ""
|
msgstr "Z-A"
|
||||||
|
|
||||||
#: data/gtk/window.blp:516
|
#: data/gtk/window.blp:516
|
||||||
msgid "Newest"
|
msgid "Newest"
|
||||||
msgstr ""
|
msgstr "Cel mai noi"
|
||||||
|
|
||||||
#: data/gtk/window.blp:522
|
#: data/gtk/window.blp:522
|
||||||
msgid "Oldest"
|
msgid "Oldest"
|
||||||
msgstr ""
|
msgstr "Cel mai vechi"
|
||||||
|
|
||||||
#: data/gtk/window.blp:528
|
#: data/gtk/window.blp:528
|
||||||
msgid "Last Played"
|
msgid "Last Played"
|
||||||
msgstr ""
|
msgstr "Jucat ultima dată"
|
||||||
|
|
||||||
#: data/gtk/window.blp:535
|
#: data/gtk/window.blp:535
|
||||||
msgid "Show Hidden"
|
msgid "Show Hidden"
|
||||||
msgstr ""
|
msgstr "Afișează pe cele ascunse"
|
||||||
|
|
||||||
#: data/gtk/window.blp:544
|
#: data/gtk/window.blp:544
|
||||||
msgid "About Cartridges"
|
msgid "About Cartridges"
|
||||||
msgstr ""
|
msgstr "Despre Cartușe"
|
||||||
|
|
||||||
#: data/gtk/window.blp:561
|
#: data/gtk/window.blp:561
|
||||||
msgid "IGDB"
|
msgid "IGDB"
|
||||||
msgstr ""
|
msgstr "IGDB"
|
||||||
|
|
||||||
#: data/gtk/window.blp:563
|
#: data/gtk/window.blp:563
|
||||||
msgid "ProtonDB"
|
msgid "ProtonDB"
|
||||||
msgstr ""
|
msgstr "ProtonDB"
|
||||||
|
|
||||||
#: data/gtk/window.blp:565
|
#: data/gtk/window.blp:565
|
||||||
msgid "HowLongToBeat"
|
msgid "HowLongToBeat"
|
||||||
msgstr ""
|
msgstr "HowLongToBeat"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: cartridges/main.py:205 cartridges/game.py:125
|
#: cartridges/main.py:205 cartridges/game.py:125
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr ""
|
msgstr "{} lansat"
|
||||||
|
|
||||||
#. 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
|
||||||
#: cartridges/main.py:270
|
#: cartridges/main.py:270
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Matt C <matei.gurzu@gmail.com>,\n"
|
||||||
|
"Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: cartridges/window.py:373
|
#: cartridges/window.py:373
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr ""
|
msgstr "Adăugat: {}"
|
||||||
|
|
||||||
#: cartridges/window.py:376
|
#: cartridges/window.py:376
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr ""
|
msgstr "Niciodată"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: cartridges/window.py:380
|
#: cartridges/window.py:380
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr ""
|
msgstr "Jucat ultima dată {}"
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:73
|
#: cartridges/details_dialog.py:73
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr ""
|
msgstr "Aplică"
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:79
|
#: cartridges/details_dialog.py:79
|
||||||
msgid "Add New Game"
|
msgid "Add New Game"
|
||||||
msgstr ""
|
msgstr "Adaugă un joc nou"
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:80
|
#: cartridges/details_dialog.py:80
|
||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr ""
|
msgstr "Adaugă"
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:90
|
#: cartridges/details_dialog.py:90
|
||||||
msgid "Executables"
|
msgid "Executables"
|
||||||
msgstr ""
|
msgstr "Executabili"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: cartridges/details_dialog.py:105
|
#: cartridges/details_dialog.py:105
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr ""
|
msgstr "fișier.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: cartridges/details_dialog.py:107
|
#: cartridges/details_dialog.py:107
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr ""
|
msgstr "program"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: cartridges/details_dialog.py:112 cartridges/details_dialog.py:114
|
#: cartridges/details_dialog.py:112 cartridges/details_dialog.py:114
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr ""
|
msgstr "C:\ruta\\către\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: cartridges/details_dialog.py:118 cartridges/details_dialog.py:120
|
#: cartridges/details_dialog.py:118 cartridges/details_dialog.py:120
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr ""
|
msgstr "/ruta/către/{}"
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:125
|
#: cartridges/details_dialog.py:125
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -502,142 +505,151 @@ msgid ""
|
|||||||
"\n"
|
"\n"
|
||||||
"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 ""
|
||||||
|
"Pentru a lansa executabilul „{}”, utilizați comanda:\n"
|
||||||
|
"\n"
|
||||||
|
"<tt>„{}”</tt>\n"
|
||||||
|
"\n"
|
||||||
|
"Pentru a deschide fișierul „{}” cu aplicația implicită, utilizați:\n"
|
||||||
|
"\n"
|
||||||
|
"<tt>{} „{}”</tt>\n"
|
||||||
|
"\n"
|
||||||
|
"Dacă ruta conține spații, asigurați-vă că o includeți între ghilimele duble!"
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:167 cartridges/details_dialog.py:173
|
#: cartridges/details_dialog.py:167 cartridges/details_dialog.py:173
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr ""
|
msgstr "Nu s-a putut adăuga jocul"
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:167 cartridges/details_dialog.py:209
|
#: cartridges/details_dialog.py:167 cartridges/details_dialog.py:209
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr ""
|
msgstr "Titlul jocului nu poate fi gol."
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:173 cartridges/details_dialog.py:217
|
#: cartridges/details_dialog.py:173 cartridges/details_dialog.py:217
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr ""
|
msgstr "Executabilul nu poate fi gol."
|
||||||
|
|
||||||
#: cartridges/details_dialog.py:208 cartridges/details_dialog.py:216
|
#: cartridges/details_dialog.py:208 cartridges/details_dialog.py:216
|
||||||
msgid "Couldn't Apply Preferences"
|
msgid "Couldn't Apply Preferences"
|
||||||
msgstr ""
|
msgstr "Nu s-au putut aplica preferințele"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: cartridges/game.py:139
|
#: cartridges/game.py:139
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr ""
|
msgstr "{} ascuns"
|
||||||
|
|
||||||
#: cartridges/game.py:139
|
#: cartridges/game.py:139
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr ""
|
msgstr "{} afișat"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#. The variable is the number of games removed
|
#. The variable is the number of games removed
|
||||||
#: cartridges/game.py:153 cartridges/importer/importer.py:391
|
#: cartridges/game.py:153 cartridges/importer/importer.py:391
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr ""
|
msgstr "{} eliminat"
|
||||||
|
|
||||||
#: cartridges/preferences.py:133
|
#: cartridges/preferences.py:133
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr ""
|
msgstr "Toate jocurile au fost eliminate"
|
||||||
|
|
||||||
#: cartridges/preferences.py:181
|
#: cartridges/preferences.py:181
|
||||||
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 ""
|
||||||
|
"O cheie API este necesară pentru a utiliza SteamGridDB. Puteți genera una "
|
||||||
|
"{}aici{}."
|
||||||
|
|
||||||
#: cartridges/preferences.py:196
|
#: cartridges/preferences.py:196
|
||||||
msgid "Downloading covers…"
|
msgid "Downloading covers…"
|
||||||
msgstr ""
|
msgstr "Se descarcă coperțile…"
|
||||||
|
|
||||||
#: cartridges/preferences.py:215
|
#: cartridges/preferences.py:215
|
||||||
msgid "Covers updated"
|
msgid "Covers updated"
|
||||||
msgstr ""
|
msgstr "Coperți actualizate"
|
||||||
|
|
||||||
#: cartridges/preferences.py:360
|
#: cartridges/preferences.py:360
|
||||||
msgid "Installation Not Found"
|
msgid "Installation Not Found"
|
||||||
msgstr ""
|
msgstr "Instalarea nu a fost găsită"
|
||||||
|
|
||||||
#: cartridges/preferences.py:361
|
#: cartridges/preferences.py:361
|
||||||
msgid "Select a valid directory"
|
msgid "Select a valid directory"
|
||||||
msgstr ""
|
msgstr "Selectați un director valid"
|
||||||
|
|
||||||
#: cartridges/preferences.py:397 cartridges/importer/importer.py:318
|
#: cartridges/preferences.py:397 cartridges/importer/importer.py:318
|
||||||
msgid "Warning"
|
msgid "Warning"
|
||||||
msgstr ""
|
msgstr "Atenţie"
|
||||||
|
|
||||||
#: cartridges/preferences.py:431
|
#: cartridges/preferences.py:431
|
||||||
msgid "Invalid Directory"
|
msgid "Invalid Directory"
|
||||||
msgstr ""
|
msgstr "Director nevalid"
|
||||||
|
|
||||||
#: cartridges/preferences.py:437
|
#: cartridges/preferences.py:437
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr ""
|
msgstr "Stabilește locația"
|
||||||
|
|
||||||
#: cartridges/utils/create_dialog.py:33 cartridges/importer/importer.py:319
|
#: cartridges/utils/create_dialog.py:33 cartridges/importer/importer.py:319
|
||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr ""
|
msgstr "Revocare"
|
||||||
|
|
||||||
#: cartridges/importer/importer.py:145
|
#: cartridges/importer/importer.py:145
|
||||||
#, fuzzy
|
|
||||||
msgid "Importing Games…"
|
msgid "Importing Games…"
|
||||||
msgstr "Lansator de jocuri"
|
msgstr "Se importă jocurile…"
|
||||||
|
|
||||||
#: cartridges/importer/importer.py:338
|
#: cartridges/importer/importer.py:338
|
||||||
msgid "The following errors occured during import:"
|
msgid "The following errors occured during import:"
|
||||||
msgstr ""
|
msgstr "Au apărut următoarele erori în timpul importului:"
|
||||||
|
|
||||||
#: cartridges/importer/importer.py:367
|
#: cartridges/importer/importer.py:367
|
||||||
#, fuzzy
|
|
||||||
msgid "No new games found"
|
msgid "No new games found"
|
||||||
msgstr "Nu s-au găsit jocuri"
|
msgstr "Nu s-au găsit jocuri noi"
|
||||||
|
|
||||||
#: cartridges/importer/importer.py:379
|
#: cartridges/importer/importer.py:379
|
||||||
msgid "1 game imported"
|
msgid "1 game imported"
|
||||||
msgstr ""
|
msgstr "un joc importat"
|
||||||
|
|
||||||
#. The variable is the number of games
|
#. The variable is the number of games
|
||||||
#: cartridges/importer/importer.py:383
|
#: cartridges/importer/importer.py:383
|
||||||
msgid "{} games imported"
|
msgid "{} games imported"
|
||||||
msgstr ""
|
msgstr "{} jocuri importate"
|
||||||
|
|
||||||
#. A single game removed
|
#. A single game removed
|
||||||
#: cartridges/importer/importer.py:387
|
#: cartridges/importer/importer.py:387
|
||||||
msgid "1 removed"
|
msgid "1 removed"
|
||||||
msgstr ""
|
msgstr "un joc eliminat"
|
||||||
|
|
||||||
#. The variable is the name of the source
|
#. The variable is the name of the source
|
||||||
#: cartridges/importer/location.py:34
|
#: cartridges/importer/location.py:34
|
||||||
msgid "Select the {} cache directory."
|
msgid "Select the {} cache directory."
|
||||||
msgstr ""
|
msgstr "Selectați directorul cache {}."
|
||||||
|
|
||||||
#. The variable is the name of the source
|
#. The variable is the name of the source
|
||||||
#: cartridges/importer/location.py:36
|
#: cartridges/importer/location.py:36
|
||||||
msgid "Select the {} configuration directory."
|
msgid "Select the {} configuration directory."
|
||||||
msgstr ""
|
msgstr "Selectați directorul de configurare {}."
|
||||||
|
|
||||||
#. The variable is the name of the source
|
#. The variable is the name of the source
|
||||||
#: cartridges/importer/location.py:38
|
#: cartridges/importer/location.py:38
|
||||||
msgid "Select the {} data directory."
|
msgid "Select the {} data directory."
|
||||||
msgstr ""
|
msgstr "Selectați directorul de date {}."
|
||||||
|
|
||||||
#: cartridges/importer/retroarch_source.py:129
|
#: cartridges/importer/retroarch_source.py:129
|
||||||
msgid "No RetroArch Core Selected"
|
msgid "No RetroArch Core Selected"
|
||||||
msgstr ""
|
msgstr "Nu este selectat niciun nucleu RetroArch"
|
||||||
|
|
||||||
#. The variable is a newline separated list of playlists
|
#. The variable is a newline separated list of playlists
|
||||||
#: cartridges/importer/retroarch_source.py:131
|
#: cartridges/importer/retroarch_source.py:131
|
||||||
msgid "The following playlists have no default core:"
|
msgid "The following playlists have no default core:"
|
||||||
msgstr ""
|
msgstr "Următoarele liste de redare nu au un nucleu implicit:"
|
||||||
|
|
||||||
#: cartridges/importer/retroarch_source.py:133
|
#: cartridges/importer/retroarch_source.py:133
|
||||||
msgid "Games with no core selected were not imported"
|
msgid "Games with no core selected were not imported"
|
||||||
msgstr ""
|
msgstr "Jocurile fără un nucleu selectat nu au fost importate"
|
||||||
|
|
||||||
#: cartridges/store/managers/sgdb_manager.py:46
|
#: cartridges/store/managers/sgdb_manager.py:46
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr ""
|
msgstr "Nu s-a putut autentifica SteamGridDB"
|
||||||
|
|
||||||
#: cartridges/store/managers/sgdb_manager.py:47
|
#: cartridges/store/managers/sgdb_manager.py:47
|
||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr ""
|
msgstr "Verificați cheia API în preferințe"
|
||||||
|
|
||||||
#~ msgid "Library"
|
#~ msgid "Library"
|
||||||
#~ msgstr "Bibliotecă"
|
#~ msgstr "Bibliotecă"
|
||||||
|
|||||||
641
po/te.po
Normal file
641
po/te.po
Normal file
@@ -0,0 +1,641 @@
|
|||||||
|
# Telugu Translation for Cartridges.
|
||||||
|
# Copyright (C) YEAR kramo
|
||||||
|
# This file is distributed under the same license as the Cartridges package.
|
||||||
|
# Aryan Karamtoth <aryankmmiv@outlook.com>, 2024.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Cartridges\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2024-04-14 12:48+0200\n"
|
||||||
|
"PO-Revision-Date: 2024-10-08 10:06+0530\n"
|
||||||
|
"Last-Translator: Aryan Karamtoth <aryankmmiv@outlook.com>\n"
|
||||||
|
"Language-Team: Telugu\n"
|
||||||
|
"Language: te\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Generator: Gtranslator 47.0\n"
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.desktop.in:3
|
||||||
|
#: data/page.kramo.Cartridges.metainfo.xml.in:9
|
||||||
|
#: data/page.kramo.Cartridges.metainfo.xml.in:40 data/gtk/window.blp:47
|
||||||
|
#: data/gtk/window.blp:83
|
||||||
|
msgid "Cartridges"
|
||||||
|
msgstr "కాట్రిడ్జ్లు"
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.desktop.in:4
|
||||||
|
msgid "Game Launcher"
|
||||||
|
msgstr "గేమ్ లాంచర్"
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.desktop.in:5
|
||||||
|
#: data/page.kramo.Cartridges.metainfo.xml.in:10
|
||||||
|
msgid "Launch all your games"
|
||||||
|
msgstr "మీ అన్ని ఆటలను ప్రారంభించండి"
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.desktop.in:11
|
||||||
|
msgid ""
|
||||||
|
"gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;legendary;retroarch;"
|
||||||
|
msgstr ""
|
||||||
|
"gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;legendary;retroarch;"
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.metainfo.xml.in:12
|
||||||
|
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 ""
|
||||||
|
"కాట్రిడ్జ్లు అనేది మీ అన్ని గేమ్ల కోసం ఒక సాధారణ గేమ్ లాంచర్. లాగిన్ అవసరం లేకుండా స్టీమ్, లుట్రిస్, హీరోయిక్ "
|
||||||
|
"మరియు మరిన్నింటి నుండి గేమ్లను దిగుమతి చేసుకోవడానికి ఇది మద్దతును కలిగి ఉంది. మీరు గేమ్లను "
|
||||||
|
"క్రమబద్ధీకరించవచ్చు మరియు దాచవచ్చు లేదా SteamGridDB నుండి కవర్ ఆర్ట్ని డౌన్లోడ్ చేసుకోవచ్చు."
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.metainfo.xml.in:44 data/gtk/window.blp:318
|
||||||
|
#: cartridges/details_dialog.py:68
|
||||||
|
msgid "Game Details"
|
||||||
|
msgstr "గేమ్ వివరాలు"
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.metainfo.xml.in:48
|
||||||
|
msgid "Edit Game Details"
|
||||||
|
msgstr "గేమ్ వివరాలను సవరించండి"
|
||||||
|
|
||||||
|
#: data/page.kramo.Cartridges.metainfo.xml.in:52 data/gtk/help-overlay.blp:19
|
||||||
|
#: data/gtk/window.blp:542 cartridges/details_dialog.py:267
|
||||||
|
#: cartridges/importer/importer.py:320 cartridges/importer/importer.py:370
|
||||||
|
msgid "Preferences"
|
||||||
|
msgstr "ప్రాధాన్యతలు"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:15
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "రద్దు చేయి"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:46
|
||||||
|
msgid "New Cover"
|
||||||
|
msgstr "కొత్త కవర్"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:65
|
||||||
|
msgid "Delete Cover"
|
||||||
|
msgstr "కవర్ని తొలగించండి"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:93 data/gtk/game.blp:81
|
||||||
|
msgid "Title"
|
||||||
|
msgstr "శీర్షిక"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:97
|
||||||
|
msgid "Developer (optional)"
|
||||||
|
msgstr "డెవలపర్ (ఐచ్ఛికం)"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:103
|
||||||
|
msgid "Executable"
|
||||||
|
msgstr "అమలు చేయదగినది"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:109
|
||||||
|
msgid "Select File"
|
||||||
|
msgstr "ఫైల్ని ఎంచుకోండి"
|
||||||
|
|
||||||
|
#: data/gtk/details-dialog.blp:120
|
||||||
|
msgid "More Info"
|
||||||
|
msgstr "మరింత సమాచారం"
|
||||||
|
|
||||||
|
#: data/gtk/game.blp:102 data/gtk/game.blp:110 data/gtk/window.blp:443
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "సవరించు"
|
||||||
|
|
||||||
|
#: data/gtk/game.blp:103 cartridges/window.py:350
|
||||||
|
msgid "Hide"
|
||||||
|
msgstr "దాచు"
|
||||||
|
|
||||||
|
#: data/gtk/game.blp:104 data/gtk/game.blp:112 data/gtk/window.blp:463
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr "తొలగించు"
|
||||||
|
|
||||||
|
#: data/gtk/game.blp:111 cartridges/window.py:352
|
||||||
|
msgid "Unhide"
|
||||||
|
msgstr "దాచిపెట్టు"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:11 data/gtk/preferences.blp:9
|
||||||
|
msgid "General"
|
||||||
|
msgstr "జనరల్"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:14 data/gtk/window.blp:205 data/gtk/window.blp:221
|
||||||
|
#: data/gtk/window.blp:272 data/gtk/window.blp:288 data/gtk/window.blp:474
|
||||||
|
msgid "Search"
|
||||||
|
msgstr "శోధించండి"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:24 data/gtk/window.blp:543
|
||||||
|
msgid "Keyboard Shortcuts"
|
||||||
|
msgstr "కీబోర్డ్ సత్వరమార్గాలు"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:29 cartridges/game.py:103
|
||||||
|
#: cartridges/preferences.py:134 cartridges/importer/importer.py:394
|
||||||
|
msgid "Undo"
|
||||||
|
msgstr "అన్డు"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:34
|
||||||
|
msgid "Quit"
|
||||||
|
msgstr "నిష్క్రమించు"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:92 data/gtk/window.blp:185
|
||||||
|
msgid "Toggle Sidebar"
|
||||||
|
msgstr "సైడ్బార్ని టోగుల్ చేయండి"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:198 data/gtk/window.blp:265
|
||||||
|
msgid "Main Menu"
|
||||||
|
msgstr "ప్రధాన మెనూ"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:50
|
||||||
|
msgid "Games"
|
||||||
|
msgstr "ఆటలు"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:53 data/gtk/window.blp:191 data/gtk/window.blp:550
|
||||||
|
msgid "Add Game"
|
||||||
|
msgstr "గేమ్ జోడించండి"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:58 data/gtk/preferences.blp:113
|
||||||
|
#: data/gtk/window.blp:27 data/gtk/window.blp:554
|
||||||
|
msgid "Import"
|
||||||
|
msgstr "దిగుమతి"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:63
|
||||||
|
msgid "Show Hidden Games"
|
||||||
|
msgstr "హిడెన్ గేమ్లను చూపించు"
|
||||||
|
|
||||||
|
#: data/gtk/help-overlay.blp:68
|
||||||
|
msgid "Remove Game"
|
||||||
|
msgstr "గేమ్ని తీసివేయండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:117
|
||||||
|
#: data/gtk/preferences.blp:415
|
||||||
|
msgid "Behavior"
|
||||||
|
msgstr "ప్రవర్తన"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:16
|
||||||
|
msgid "Exit After Launching Games"
|
||||||
|
msgstr "గేమ్లను ప్రారంభించిన తర్వాత నిష్క్రమించండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:20
|
||||||
|
msgid "Cover Image Launches Game"
|
||||||
|
msgstr "కవర్ ఇమేజ్ గేమ్ లాంచ్"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:21
|
||||||
|
msgid "Swaps the behavior of the cover image and the play button"
|
||||||
|
msgstr "కవర్ ఇమేజ్ మరియు ప్లే బటన్ యొక్క ప్రవర్తనను మారుస్తుంది"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:26 cartridges/details_dialog.py:82
|
||||||
|
msgid "Images"
|
||||||
|
msgstr "చిత్రాలు"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:29
|
||||||
|
msgid "High Quality Images"
|
||||||
|
msgstr "అధిక నాణ్యత చిత్రాలు"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:30
|
||||||
|
msgid "Save game covers losslessly at the cost of storage"
|
||||||
|
msgstr "నిల్వ ఖర్చుతో గేమ్ కవర్లను నష్టపోకుండా సేవ్ చేయండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:35
|
||||||
|
msgid "Danger Zone"
|
||||||
|
msgstr "డేంజర్ జోన్"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:48
|
||||||
|
msgid "Remove All Games"
|
||||||
|
msgstr "అన్ని ఆటలను తీసివేయండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:120
|
||||||
|
msgid "Remove Uninstalled Games"
|
||||||
|
msgstr "అన్ఇన్స్టాల్ చేసిన గేమ్లను తీసివేయండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:125
|
||||||
|
msgid "Sources"
|
||||||
|
msgstr "మూలాలు"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:128 cartridges/importer/steam_source.py:114
|
||||||
|
msgid "Steam"
|
||||||
|
msgstr "స్టిం"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:137 data/gtk/preferences.blp:164
|
||||||
|
#: data/gtk/preferences.blp:199 data/gtk/preferences.blp:242
|
||||||
|
#: data/gtk/preferences.blp:269 data/gtk/preferences.blp:296
|
||||||
|
#: data/gtk/preferences.blp:323
|
||||||
|
msgid "Install Location"
|
||||||
|
msgstr "స్థానాన్ని ఇన్స్టాల్ చేయండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:155 data/gtk/window.blp:564
|
||||||
|
#: cartridges/importer/lutris_source.py:96
|
||||||
|
msgid "Lutris"
|
||||||
|
msgstr "లుట్రిస్"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:181
|
||||||
|
msgid "Import Steam Games"
|
||||||
|
msgstr "స్టిం గేమ్లను దిగుమతి చేయండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:185
|
||||||
|
msgid "Import Flatpak Games"
|
||||||
|
msgstr "ఫ్లాట్పాక్ గేమ్లను దిగుమతి చేయండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:190 cartridges/importer/heroic_source.py:355
|
||||||
|
msgid "Heroic"
|
||||||
|
msgstr "హిరోఇక్"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:216
|
||||||
|
msgid "Import Epic Games"
|
||||||
|
msgstr "ఎపిక్ గేమ్లను దిగుమతి చేయండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:220
|
||||||
|
msgid "Import GOG Games"
|
||||||
|
msgstr "GOG గేమ్లను దిగుమతి చేయండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:224
|
||||||
|
msgid "Import Amazon Games"
|
||||||
|
msgstr "అమెజాన్ గేమ్లను దిగుమతి చేయండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:228
|
||||||
|
msgid "Import Sideloaded Games"
|
||||||
|
msgstr "సైడ్లోడెడ్ గేమ్లను దిగుమతి చేయండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:233 cartridges/importer/bottles_source.py:86
|
||||||
|
msgid "Bottles"
|
||||||
|
msgstr "బాటిల్స్"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:260 cartridges/importer/itch_source.py:81
|
||||||
|
msgid "itch"
|
||||||
|
msgstr "ఇచ్చ్"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:287 cartridges/importer/legendary_source.py:97
|
||||||
|
msgid "Legendary"
|
||||||
|
msgstr "లెజెండరీ"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:314 cartridges/importer/retroarch_source.py:142
|
||||||
|
msgid "RetroArch"
|
||||||
|
msgstr "RetroArch"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:341 cartridges/importer/flatpak_source.py:143
|
||||||
|
msgid "Flatpak"
|
||||||
|
msgstr "ఫ్లాట్పాక్"
|
||||||
|
|
||||||
|
#. The location of the system-wide data directory
|
||||||
|
#: data/gtk/preferences.blp:351
|
||||||
|
msgid "System Location"
|
||||||
|
msgstr "సిస్టమ్ స్థానం"
|
||||||
|
|
||||||
|
#. The location of the user-specific data directory
|
||||||
|
#: data/gtk/preferences.blp:369
|
||||||
|
msgid "User Location"
|
||||||
|
msgstr "వినియోగదారు స్థానం"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:386
|
||||||
|
msgid "Import Game Launchers"
|
||||||
|
msgstr "దిగుమతి గేమ్ లాంచర్లు"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:391 cartridges/importer/desktop_source.py:215
|
||||||
|
msgid "Desktop Entries"
|
||||||
|
msgstr "డెస్క్టాప్ ఎంట్రీలు"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:403 data/gtk/window.blp:562
|
||||||
|
msgid "SteamGridDB"
|
||||||
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:407
|
||||||
|
msgid "Authentication"
|
||||||
|
msgstr "ప్రమాణీకరణ"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:410
|
||||||
|
msgid "API Key"
|
||||||
|
msgstr "API కీ"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:418
|
||||||
|
msgid "Use SteamGridDB"
|
||||||
|
msgstr "SteamGridDBని ఉపయోగించండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:419
|
||||||
|
msgid "Download images when adding or importing games"
|
||||||
|
msgstr "గేమ్లను జోడించేటప్పుడు లేదా దిగుమతి చేస్తున్నప్పుడు చిత్రాలను డౌన్లోడ్ చేయండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:423
|
||||||
|
msgid "Prefer Over Official Images"
|
||||||
|
msgstr "అధికారిక చిత్రాల కంటే ప్రాధాన్యత ఇవ్వండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:427
|
||||||
|
msgid "Prefer Animated Images"
|
||||||
|
msgstr "యానిమేటెడ్ చిత్రాలకు ప్రాధాన్యత ఇవ్వండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:433
|
||||||
|
msgid "Update Covers"
|
||||||
|
msgstr "కవర్లను నవీకరించండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:434
|
||||||
|
msgid "Fetch covers for games already in your library"
|
||||||
|
msgstr "ఇప్పటికే మీ లైబ్రరీలో ఉన్న గేమ్ల కోసం కవర్లను పొందండి"
|
||||||
|
|
||||||
|
#: data/gtk/preferences.blp:439
|
||||||
|
msgid "Update"
|
||||||
|
msgstr "నవీకరించు"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:6 data/gtk/window.blp:14
|
||||||
|
msgid "No Games Found"
|
||||||
|
msgstr "గేమ్లు ఏవీ కనుగొనబడలేదు"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:7 data/gtk/window.blp:15
|
||||||
|
msgid "Try a different search"
|
||||||
|
msgstr "వేరొక శోధనను ప్రయత్నించండి"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:21
|
||||||
|
msgid "No Games"
|
||||||
|
msgstr "ఆటలు లేవు"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:22
|
||||||
|
msgid "Use the + button to add games"
|
||||||
|
msgstr "గేమ్లను జోడించడానికి + బటన్ను ఉపయోగించండి"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:40
|
||||||
|
msgid "No Hidden Games"
|
||||||
|
msgstr "హిడెన్ గేమ్లు లేవు"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:41
|
||||||
|
msgid "Games you hide will appear here"
|
||||||
|
msgstr "మీరు దాచిన గేమ్లు ఇక్కడ కనిపిస్తాయి"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:76 data/gtk/window.blp:111 cartridges/main.py:228
|
||||||
|
msgid "All Games"
|
||||||
|
msgstr "అన్ని ఆటలు"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:136 cartridges/main.py:230
|
||||||
|
msgid "Added"
|
||||||
|
msgstr "చేర్చబడింది"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:156
|
||||||
|
msgid "Imported"
|
||||||
|
msgstr "దిగుమతి చేయబడింది"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:258
|
||||||
|
msgid "Hidden Games"
|
||||||
|
msgstr "దాచిన ఆటలు"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:367
|
||||||
|
msgid "Game Title"
|
||||||
|
msgstr "గేమ్ శీర్షిక"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:424
|
||||||
|
msgid "Play"
|
||||||
|
msgstr "ఆడండి"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:501
|
||||||
|
msgid "Sort"
|
||||||
|
msgstr "క్రమబద్ధీకరించు"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:504
|
||||||
|
msgid "A-Z"
|
||||||
|
msgstr "A-Z"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:510
|
||||||
|
msgid "Z-A"
|
||||||
|
msgstr "Z-A"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:516
|
||||||
|
msgid "Newest"
|
||||||
|
msgstr "సరికొత్త"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:522
|
||||||
|
msgid "Oldest"
|
||||||
|
msgstr "అతి పురాతనమైనది"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:528
|
||||||
|
msgid "Last Played"
|
||||||
|
msgstr "చివరిగా ఆడినది"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:535
|
||||||
|
msgid "Show Hidden"
|
||||||
|
msgstr "దాచిన చూపు"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:544
|
||||||
|
msgid "About Cartridges"
|
||||||
|
msgstr "గుళికల గురించి"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:561
|
||||||
|
msgid "IGDB"
|
||||||
|
msgstr "IGDB"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:563
|
||||||
|
msgid "ProtonDB"
|
||||||
|
msgstr "ProtonDB"
|
||||||
|
|
||||||
|
#: data/gtk/window.blp:565
|
||||||
|
msgid "HowLongToBeat"
|
||||||
|
msgstr "HowLongToBeat"
|
||||||
|
|
||||||
|
#. The variable is the title of the game
|
||||||
|
#: cartridges/main.py:205 cartridges/game.py:125
|
||||||
|
msgid "{} launched"
|
||||||
|
msgstr "{} ప్రారంభించబడింది"
|
||||||
|
|
||||||
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
|
#: cartridges/main.py:270
|
||||||
|
msgid "translator_credits"
|
||||||
|
msgstr "Aryan Karamtoth"
|
||||||
|
|
||||||
|
#. The variable is the date when the game was added
|
||||||
|
#: cartridges/window.py:373
|
||||||
|
msgid "Added: {}"
|
||||||
|
msgstr "జోడించబడింది: {}"
|
||||||
|
|
||||||
|
#: cartridges/window.py:376
|
||||||
|
msgid "Never"
|
||||||
|
msgstr "ఎప్పుడూ"
|
||||||
|
|
||||||
|
#. The variable is the date when the game was last played
|
||||||
|
#: cartridges/window.py:380
|
||||||
|
msgid "Last played: {}"
|
||||||
|
msgstr "చివరిగా ఆడినది: {}"
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:73
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr "దరఖాస్తు చేసుకోండి"
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:79
|
||||||
|
msgid "Add New Game"
|
||||||
|
msgstr "కొత్త గేమ్ని జోడించండి"
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:80
|
||||||
|
msgid "Add"
|
||||||
|
msgstr "జోడించు"
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:90
|
||||||
|
msgid "Executables"
|
||||||
|
msgstr "ఎక్జిక్యూటబుల్స్"
|
||||||
|
|
||||||
|
#. Translate this string as you would translate "file"
|
||||||
|
#: cartridges/details_dialog.py:105
|
||||||
|
msgid "file.txt"
|
||||||
|
msgstr "file.txt"
|
||||||
|
|
||||||
|
#. As in software
|
||||||
|
#: cartridges/details_dialog.py:107
|
||||||
|
msgid "program"
|
||||||
|
msgstr "ప్రోగ్రామ్"
|
||||||
|
|
||||||
|
#. Translate this string as you would translate "path to {}"
|
||||||
|
#: cartridges/details_dialog.py:112 cartridges/details_dialog.py:114
|
||||||
|
msgid "C:\\path\\to\\{}"
|
||||||
|
msgstr "C:\\path\\to\\{}"
|
||||||
|
|
||||||
|
#. Translate this string as you would translate "path to {}"
|
||||||
|
#: cartridges/details_dialog.py:118 cartridges/details_dialog.py:120
|
||||||
|
msgid "/path/to/{}"
|
||||||
|
msgstr "/path/to/{}"
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:125
|
||||||
|
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 ""
|
||||||
|
"ఎక్జిక్యూటబుల్ \"{}\"ని ప్రారంభించడానికి, ఆదేశాన్ని ఉపయోగించండి:\n"
|
||||||
|
"\n"
|
||||||
|
"<tt>\"{}\"</tt>\n"
|
||||||
|
"\n"
|
||||||
|
"డిఫాల్ట్ అప్లికేషన్తో \"{}\" ఫైల్ని తెరవడానికి, ఉపయోగించండి:\n"
|
||||||
|
"\n"
|
||||||
|
"<tt>{} \"{}\"</tt>\n"
|
||||||
|
"\n"
|
||||||
|
"మార్గం ఖాళీలను కలిగి ఉన్నట్లయితే, దానిని డబుల్ కోట్లలో చుట్టేలా చూసుకోండి!"
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:167 cartridges/details_dialog.py:173
|
||||||
|
msgid "Couldn't Add Game"
|
||||||
|
msgstr "గేమ్ని జోడించడం సాధ్యపడలేదు"
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:167 cartridges/details_dialog.py:209
|
||||||
|
msgid "Game title cannot be empty."
|
||||||
|
msgstr "గేమ్ శీర్షిక ఖాళీగా ఉండకూడదు."
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:173 cartridges/details_dialog.py:217
|
||||||
|
msgid "Executable cannot be empty."
|
||||||
|
msgstr "ఎక్జిక్యూటబుల్ ఖాళీగా ఉండకూడదు."
|
||||||
|
|
||||||
|
#: cartridges/details_dialog.py:208 cartridges/details_dialog.py:216
|
||||||
|
msgid "Couldn't Apply Preferences"
|
||||||
|
msgstr "ప్రాధాన్యతలను వర్తింపజేయడం సాధ్యపడలేదు"
|
||||||
|
|
||||||
|
#. The variable is the title of the game
|
||||||
|
#: cartridges/game.py:139
|
||||||
|
msgid "{} hidden"
|
||||||
|
msgstr "{} దాచబడింది"
|
||||||
|
|
||||||
|
#: cartridges/game.py:139
|
||||||
|
msgid "{} unhidden"
|
||||||
|
msgstr "{} దాచబడలేదు"
|
||||||
|
|
||||||
|
#. The variable is the title of the game
|
||||||
|
#. The variable is the number of games removed
|
||||||
|
#: cartridges/game.py:153 cartridges/importer/importer.py:391
|
||||||
|
msgid "{} removed"
|
||||||
|
msgstr "{} తీసివేయబడింది"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:133
|
||||||
|
msgid "All games removed"
|
||||||
|
msgstr "అన్ని గేమ్లు తీసివేయబడ్డాయి"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:181
|
||||||
|
msgid ""
|
||||||
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
|
msgstr "SteamGridDBని ఉపయోగించడానికి API కీ అవసరం. మీరు {}ఇక్కడ{} ఒకదాన్ని రూపొందించవచ్చు."
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:196
|
||||||
|
msgid "Downloading covers…"
|
||||||
|
msgstr "కవర్లను డౌన్లోడ్ చేస్తోంది…"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:215
|
||||||
|
msgid "Covers updated"
|
||||||
|
msgstr "కవర్లు నవీకరించబడ్డాయి"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:360
|
||||||
|
msgid "Installation Not Found"
|
||||||
|
msgstr "ఇన్స్టాలేషన్ కనుగొనబడలేదు"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:361
|
||||||
|
msgid "Select a valid directory"
|
||||||
|
msgstr "చెల్లుబాటు అయ్యే డైరెక్టరీని ఎంచుకోండి"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:397 cartridges/importer/importer.py:318
|
||||||
|
msgid "Warning"
|
||||||
|
msgstr "హెచ్చరిక"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:431
|
||||||
|
msgid "Invalid Directory"
|
||||||
|
msgstr "చెల్లని డైరెక్టరీ"
|
||||||
|
|
||||||
|
#: cartridges/preferences.py:437
|
||||||
|
msgid "Set Location"
|
||||||
|
msgstr "స్థానాన్ని సెట్ చేయండి"
|
||||||
|
|
||||||
|
#: cartridges/utils/create_dialog.py:33 cartridges/importer/importer.py:319
|
||||||
|
msgid "Dismiss"
|
||||||
|
msgstr "తొలగించు"
|
||||||
|
|
||||||
|
#: cartridges/importer/importer.py:145
|
||||||
|
msgid "Importing Games…"
|
||||||
|
msgstr "గేమ్లను దిగుమతి చేస్తోంది..."
|
||||||
|
|
||||||
|
#: cartridges/importer/importer.py:338
|
||||||
|
msgid "The following errors occured during import:"
|
||||||
|
msgstr "దిగుమతి సమయంలో క్రింది లోపాలు సంభవించాయి:"
|
||||||
|
|
||||||
|
#: cartridges/importer/importer.py:367
|
||||||
|
msgid "No new games found"
|
||||||
|
msgstr "కొత్త గేమ్లు ఏవీ కనుగొనబడలేదు"
|
||||||
|
|
||||||
|
#: cartridges/importer/importer.py:379
|
||||||
|
msgid "1 game imported"
|
||||||
|
msgstr "1 గేమ్ దిగుమతి చేయబడింది"
|
||||||
|
|
||||||
|
#. The variable is the number of games
|
||||||
|
#: cartridges/importer/importer.py:383
|
||||||
|
msgid "{} games imported"
|
||||||
|
msgstr "{} గేమ్లు దిగుమతి చేయబడ్డాయి"
|
||||||
|
|
||||||
|
#. A single game removed
|
||||||
|
#: cartridges/importer/importer.py:387
|
||||||
|
msgid "1 removed"
|
||||||
|
msgstr "1 తీసివేయబడింది"
|
||||||
|
|
||||||
|
#. The variable is the name of the source
|
||||||
|
#: cartridges/importer/location.py:34
|
||||||
|
msgid "Select the {} cache directory."
|
||||||
|
msgstr "{} కాష్ డైరెక్టరీని ఎంచుకోండి."
|
||||||
|
|
||||||
|
#. The variable is the name of the source
|
||||||
|
#: cartridges/importer/location.py:36
|
||||||
|
msgid "Select the {} configuration directory."
|
||||||
|
msgstr "{} కాన్ఫిగరేషన్ డైరెక్టరీని ఎంచుకోండి."
|
||||||
|
|
||||||
|
#. The variable is the name of the source
|
||||||
|
#: cartridges/importer/location.py:38
|
||||||
|
msgid "Select the {} data directory."
|
||||||
|
msgstr "{} డేటా డైరెక్టరీని ఎంచుకోండి."
|
||||||
|
|
||||||
|
#: cartridges/importer/retroarch_source.py:129
|
||||||
|
msgid "No RetroArch Core Selected"
|
||||||
|
msgstr "రెట్రోఆర్చ్ కోర్ ఎంచుకోబడలేదు"
|
||||||
|
|
||||||
|
#. The variable is a newline separated list of playlists
|
||||||
|
#: cartridges/importer/retroarch_source.py:131
|
||||||
|
msgid "The following playlists have no default core:"
|
||||||
|
msgstr "కింది ప్లేజాబితాలకు డిఫాల్ట్ కోర్ లేదు:"
|
||||||
|
|
||||||
|
#: cartridges/importer/retroarch_source.py:133
|
||||||
|
msgid "Games with no core selected were not imported"
|
||||||
|
msgstr "ఎంపిక చేయబడిన కోర్ లేని గేమ్లు దిగుమతి చేయబడలేదు"
|
||||||
|
|
||||||
|
#: cartridges/store/managers/sgdb_manager.py:46
|
||||||
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
|
msgstr "SteamGridDB ని ప్రమాణీకరించడం సాధ్యపడలేదు"
|
||||||
|
|
||||||
|
#: cartridges/store/managers/sgdb_manager.py:47
|
||||||
|
msgid "Verify your API key in preferences"
|
||||||
|
msgstr "ప్రాధాన్యతలలో మీ API కీని ధృవీకరించండి"
|
||||||
4
pyrightconfig.json
Normal file
4
pyrightconfig.json
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"reportRedeclaration": "none",
|
||||||
|
"reportMissingModuleSource": "none"
|
||||||
|
}
|
||||||
@@ -7,19 +7,19 @@ configure_file(
|
|||||||
input: 'cartridges-search-provider.in',
|
input: 'cartridges-search-provider.in',
|
||||||
output: 'cartridges-search-provider',
|
output: 'cartridges-search-provider',
|
||||||
configuration: conf,
|
configuration: conf,
|
||||||
install_dir: libexecdir
|
install_dir: libexecdir,
|
||||||
)
|
)
|
||||||
|
|
||||||
configure_file(
|
configure_file(
|
||||||
input: 'page.kramo.Cartridges.SearchProvider.service.in',
|
input: 'page.kramo.Cartridges.SearchProvider.service.in',
|
||||||
output: app_id + '.SearchProvider.service',
|
output: app_id + '.SearchProvider.service',
|
||||||
configuration: conf,
|
configuration: conf,
|
||||||
install_dir: service_dir
|
install_dir: service_dir,
|
||||||
)
|
)
|
||||||
|
|
||||||
configure_file(
|
configure_file(
|
||||||
input: 'page.kramo.Cartridges.SearchProvider.ini',
|
input: 'page.kramo.Cartridges.SearchProvider.ini',
|
||||||
output: app_id + '.SearchProvider.ini',
|
output: app_id + '.SearchProvider.ini',
|
||||||
configuration: conf,
|
configuration: conf,
|
||||||
install_dir: serarch_provider_dir
|
install_dir: serarch_provider_dir,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[wrap-git]
|
[wrap-git]
|
||||||
directory = blueprint-compiler
|
directory = blueprint-compiler
|
||||||
url = https://gitlab.gnome.org/jwestman/blueprint-compiler.git
|
url = https://gitlab.gnome.org/jwestman/blueprint-compiler.git
|
||||||
revision = v0.12.0
|
revision = v0.14.0
|
||||||
depth = 1
|
depth = 1
|
||||||
|
|
||||||
[provide]
|
[provide]
|
||||||
|
|||||||
Reference in New Issue
Block a user