Compare commits

..

17 Commits

Author SHA1 Message Date
kramo
882ed55cc6 Update update description 2023-06-19 19:58:10 +02:00
Weblate (bot)
7bbb9e564d Translations update from Hosted Weblate (#106)
* Translated using Weblate (Spanish)

Currently translated at 100.0% (126 of 126 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/es/
Translation: Cartridges/Cartridges

* Translated using Weblate (Portuguese)

Currently translated at 100.0% (126 of 126 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: João Alves <joao.2003.couto@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/pt/
Translation: Cartridges/Cartridges

* Translated using Weblate (Russian)

Currently translated at 100.0% (126 of 126 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Сергей <asvmail.as@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ru/
Translation: Cartridges/Cartridges

* Translated using Weblate (Dutch)

Currently translated at 100.0% (126 of 126 strings)

Translated using Weblate (Dutch)

Currently translated at 95.2% (120 of 126 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Philip Goto <philip.goto@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/nl/
Translation: Cartridges/Cartridges

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (126 of 126 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Вова Смірнов <vovasmirnon5895@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/uk/
Translation: Cartridges/Cartridges

* Translated using Weblate (Greek)

Currently translated at 100.0% (126 of 126 strings)

Added translation using Weblate (Greek)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: yiannis ioannides <sub@wai.ai>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/el/
Translation: Cartridges/Cartridges

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (126 of 126 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Vinícius Gama Santos <vinny.stalck@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/pt_BR/
Translation: Cartridges/Cartridges

* Translated using Weblate (Polish)

Currently translated at 96.0% (121 of 126 strings)

Co-authored-by: Kshyso <Kshysio@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/pl/
Translation: Cartridges/Cartridges

* Translated using Weblate (Tamil)

Currently translated at 100.0% (126 of 126 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ta/
Translation: Cartridges/Cartridges

* Translated using Weblate (Swedish)

Currently translated at 100.0% (126 of 126 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: micke <micke@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/sv/
Translation: Cartridges/Cartridges

* Translated using Weblate (French)

Currently translated at 100.0% (126 of 126 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: rene-coty <irenee.thirion@e.email>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/fr/
Translation: Cartridges/Cartridges

* Update translation files

Updated by "Squash Git commits" hook in Weblate.

Translation: Cartridges/Cartridges
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/

---------

Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: João Alves <joao.2003.couto@gmail.com>
Co-authored-by: Сергей <asvmail.as@gmail.com>
Co-authored-by: Philip Goto <philip.goto@gmail.com>
Co-authored-by: Вова Смірнов <vovasmirnon5895@gmail.com>
Co-authored-by: yiannis ioannides <sub@wai.ai>
Co-authored-by: Vinícius Gama Santos <vinny.stalck@protonmail.com>
Co-authored-by: Kshyso <Kshysio@protonmail.com>
Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>
Co-authored-by: micke <micke@users.noreply.hosted.weblate.org>
Co-authored-by: rene-coty <irenee.thirion@e.email>
2023-06-19 19:56:18 +02:00
kramo
ad7084410c v1.5.6 2023-06-19 19:54:59 +02:00
kramo
ea0ecf4fb4 Fix bottles import if no thumbnail - fixes #113 2023-06-19 19:52:51 +02:00
kramo
893b290a1e v1.5.5 2023-06-10 18:48:39 +02:00
kramo
49769b7083 Fix import hanging if custom Bottles location 2023-06-10 18:45:56 +02:00
kramo
5fadaf8537 Add _ to Python builtins 2023-06-10 18:24:59 +02:00
kramo
e804f8192e Update bug_report.md 2023-06-02 17:40:28 +02:00
kramo
1311c53c3e Import demos from Steam - closes #108 2023-05-30 20:24:41 +02:00
kramo
6f69344a16 v1.5.4 2023-05-27 17:54:43 +02:00
kramo
63951d76ac Fix custom path check logic 2023-05-27 17:53:08 +02:00
kramo
c045ad1f53 Fix prefix formatting 2023-05-27 17:01:18 +02:00
kramo
8a1e00883c Fix gresource prefix 2023-05-27 16:21:31 +02:00
kramo
620a094ff0 v1.5.3 2023-05-27 16:06:43 +02:00
kramo
7b7232d741 Fix flatpak manifest path 2023-05-27 15:14:14 +02:00
kramo
4c1af9245f Update build configuration 2023-05-27 15:11:03 +02:00
kramo
d05a03dee7 Fix custom install locations check logic 2023-05-27 14:03:09 +02:00
46 changed files with 994 additions and 310 deletions

View File

@@ -26,6 +26,7 @@ If applicable, add screenshots to help explain your problem.
**System (please complete the following information):** **System (please complete the following information):**
- OS: [e.g. Fedora Linux] - OS: [e.g. Fedora Linux]
- Installation method [e.g. Flatpak] - Installation method [e.g. Flatpak]
- Cartridges version [e.g. 1.5.4]
**Additional context** **Additional context**
Add any other context about the problem here. Add any other context about the problem here.

View File

@@ -14,6 +14,6 @@ jobs:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6 - uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with: with:
bundle: hu.kramo.Cartridges.flatpak bundle: hu.kramo.Cartridges.Devel.flatpak
manifest-path: hu.kramo.Cartridges.json manifest-path: flatpak/hu.kramo.Cartridges.Devel.json
cache-key: flatpak-builder-${{ github.sha }} cache-key: flatpak-builder-${{ github.sha }}

View File

@@ -24,9 +24,9 @@ jobs:
pacman --noconfirm -Rs mingw-w64-ucrt-x86_64-desktop-file-utils mingw-w64-ucrt-x86_64-meson git pacman --noconfirm -Rs mingw-w64-ucrt-x86_64-desktop-file-utils mingw-w64-ucrt-x86_64-meson git
find /ucrt64/share/locale/ -type f ! -name "*cartridges.mo" -delete find /ucrt64/share/locale/ -type f ! -name "*cartridges.mo" -delete
- name: "Inno Setup" - name: "Inno Setup"
run: iscc ".\.windows\Cartridges.iss" run: iscc ".\windows\Cartridges.iss"
- name: "Upload Artifact" - name: "Upload Artifact"
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: "Installer" name: "Installer"
path: ".windows/Output/Cartridges Setup.exe" path: "windows/Output/Cartridges Setup.exe"

View File

@@ -53,15 +53,12 @@ For updates and questions, join our [Discord server][discord-url]!
## Linux ## Linux
### Flathub (Recommended) ### Flathub
The app is available on Flathub.
<a href=https://flathub.org/apps/hu.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/hu.kramo.Cartridges><img width='240' alt='Download on Flathub' src='https://dl.flathub.org/assets/badges/flathub-badge-en.png'/></a>
### From Releases
1. Download the latest release from [Releases](https://github.com/kra-mo/cartridges/releases).
2. Install the downloaded file via GNOME Software or `flatpak install hu.kramo.Cartridges.flatpak`.
## Windows ## Windows
### From Releases ### From Releases

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<gresources> <gresources>
<gresource prefix="/hu/kramo/Cartridges"> <gresource prefix="@PREFIX@">
<file preprocess="xml-stripblanks">gtk/window.ui</file> <file preprocess="xml-stripblanks">gtk/window.ui</file>
<file preprocess="xml-stripblanks">gtk/help-overlay.ui</file> <file preprocess="xml-stripblanks">gtk/help-overlay.ui</file>
<file preprocess="xml-stripblanks">gtk/game.ui</file> <file preprocess="xml-stripblanks">gtk/game.ui</file>

View File

@@ -18,7 +18,6 @@ Adw.StatusPage hidden_notice_no_results {
} }
Adw.StatusPage notice_empty { Adw.StatusPage notice_empty {
icon-name: "hu.kramo.Cartridges-symbolic";
title: _("No Games"); title: _("No Games");
description: _("Use the + button to add games."); description: _("Use the + button to add games.");
vexpand: true; vexpand: true;

View File

@@ -3,7 +3,7 @@ Name=Cartridges
GenericName=Game Launcher GenericName=Game Launcher
Comment=Launch all your games Comment=Launch all your games
Exec=cartridges Exec=cartridges
Icon=hu.kramo.Cartridges Icon=@APP_ID@
Terminal=false Terminal=false
Type=Application Type=Application
Categories=GNOME;GTK;Game; Categories=GNOME;GTK;Game;

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<schemalist gettext-domain="cartridges"> <schemalist gettext-domain="cartridges">
<schema id="hu.kramo.Cartridges" path="/hu/kramo/Cartridges/"> <schema id="@APP_ID@" path="@PREFIX@/">
<key name="exit-after-launch" type="b"> <key name="exit-after-launch" type="b">
<default>false</default> <default>false</default>
</key> </key>
@@ -68,7 +68,7 @@
<default>false</default> <default>false</default>
</key> </key>
</schema> </schema>
<schema id="hu.kramo.Cartridges.State" path="/hu/kramo/Cartridges/State/"> <schema id="@APP_ID@.State" path="@PREFIX@/State/">
<key name="width" type="i"> <key name="width" type="i">
<default>1110</default> <default>1110</default>
</key> </key>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application"> <component type="desktop-application">
<id>hu.kramo.Cartridges.desktop</id> <id>@APP_ID@.desktop</id>
<metadata_license>CC0-1.0</metadata_license> <metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-or-later</project_license> <project_license>GPL-3.0-or-later</project_license>
<name>Cartridges</name> <name>Cartridges</name>
@@ -15,7 +15,7 @@
<url type="vcs-browser">https://github.com/kra-mo/cartridges</url> <url type="vcs-browser">https://github.com/kra-mo/cartridges</url>
<url type="contribute">https://github.com/kra-mo/cartridges/blob/main/CONTRIBUTING.md</url> <url type="contribute">https://github.com/kra-mo/cartridges/blob/main/CONTRIBUTING.md</url>
<developer_name translatable="no">kramo</developer_name> <developer_name translatable="no">kramo</developer_name>
<launchable type="desktop-id">hu.kramo.Cartridges.desktop</launchable> <launchable type="desktop-id">@APP_ID@.desktop</launchable>
<supports> <supports>
<control>pointing</control> <control>pointing</control>
<control>keyboard</control> <control>keyboard</control>
@@ -44,11 +44,10 @@
</screenshots> </screenshots>
<content_rating type="oars-1.1" /> <content_rating type="oars-1.1" />
<releases> <releases>
<release version="1.5.2" date="2023-05-27"> <release version="1.5.6" date="2023-06-19">
<description translatable="no"> <description translatable="no">
<ul> <ul>
<li>Fixes the app icon not displaying on the XFCE panel</li> <li>Fixes an issue with importing Bottles games without covers</li>
<li>Fixes a bug with the Steam API</li>
<li>Translations since 1.5</li> <li>Translations since 1.5</li>
</ul> </ul>
</description> </description>

View File

@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="9" x2="119" y1="115" y2="115">
<stop offset="0" stop-color="#613583"/>
<stop offset="0.05" stop-color="#9141ac"/>
<stop offset="0.22" stop-color="#613583"/>
<stop offset="0.78" stop-color="#613583"/>
<stop offset="0.95" stop-color="#9141ac"/>
<stop offset="1" stop-color="#613583"/>
</linearGradient>
<linearGradient id="b" gradientUnits="userSpaceOnUse" x1="45" x2="45" y1="50" y2="82">
<stop offset="0" stop-color="#bdd0d5"/>
<stop offset="1" stop-color="#305749"/>
</linearGradient>
<clipPath id="c">
<rect height="128" width="128"/>
</clipPath>
<clipPath id="d">
<rect height="128" width="128"/>
</clipPath>
<filter id="e" height="100%" width="100%" x="0%" y="0%">
<feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
</filter>
<mask id="f">
<g clip-path="url(#d)" filter="url(#e)">
<g clip-path="url(#c)">
<path d="m 111 29 h -94 c -4.417969 0 -8 3.582031 -8 8 v 70 c 0 4.417969 3.582031 8 8 8 h 94 c 4.417969 0 8 -3.582031 8 -8 v -70 c 0 -4.417969 -3.582031 -8 -8 -8 z m 0 0" fill="url(#a)"/>
<path d="m 111 29 h -94 c -4.417969 0 -8 3.679688 -8 8.222656 v 57.554688 c 0 4.539062 3.582031 8.222656 8 8.222656 h 94 c 4.417969 0 8 -3.679688 8 -8.222656 v -57.554688 c 0 -4.539062 -3.582031 -8.222656 -8 -8.222656 z m 0 0" fill="#c061cb"/>
<path d="m 84 42 h -40 c -2.210938 0 -4 1.789062 -4 4 v 40 c 0 2.210938 1.789062 4 4 4 h 40 c 2.210938 0 4 -1.789062 4 -4 v -40 c 0 -2.210938 -1.789062 -4 -4 -4 z m 0 0"/>
<path d="m 81 50 h -34 c -1.105469 0 -2 0.894531 -2 2 v 28 c 0 1.105469 0.894531 2 2 2 h 34 c 1.105469 0 2 -0.894531 2 -2 v -28 c 0 -1.105469 -0.894531 -2 -2 -2 z m 0 0" fill="url(#b)"/>
<path d="m 102 61 v -1 c 0 -2.761719 -2.238281 -5 -5 -5 s -5 2.238281 -5 5 v 1 c 0 2.761719 2.238281 5 5 5 s 5 -2.238281 5 -5 z m 12 -6 v -1 c 0 -2.761719 -2.238281 -5 -5 -5 s -5 2.238281 -5 5 v 1 c 0 2.761719 2.238281 5 5 5 s 5 -2.238281 5 -5 z m 0 0"/>
<path d="m 97 64 c 2.761719 0 5 -2.015625 5 -4.5 s -2.238281 -4.5 -5 -4.5 s -5 2.015625 -5 4.5 s 2.238281 4.5 5 4.5 z m 12 -6 c 2.761719 0 5 -2.015625 5 -4.5 s -2.238281 -4.5 -5 -4.5 s -5 2.015625 -5 4.5 s 2.238281 4.5 5 4.5 z m 0 0" fill="#3d3846"/>
<path d="m 29 56.5 c 0 -1.933594 -1.566406 -3.5 -3.5 -3.5 s -3.5 1.566406 -3.5 3.5 v 13 c 0 1.933594 1.566406 3.5 3.5 3.5 s 3.5 -1.566406 3.5 -3.5 z m 0 0"/>
<path d="m 33 58 h -15 c -1.65625 0 -3 1.34375 -3 3 v 2 c 0 1.65625 1.34375 3 3 3 h 15 c 1.65625 0 3 -1.34375 3 -3 v -2 c 0 -1.65625 -1.34375 -3 -3 -3 z m 0 0"/>
<path d="m 29 54.5 c 0 -1.933594 -1.566406 -3.5 -3.5 -3.5 s -3.5 1.566406 -3.5 3.5 v 13 c 0 1.933594 1.566406 3.5 3.5 3.5 s 3.5 -1.566406 3.5 -3.5 z m 0 0" fill="#3d3846"/>
<path d="m 33 58 h -15 c -1.65625 0 -3 1.34375 -3 3 s 1.34375 3 3 3 h 15 c 1.65625 0 3 -1.34375 3 -3 s -1.34375 -3 -3 -3 z m 0 0" fill="#3d3846"/>
<path d="m 71 109 c 0 -1.105469 0.894531 -2 2 -2 s 2 0.894531 2 2 s -0.894531 2 -2 2 s -2 -0.894531 -2 -2 z m 0 0"/>
<path d="m 71.0625 108.5 c 0.226562 0.882812 1.023438 1.503906 1.9375 1.503906 s 1.710938 -0.621094 1.9375 -1.503906 c 0.195312 0.757812 -0.066406 1.558594 -0.671875 2.050781 c -0.605469 0.492188 -1.445313 0.585938 -2.144531 0.242188 c -0.855469 -0.414063 -1.296875 -1.375 -1.058594 -2.292969 z m 0 0" fill="#9141ac"/>
<path d="m 66 107 h -10 c -1.105469 0 -2 0.894531 -2 2 s 0.894531 2 2 2 h 10 c 1.105469 0 2 -0.894531 2 -2 s -0.894531 -2 -2 -2 z m 0 0"/>
<path d="m 54.0625 108.5 c -0.152344 0.597656 -0.023438 1.234375 0.355469 1.726562 c 0.378906 0.488282 0.964843 0.773438 1.582031 0.773438 h 10 c 0.617188 0 1.203125 -0.285156 1.582031 -0.773438 c 0.378907 -0.492187 0.511719 -1.128906 0.355469 -1.726562 c -0.226562 0.882812 -1.023438 1.5 -1.9375 1.5 h -10 c -0.914062 0 -1.710938 -0.617188 -1.9375 -1.5 z m 0 0" fill="#9141ac"/>
<path d="m 110 74 h -14 c -0.550781 0 -1 0.449219 -1 1 s 0.449219 1 1 1 h 14 c 0.550781 0 1 -0.449219 1 -1 s -0.449219 -1 -1 -1 z m 0 5 h -14 c -0.550781 0 -1 0.449219 -1 1 s 0.449219 1 1 1 h 14 c 0.550781 0 1 -0.449219 1 -1 s -0.449219 -1 -1 -1 z m 0 5 h -14 c -0.550781 0 -1 0.449219 -1 1 s 0.449219 1 1 1 h 14 c 0.550781 0 1 -0.449219 1 -1 s -0.449219 -1 -1 -1 z m 0 0" fill="#613583"/>
<path d="m 21.5 79 h -3 c -1.378906 0 -2.5 1.121094 -2.5 2.5 s 1.121094 2.5 2.5 2.5 h 3 c 1.378906 0 2.5 -1.121094 2.5 -2.5 s -1.121094 -2.5 -2.5 -2.5 z m 11 0 h -3 c -1.378906 0 -2.5 1.121094 -2.5 2.5 s 1.121094 2.5 2.5 2.5 h 3 c 1.378906 0 2.5 -1.121094 2.5 -2.5 s -1.121094 -2.5 -2.5 -2.5 z m 0 0"/>
<path d="m 22 79 h -4 c -1.105469 0 -2 0.894531 -2 2 s 0.894531 2 2 2 h 4 c 1.105469 0 2 -0.894531 2 -2 s -0.894531 -2 -2 -2 z m 11 0 h -4 c -1.105469 0 -2 0.894531 -2 2 s 0.894531 2 2 2 h 4 c 1.105469 0 2 -0.894531 2 -2 s -0.894531 -2 -2 -2 z m 0 0" fill="#3d3846"/>
</g>
</g>
</mask>
<mask id="g">
<g filter="url(#e)">
<rect fill-opacity="0.8" height="128" width="128"/>
</g>
</mask>
<linearGradient id="h" gradientTransform="matrix(0 0.37 -0.98462 0 295.38501 -30.360001)" gradientUnits="userSpaceOnUse" x1="300" x2="428" y1="235" y2="235">
<stop offset="0" stop-color="#f9f06b"/>
<stop offset="1" stop-color="#f5c211"/>
</linearGradient>
<clipPath id="i">
<rect height="128" width="128"/>
</clipPath>
<clipPath id="j">
<rect height="128" width="128"/>
</clipPath>
<path d="m 111 29 h -94 c -4.417969 0 -8 3.582031 -8 8 v 70 c 0 4.417969 3.582031 8 8 8 h 94 c 4.417969 0 8 -3.582031 8 -8 v -70 c 0 -4.417969 -3.582031 -8 -8 -8 z m 0 0" fill="url(#a)"/>
<path d="m 111 29 h -94 c -4.417969 0 -8 3.679688 -8 8.222656 v 57.554688 c 0 4.539062 3.582031 8.222656 8 8.222656 h 94 c 4.417969 0 8 -3.679688 8 -8.222656 v -57.554688 c 0 -4.539062 -3.582031 -8.222656 -8 -8.222656 z m 0 0" fill="#c061cb"/>
<path d="m 84 42 h -40 c -2.210938 0 -4 1.789062 -4 4 v 40 c 0 2.210938 1.789062 4 4 4 h 40 c 2.210938 0 4 -1.789062 4 -4 v -40 c 0 -2.210938 -1.789062 -4 -4 -4 z m 0 0"/>
<path d="m 81 50 h -34 c -1.105469 0 -2 0.894531 -2 2 v 28 c 0 1.105469 0.894531 2 2 2 h 34 c 1.105469 0 2 -0.894531 2 -2 v -28 c 0 -1.105469 -0.894531 -2 -2 -2 z m 0 0" fill="url(#b)"/>
<path d="m 102 61 v -1 c 0 -2.761719 -2.238281 -5 -5 -5 s -5 2.238281 -5 5 v 1 c 0 2.761719 2.238281 5 5 5 s 5 -2.238281 5 -5 z m 12 -6 v -1 c 0 -2.761719 -2.238281 -5 -5 -5 s -5 2.238281 -5 5 v 1 c 0 2.761719 2.238281 5 5 5 s 5 -2.238281 5 -5 z m 0 0"/>
<path d="m 97 64 c 2.761719 0 5 -2.015625 5 -4.5 s -2.238281 -4.5 -5 -4.5 s -5 2.015625 -5 4.5 s 2.238281 4.5 5 4.5 z m 12 -6 c 2.761719 0 5 -2.015625 5 -4.5 s -2.238281 -4.5 -5 -4.5 s -5 2.015625 -5 4.5 s 2.238281 4.5 5 4.5 z m 0 0" fill="#3d3846"/>
<path d="m 29 56.5 c 0 -1.933594 -1.566406 -3.5 -3.5 -3.5 s -3.5 1.566406 -3.5 3.5 v 13 c 0 1.933594 1.566406 3.5 3.5 3.5 s 3.5 -1.566406 3.5 -3.5 z m 0 0"/>
<path d="m 33 58 h -15 c -1.65625 0 -3 1.34375 -3 3 v 2 c 0 1.65625 1.34375 3 3 3 h 15 c 1.65625 0 3 -1.34375 3 -3 v -2 c 0 -1.65625 -1.34375 -3 -3 -3 z m 0 0"/>
<path d="m 29 54.5 c 0 -1.933594 -1.566406 -3.5 -3.5 -3.5 s -3.5 1.566406 -3.5 3.5 v 13 c 0 1.933594 1.566406 3.5 3.5 3.5 s 3.5 -1.566406 3.5 -3.5 z m 0 0" fill="#3d3846"/>
<path d="m 33 58 h -15 c -1.65625 0 -3 1.34375 -3 3 s 1.34375 3 3 3 h 15 c 1.65625 0 3 -1.34375 3 -3 s -1.34375 -3 -3 -3 z m 0 0" fill="#3d3846"/>
<path d="m 71 109 c 0 -1.105469 0.894531 -2 2 -2 s 2 0.894531 2 2 s -0.894531 2 -2 2 s -2 -0.894531 -2 -2 z m 0 0"/>
<path d="m 71.0625 108.5 c 0.226562 0.882812 1.023438 1.503906 1.9375 1.503906 s 1.710938 -0.621094 1.9375 -1.503906 c 0.195312 0.757812 -0.066406 1.558594 -0.671875 2.050781 c -0.605469 0.492188 -1.445313 0.585938 -2.144531 0.242188 c -0.855469 -0.414063 -1.296875 -1.375 -1.058594 -2.292969 z m 0 0" fill="#9141ac"/>
<path d="m 66 107 h -10 c -1.105469 0 -2 0.894531 -2 2 s 0.894531 2 2 2 h 10 c 1.105469 0 2 -0.894531 2 -2 s -0.894531 -2 -2 -2 z m 0 0"/>
<path d="m 54.0625 108.5 c -0.152344 0.597656 -0.023438 1.234375 0.355469 1.726562 c 0.378906 0.488282 0.964843 0.773438 1.582031 0.773438 h 10 c 0.617188 0 1.203125 -0.285156 1.582031 -0.773438 c 0.378907 -0.492187 0.511719 -1.128906 0.355469 -1.726562 c -0.226562 0.882812 -1.023438 1.5 -1.9375 1.5 h -10 c -0.914062 0 -1.710938 -0.617188 -1.9375 -1.5 z m 0 0" fill="#9141ac"/>
<path d="m 110 74 h -14 c -0.550781 0 -1 0.449219 -1 1 s 0.449219 1 1 1 h 14 c 0.550781 0 1 -0.449219 1 -1 s -0.449219 -1 -1 -1 z m 0 5 h -14 c -0.550781 0 -1 0.449219 -1 1 s 0.449219 1 1 1 h 14 c 0.550781 0 1 -0.449219 1 -1 s -0.449219 -1 -1 -1 z m 0 5 h -14 c -0.550781 0 -1 0.449219 -1 1 s 0.449219 1 1 1 h 14 c 0.550781 0 1 -0.449219 1 -1 s -0.449219 -1 -1 -1 z m 0 0" fill="#613583"/>
<path d="m 21.5 79 h -3 c -1.378906 0 -2.5 1.121094 -2.5 2.5 s 1.121094 2.5 2.5 2.5 h 3 c 1.378906 0 2.5 -1.121094 2.5 -2.5 s -1.121094 -2.5 -2.5 -2.5 z m 11 0 h -3 c -1.378906 0 -2.5 1.121094 -2.5 2.5 s 1.121094 2.5 2.5 2.5 h 3 c 1.378906 0 2.5 -1.121094 2.5 -2.5 s -1.121094 -2.5 -2.5 -2.5 z m 0 0"/>
<path d="m 22 79 h -4 c -1.105469 0 -2 0.894531 -2 2 s 0.894531 2 2 2 h 4 c 1.105469 0 2 -0.894531 2 -2 s -0.894531 -2 -2 -2 z m 11 0 h -4 c -1.105469 0 -2 0.894531 -2 2 s 0.894531 2 2 2 h 4 c 1.105469 0 2 -0.894531 2 -2 s -0.894531 -2 -2 -2 z m 0 0" fill="#3d3846"/>
<g clip-path="url(#j)" mask="url(#f)">
<g clip-path="url(#i)" mask="url(#g)">
<path d="m 128 80.640625 v 47.359375 h -128 v -47.359375 z m 0 0" fill="url(#h)"/>
<path d="m 13.308594 80.640625 l 47.355468 47.359375 h 21.214844 l -47.359375 -47.359375 z m 42.421875 0 l 47.363281 47.359375 h 21.214844 l -47.363282 -47.359375 z m 42.429687 0 l 29.839844 29.839844 v -21.210938 l -8.628906 -8.628906 z m -98.160156 7.90625 v 21.214844 l 18.238281 18.238281 h 21.214844 z m 0 0"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 3C1.89543 3 1 3.89543 1 5V11C1 12.1046 1.89543 13 3 13H13C14.1046 13 15 12.1046 15 11V5C15 3.89543 14.1046 3 13 3H3ZM6 5C5.44772 5 5 5.44772 5 6V10C5 10.5523 5.44772 11 6 11H10C10.5523 11 11 10.5523 11 10V6C11 5.44772 10.5523 5 10 5H6ZM12 8C12 7.44772 12.4477 7 13 7C13.5523 7 14 7.44772 14 8C14 8.55228 13.5523 9 13 9C12.4477 9 12 8.55228 12 8ZM3 7C2.44772 7 2 7.44772 2 8C2 8.55228 2.44772 9 3 9C3.55228 9 4 8.55228 4 8C4 7.44772 3.55228 7 3 7Z" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 618 B

View File

@@ -1,13 +1,11 @@
application_id = 'hu.kramo.Cartridges'
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(application_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(application_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)
) )

View File

@@ -11,7 +11,11 @@ blueprints = custom_target('blueprints',
) )
gnome.compile_resources('cartridges', gnome.compile_resources('cartridges',
'cartridges.gresource.xml', configure_file(
input: 'cartridges.gresource.xml.in',
output: 'cartridges.gresource.xml',
configuration: conf
),
gresource_bundle: true, gresource_bundle: true,
install: true, install: true,
install_dir: pkgdatadir, install_dir: pkgdatadir,
@@ -19,8 +23,12 @@ gnome.compile_resources('cartridges',
) )
desktop_file = i18n.merge_file( desktop_file = i18n.merge_file(
input: 'hu.kramo.Cartridges.desktop.in', input: configure_file(
output: 'hu.kramo.Cartridges.desktop', input: 'hu.kramo.Cartridges.desktop.in',
output: app_id + '.desktop.in',
configuration: conf
),
output: app_id + '.desktop',
type: 'desktop', type: 'desktop',
po_dir: '../po', po_dir: '../po',
install: true, install: true,
@@ -33,8 +41,12 @@ if desktop_utils.found()
endif endif
appstream_file = i18n.merge_file( appstream_file = i18n.merge_file(
input: 'hu.kramo.Cartridges.metainfo.xml.in', input: configure_file(
output: 'hu.kramo.Cartridges.metainfo.xml', input: 'hu.kramo.Cartridges.metainfo.xml.in',
output: app_id + '.metainfo.xml.in',
configuration: conf
),
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')
@@ -45,7 +57,12 @@ if appstream_util.found()
test('Validate appstream file', appstream_util, args: ['validate', appstream_file]) test('Validate appstream file', appstream_util, args: ['validate', appstream_file])
endif endif
install_data('hu.kramo.Cartridges.gschema.xml', install_data(
configure_file(
input: 'hu.kramo.Cartridges.gschema.xml.in',
output: app_id + '.gschema.xml',
configuration: conf
),
install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas') install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas')
) )

View File

@@ -1,5 +1,5 @@
{ {
"id" : "hu.kramo.Cartridges", "id" : "hu.kramo.Cartridges.Devel",
"runtime" : "org.gnome.Platform", "runtime" : "org.gnome.Platform",
"runtime-version" : "44", "runtime-version" : "44",
"sdk" : "org.gnome.Sdk", "sdk" : "org.gnome.Sdk",
@@ -117,10 +117,13 @@
"name" : "cartridges", "name" : "cartridges",
"builddir" : true, "builddir" : true,
"buildsystem" : "meson", "buildsystem" : "meson",
"config-opts": [
"-Dprofile=development"
],
"sources" : [ "sources" : [
{ {
"type" : "dir", "type" : "dir",
"path" : "." "path" : ".."
} }
] ]
} }

View File

@@ -1,14 +1,32 @@
project('cartridges', project('cartridges',
version: '1.5.2', version: '1.5.6',
meson_version: '>= 0.59.0', meson_version: '>= 0.59.0',
default_options: [ 'warning_level=2', 'werror=false', ], default_options: [ 'warning_level=2', 'werror=false', ],
) )
i18n = import('i18n') i18n = import('i18n')
gnome = import('gnome') gnome = import('gnome')
python = import('python')
pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name()) pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name())
profile = get_option('profile')
if profile == 'development'
app_id = 'hu.kramo.Cartridges.Devel'
prefix = '/hu/kramo/Cartridges/Devel'
elif profile == 'release'
app_id = 'hu.kramo.Cartridges'
prefix = '/hu/kramo/Cartridges'
endif
conf = configuration_data()
conf.set('PYTHON', python.find_installation('python3').full_path())
conf.set('APP_ID', app_id)
conf.set('PREFIX', prefix)
conf.set('VERSION', meson.project_version())
conf.set('localedir', join_paths(get_option('prefix'), get_option('localedir')))
conf.set('pkgdatadir', pkgdatadir)
subdir('data') subdir('data')
subdir('src') subdir('src')
subdir('po') subdir('po')

9
meson_options.txt Normal file
View File

@@ -0,0 +1,9 @@
option(
'profile',
type: 'combo',
choices: [
'release',
'development',
],
value: 'release'
)

View File

@@ -18,3 +18,4 @@ fa
pl pl
sv sv
tr tr
el

View File

@@ -1,5 +1,5 @@
data/hu.kramo.Cartridges.desktop.in data/hu.kramo.Cartridges.desktop.in
data/hu.kramo.Cartridges.gschema.xml data/hu.kramo.Cartridges.gschema.xml.in
data/hu.kramo.Cartridges.metainfo.xml.in data/hu.kramo.Cartridges.metainfo.xml.in
data/gtk/details_window.blp data/gtk/details_window.blp

577
po/el.po Normal file
View File

@@ -0,0 +1,577 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR kramo
# This file is distributed under the same license as the Cartridges package.
# yiannis ioannides <sub@wai.ai>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: Cartridges\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: 2023-05-29 18:48+0000\n"
"Last-Translator: yiannis ioannides <sub@wai.ai>\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/cartridges/"
"cartridges/el/>\n"
"Language: el\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 4.18-dev\n"
#: data/hu.kramo.Cartridges.desktop.in:3
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:48
#: src/main.py:109
msgid "Cartridges"
msgstr "Κασέτες"
#: data/hu.kramo.Cartridges.desktop.in:4
msgid "Game Launcher"
msgstr "Πρόγραμμα Εκκίνησης Παιχνιδιών"
#: data/hu.kramo.Cartridges.desktop.in:5
#: data/hu.kramo.Cartridges.metainfo.xml.in:7
msgid "Launch all your games"
msgstr "Εκκινήστε όλα σας τα παιχνίδια"
#: data/hu.kramo.Cartridges.desktop.in:11
msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
msgstr "gaming;εκκινητής;steam;lutris;heroic;bottles;itch;"
#: data/hu.kramo.Cartridges.metainfo.xml.in:9
msgid ""
"Cartridges is a simple game launcher for all of your games. It has support "
"for importing games from Steam, Lutris, Heroic and more with no login "
"necessary. You can sort and hide games or download cover art from "
"SteamGridDB."
msgstr ""
"Οι Κασέτες είναι ένας απλός εκκινητής παιχνιδιών για όλα σας τα παιχνίδια. "
"Υποστηρίζει την εισαγωγή παιχνιδιών από το Steam, Heroic και άλλες "
"πλατφόρμες χωρίς σύνδεση να είναι απαραίτητη. Μπορείτε να ταξινομήσετε και "
"να κρύψετε τα παιχνίδια σας, καθώς και να κατεβάσετε τα εξώφυλλα τους από το "
"SteamGridDB."
#: data/hu.kramo.Cartridges.metainfo.xml.in:30
msgid "Library"
msgstr "Βιβλιοθήκη"
#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:66
msgid "Edit Game Details"
msgstr "Επεξεργασία Λεπτομερειών Παιχνιδιού"
#: data/hu.kramo.Cartridges.metainfo.xml.in:38 data/gtk/window.blp:72
msgid "Game Details"
msgstr "Λεπτομέρειες Παιχνιδιού"
#: data/hu.kramo.Cartridges.metainfo.xml.in:42 data/gtk/window.blp:417
#: src/utils/importer.py:92 src/utils/importer.py:124
#: src/utils/steamgriddb.py:115
msgid "Preferences"
msgstr "Προτιμήσεις"
#: data/gtk/details_window.blp:25
msgid "Cancel"
msgstr "Ακύρωση"
#: data/gtk/details_window.blp:57
msgid "New Cover"
msgstr "Νέο Εξώφυλλο"
#: data/gtk/details_window.blp:75
msgid "Delete Cover"
msgstr "Διαγραφή Εξώφυλλου"
#: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106
#: data/gtk/game.blp:80
msgid "Title"
msgstr "Τίτλος"
#: data/gtk/details_window.blp:102
msgid "The title of the game"
msgstr "Τίτλος Παιχνιδιού"
#: data/gtk/details_window.blp:112 data/gtk/details_window.blp:117
msgid "Developer"
msgstr "Προγραμματιστής"
#: data/gtk/details_window.blp:113
msgid "The developer or publisher (optional)"
msgstr "Προγραμματιστής ή Εκδότης (προαιρετικό)"
#: data/gtk/details_window.blp:123 data/gtk/details_window.blp:153
msgid "Executable"
msgstr "Πρόγραμμα"
#: data/gtk/details_window.blp:124
msgid "File to open or command to run when launching the game"
msgstr "Αρχείο προς άνοιγμα ή εντολή προς εκτέλεση κατά την εκκίνηση παιχνιδιού"
#: data/gtk/details_window.blp:130
msgid "More Info"
msgstr "Περισσότερες Πληροφορίες"
#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196
msgid "Edit"
msgstr "Επεξεργασία"
#: data/gtk/game.blp:107 src/window.py:205
msgid "Hide"
msgstr "Απόκρυψη"
#: data/gtk/game.blp:112 data/gtk/game.blp:131 data/gtk/preferences.blp:56
#: data/gtk/window.blp:210
msgid "Remove"
msgstr "Αφαίρεση"
#: data/gtk/game.blp:126 src/window.py:207
msgid "Unhide"
msgstr "Φανέρωση"
#: data/gtk/help-overlay.blp:11 data/gtk/preferences.blp:9
msgid "General"
msgstr "Γενικά"
#: data/gtk/help-overlay.blp:14
msgid "Quit"
msgstr "Κλείσιμο"
#: data/gtk/help-overlay.blp:19 data/gtk/window.blp:218 data/gtk/window.blp:258
#: data/gtk/window.blp:324
msgid "Search"
msgstr "Εύρεση"
#: data/gtk/help-overlay.blp:24
msgid "Show preferences"
msgstr "Εμφάνιση προτιμήσεων"
#: data/gtk/help-overlay.blp:29
msgid "Shortcuts"
msgstr "Συντομεύσεις"
#: data/gtk/help-overlay.blp:34 src/game.py:169 src/preferences.py:98
msgid "Undo"
msgstr "Αναίρεση"
#: data/gtk/help-overlay.blp:39
msgid "Open menu"
msgstr "Άνοιγμα μενού"
#: data/gtk/help-overlay.blp:45
msgid "Games"
msgstr "Παιχνίδια"
#: data/gtk/help-overlay.blp:48
msgid "Add new game"
msgstr "Πρόσθεση νέου παιχνιδιού"
#: data/gtk/help-overlay.blp:53
msgid "Import games"
msgstr "Εισαγωγή παιχνιδιών"
#: data/gtk/help-overlay.blp:58
msgid "Show hidden games"
msgstr "Εμφάνιση κρυμμένων παιχνιδιών"
#: data/gtk/help-overlay.blp:63
msgid "Remove game"
msgstr "Αφαίρεση παιχνιδιού"
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:206
msgid "Behavior"
msgstr "Συμπεριφορά"
#: data/gtk/preferences.blp:16
msgid "Exit After Launching Games"
msgstr "Έξοδος μετά την εκκίνηση παιχνιδιών"
#: data/gtk/preferences.blp:25
msgid "Cover Image Launches Game"
msgstr "Εξώφυλλο εκκινεί το παιχνίδι"
#: data/gtk/preferences.blp:26
msgid "Swaps the behavior of the cover image and the play button"
msgstr "Αντικατάσταση συμπεριφοράς εξωφύλλου και του κουμπιού αναπαραγωγής"
#: data/gtk/preferences.blp:36 src/details_window.py:84
msgid "Images"
msgstr "Εικόνες"
#: data/gtk/preferences.blp:39
msgid "High Quality Images"
msgstr "Εικόνες Υψηλής Ποιότητας"
#: data/gtk/preferences.blp:40
msgid "Save game covers losslessly at the cost of storage"
msgstr ""
"Αποθήκευση εξωφύλλου παιχνιδιού σε υψηλή ευκρίνεια, με κόστος τη χωρητικότητα"
#: data/gtk/preferences.blp:50
msgid "Danger Zone"
msgstr "Επικίνδυνη Ζώνη"
#: data/gtk/preferences.blp:53
msgid "Remove All Games"
msgstr "Αφαίρεση Όλων Των Παιχνιδιών"
#: data/gtk/preferences.blp:69 data/gtk/window.blp:28 data/gtk/window.blp:443
msgid "Import"
msgstr "Εισαγωγή"
#: data/gtk/preferences.blp:73
msgid "Sources"
msgstr "Πηγές"
#: data/gtk/preferences.blp:76
msgid "Steam"
msgstr "Steam"
#: data/gtk/preferences.blp:80
msgid "Steam Install Location"
msgstr "Τοποθεσία Εγκατάστασης Steam"
#: data/gtk/preferences.blp:90
msgid "Lutris"
msgstr "Lutris"
#: data/gtk/preferences.blp:94
msgid "Lutris Install Location"
msgstr "Τοποθεσία Εγκατάστασης Lutris"
#: data/gtk/preferences.blp:103
msgid "Lutris Cache Location"
msgstr "Τοποθεσία cache του Lutris"
#: data/gtk/preferences.blp:112
msgid "Import Steam Games"
msgstr "Εισαγωγή Παιχνιδιών Steam"
#: data/gtk/preferences.blp:122
msgid "Heroic"
msgstr "Heroic"
#: data/gtk/preferences.blp:126
msgid "Heroic Install Location"
msgstr "Τοποθεσία Εγκατάστασης Heroic"
#: data/gtk/preferences.blp:135
msgid "Import Epic Games"
msgstr "Εισαγωγή Παιχνιδιών Epic"
#: data/gtk/preferences.blp:144
msgid "Import GOG Games"
msgstr "Εισαγωγή Παιχνιδιών GOG"
#: data/gtk/preferences.blp:153
msgid "Import Sideloaded Games"
msgstr "Εισαγωγή Παιχνιδιών Μέσω Sideloading"
#: data/gtk/preferences.blp:163
msgid "Bottles"
msgstr "Bottles"
#: data/gtk/preferences.blp:167
msgid "Bottles Install Location"
msgstr "Τοποθεσία Εγκατάστασης Bottles"
#: data/gtk/preferences.blp:177
msgid "itch"
msgstr "itch"
#: data/gtk/preferences.blp:181
msgid "itch Install Location"
msgstr "Τοποθεσία Εγκατάστασης itch"
#: data/gtk/preferences.blp:194
msgid "SteamGridDB"
msgstr "SteamGridDB"
#: data/gtk/preferences.blp:198
msgid "Authentication"
msgstr "Επιβεβαίωση"
#: data/gtk/preferences.blp:201
msgid "API Key"
msgstr "Κλειδί API"
#: data/gtk/preferences.blp:209
msgid "Use SteamGridDB"
msgstr "Χρήση SteamGridDB"
#: data/gtk/preferences.blp:210
msgid "Download images when adding or importing games"
msgstr "Λήψη εικόνων κατά τη διάρκεια πρόσθεσης ή εισαγωγής παιχνιδιών"
#: data/gtk/preferences.blp:219
msgid "Prefer Over Official Images"
msgstr "Προτίμηση Επίσημων Εικόνων"
#: data/gtk/preferences.blp:228
msgid "Prefer Animated Images"
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:22
msgid "No Games"
msgstr "Δίχως Παιχνίδια"
#: data/gtk/window.blp:23
msgid "Use the + button to add games."
msgstr "Χρησιμοποιήστε το κουμπί + για να προσθέσετε παιχνίδια."
#: data/gtk/window.blp:41
msgid "No Hidden Games"
msgstr "Δεν υπάρχουν κρυφά παιχνίδια"
#: data/gtk/window.blp:42
msgid "Games you hide will appear here."
msgstr "Τα παιχνίδια που κρύβετε θα εμφανίζονται εδώ."
#: data/gtk/window.blp:65 data/gtk/window.blp:305
msgid "Back"
msgstr "Πίσω"
#: data/gtk/window.blp:122
msgid "Game Title"
msgstr "Τίτλος παιχνιδιού"
#: data/gtk/window.blp:177
msgid "Play"
msgstr "Παίξτε"
#: data/gtk/window.blp:244 data/gtk/window.blp:436
msgid "Add Game"
msgstr "Προσθήκη παιχνιδιού"
#: data/gtk/window.blp:251 data/gtk/window.blp:317
msgid "Main Menu"
msgstr "Κύριο μενού"
#: data/gtk/window.blp:312
msgid "Hidden Games"
msgstr "Κρυμμένα παιχνίδια"
#: data/gtk/window.blp:375
msgid "Sort"
msgstr "Ταξινόμηση"
#: data/gtk/window.blp:378
msgid "A-Z"
msgstr "Α-Ζ"
#: data/gtk/window.blp:384
msgid "Z-A"
msgstr "Ζ-Α"
#: data/gtk/window.blp:390
msgid "Newest"
msgstr "Νεότερο"
#: data/gtk/window.blp:396
msgid "Oldest"
msgstr "Παλαιότερο"
#: data/gtk/window.blp:402
msgid "Last Played"
msgstr "Τελευταία αναπαραγωγή"
#: data/gtk/window.blp:409
msgid "Show Hidden"
msgstr "Εμφάνιση Κρυφών"
#: data/gtk/window.blp:422
msgid "Keyboard Shortcuts"
msgstr "Συντομεύσεις Πληκτρολογίου"
#: data/gtk/window.blp:427
msgid "About Cartridges"
msgstr "Σχετικά με τις Κασέτες"
#. Translators: Replace this with your name for it to show up in the about window
#: src/main.py:127
msgid "translator_credits"
msgstr "Yiannis Ioannides"
#: src/window.py:187
msgid "Today"
msgstr "Σήμερα"
#: src/window.py:189
msgid "Yesterday"
msgstr "Χθες"
#. The variable is the date when the game was added
#: src/window.py:228
msgid "Added: {}"
msgstr "Προστέθηκε: {}"
#: src/window.py:231
msgid "Never"
msgstr "Ποτέ"
#. The variable is the date when the game was last played
#: src/window.py:235
msgid "Last played: {}"
msgstr "Τελευταία αναπαραγωγή: {}"
#: src/details_window.py:75
msgid "Apply"
msgstr "Εφαρμογή"
#: src/details_window.py:81
msgid "Add New Game"
msgstr "Προσθήκη νέου παιχνιδιού"
#: src/details_window.py:82
msgid "Confirm"
msgstr "Επιβεβαίωση"
#. Translate this string as you would translate "file"
#: src/details_window.py:94
msgid "file.txt"
msgstr "αρχειο.txt"
#. As in software
#: src/details_window.py:96
msgid "program"
msgstr "Πρόγραμμα"
#. Translate this string as you would translate "path to {}"
#: src/details_window.py:101 src/details_window.py:103
msgid "C:\\path\\to\\{}"
msgstr "C:\\προς\\φάκελο\\{}"
#. Translate this string as you would translate "path to {}"
#: src/details_window.py:107 src/details_window.py:109
msgid "/path/to/{}"
msgstr "/προς/φάκελο/{}"
#: src/details_window.py:113
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"
"Αν η διεύθυνση φακέλου περιέχει κενά, φροντίστε να την περικλείσετε σε διπλά "
"εισαγωγικά!"
#: src/details_window.py:143 src/details_window.py:149
msgid "Couldn't Add Game"
msgstr "Αδυναμία προσθήκης παιχνιδιού"
#: src/details_window.py:143 src/details_window.py:176
msgid "Game title cannot be empty."
msgstr "Ο τίτλος παιχνιδιού δεν μπορεί να είναι κενός."
#: src/details_window.py:149 src/details_window.py:184
msgid "Executable cannot be empty."
msgstr "Η εφαρμογή δεν μπορεί να είναι κενή."
#: src/details_window.py:175 src/details_window.py:183
msgid "Couldn't Apply Preferences"
msgstr "Αδυναμία Εφαρμογής Προτιμήσεων"
#. The variable is the title of the game
#: src/game.py:208
msgid "{} launched"
msgstr "{} εκκινήθη"
#. The variable is the title of the game
#: src/game.py:220
msgid "{} hidden"
msgstr "{} αποκρύφθηκε"
#: src/game.py:220
msgid "{} unhidden"
msgstr "{} φανερώθηκε"
#. The variable is the title of the game
#: src/game.py:233
msgid "{} removed"
msgstr "{} αφαιρέθηκε"
#: src/preferences.py:97
msgid "All games removed"
msgstr "Όλα τα παιχνίδια αφαιρέθηκαν"
#: src/preferences.py:136
msgid "Cache Not Found"
msgstr "Τα cache δεν βρέθηκαν"
#: src/preferences.py:137
msgid "Select the Lutris cache directory."
msgstr "Επιλέξτε τη τοποθεσία cache του Lutris."
#: src/preferences.py:139 src/preferences.py:292
msgid "Set Location"
msgstr "Ορίστε Τοποθεσία"
#: src/preferences.py:166
msgid ""
"An API key is required to use SteamGridDB. You can generate one {}here{}."
msgstr ""
"Για τη χρήση του SteamGridDB απαιτείται ένα κλειδί API. Μπορείτε να "
"δημιουργήσετε ένα {}εδώ{}."
#: src/preferences.py:286
msgid "Installation Not Found"
msgstr "Η εγκατάσταση δεν βρέθηκε"
#. The variable is the name of the game launcher
#: src/preferences.py:288
msgid "Select the {} configuration directory."
msgstr "Επιλέξτε τον κατάλογο διαμόρφωσης {}."
#. The variable is the name of the game launcher
#: src/preferences.py:290
msgid "Select the {} data directory."
msgstr "Επιλέξτε τον κατάλογο δεδομένων {}."
#: src/utils/create_dialog.py:25
msgid "Dismiss"
msgstr "Απόρριψη"
#: src/utils/importer.py:41
msgid "Importing Games…"
msgstr "Εισαγωγή παιχνιδιών…"
#: src/utils/importer.py:76
msgid "Importing Covers…"
msgstr "Εισαγωγή εξώφυλλων…"
#: src/utils/importer.py:91
msgid "No new games found"
msgstr "Δεν βρέθηκαν νέα παιχνίδια"
#: src/utils/importer.py:98
msgid "1 game imported"
msgstr "1 παιχνίδι εισήχθη"
#. The variable is the number of games
#: src/utils/importer.py:104
msgid "{} games imported"
msgstr "{} παιχνίδια εισήχθησαν"
#: src/utils/importer.py:121 src/utils/steamgriddb.py:112
msgid "Couldn't Connect to SteamGridDB"
msgstr "Η σύνδεση στο SteamGridDB δεν μπόρεσε να πραγματοποιηθεί"

View File

@@ -9,7 +9,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: 2023-05-25 17:48+0200\n" "POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: 2023-04-14 12:29+0000\n" "PO-Revision-Date: 2023-05-28 10:11+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n" "Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/cartridges/" "Language-Team: Spanish <https://hosted.weblate.org/projects/cartridges/"
"cartridges/es/>\n" "cartridges/es/>\n"
@@ -18,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 4.18-dev\n"
#: data/hu.kramo.Cartridges.desktop.in:3 #: data/hu.kramo.Cartridges.desktop.in:3
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:48 #: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:48
@@ -37,7 +37,7 @@ msgstr "Lance todos sus juegos"
#: data/hu.kramo.Cartridges.desktop.in:11 #: data/hu.kramo.Cartridges.desktop.in:11
msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;" msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
msgstr "" msgstr "gaming;launcher;steam;lutris;heroic;bottles;itch;"
#: data/hu.kramo.Cartridges.metainfo.xml.in:9 #: data/hu.kramo.Cartridges.metainfo.xml.in:9
msgid "" msgid ""
@@ -75,11 +75,11 @@ msgstr "Cancelar"
#: data/gtk/details_window.blp:57 #: data/gtk/details_window.blp:57
msgid "New Cover" msgid "New Cover"
msgstr "" msgstr "Nueva caratula"
#: data/gtk/details_window.blp:75 #: data/gtk/details_window.blp:75
msgid "Delete Cover" msgid "Delete Cover"
msgstr "" msgstr "Borrar la caratula"
#: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106 #: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106
#: data/gtk/game.blp:80 #: data/gtk/game.blp:80
@@ -108,7 +108,7 @@ msgstr "Archivo a abrir o comando a ejecutar al iniciar el juego"
#: data/gtk/details_window.blp:130 #: data/gtk/details_window.blp:130
msgid "More Info" msgid "More Info"
msgstr "" msgstr "Más información"
#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196 #: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196
msgid "Edit" msgid "Edit"
@@ -559,23 +559,17 @@ msgid "Importing Covers…"
msgstr "Importando las portadas…" msgstr "Importando las portadas…"
#: src/utils/importer.py:91 #: src/utils/importer.py:91
#, fuzzy
#| msgid "No Games Found"
msgid "No new games found" msgid "No new games found"
msgstr "No se han encontrado juegos" msgstr "No se encontraron juegos nuevos"
#: src/utils/importer.py:98 #: src/utils/importer.py:98
#, fuzzy
#| msgid "Game Imported"
msgid "1 game imported" msgid "1 game imported"
msgstr "Juego importado" msgstr "1 juego importado"
#. The variable is the number of games #. The variable is the number of games
#: src/utils/importer.py:104 #: src/utils/importer.py:104
#, fuzzy
#| msgid "Games Imported"
msgid "{} games imported" msgid "{} games imported"
msgstr "Juegos importados" msgstr "0 juegos importados"
#: src/utils/importer.py:121 src/utils/steamgriddb.py:112 #: src/utils/importer.py:121 src/utils/steamgriddb.py:112
msgid "Couldn't Connect to SteamGridDB" msgid "Couldn't Connect to SteamGridDB"

View File

@@ -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: 2023-05-25 17:48+0200\n" "POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: 2023-05-24 20:27+0000\n" "PO-Revision-Date: 2023-05-28 10:11+0000\n"
"Last-Translator: rene-coty <irenee.thirion@e.email>\n" "Last-Translator: rene-coty <irenee.thirion@e.email>\n"
"Language-Team: French <https://hosted.weblate.org/projects/cartridges/" "Language-Team: French <https://hosted.weblate.org/projects/cartridges/"
"cartridges/fr/>\n" "cartridges/fr/>\n"
@@ -77,11 +77,11 @@ msgstr "Annuler"
#: data/gtk/details_window.blp:57 #: data/gtk/details_window.blp:57
msgid "New Cover" msgid "New Cover"
msgstr "" msgstr "Nouvelle couverture"
#: data/gtk/details_window.blp:75 #: data/gtk/details_window.blp:75
msgid "Delete Cover" msgid "Delete Cover"
msgstr "" msgstr "Supprimer la couverture"
#: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106 #: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106
#: data/gtk/game.blp:80 #: data/gtk/game.blp:80
@@ -110,7 +110,7 @@ msgstr "Fichier à ouvrir ou commande à exécuter au lancement du jeu"
#: data/gtk/details_window.blp:130 #: data/gtk/details_window.blp:130
msgid "More Info" msgid "More Info"
msgstr "" msgstr "Plus dinformations"
#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196 #: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196
msgid "Edit" msgid "Edit"

View File

@@ -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: 2023-05-25 17:48+0200\n" "POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: 2023-04-14 12:29+0000\n" "PO-Revision-Date: 2023-05-29 18:48+0000\n"
"Last-Translator: Philip Goto <philip.goto@gmail.com>\n" "Last-Translator: Philip Goto <philip.goto@gmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/cartridges/" "Language-Team: Dutch <https://hosted.weblate.org/projects/cartridges/"
"cartridges/nl/>\n" "cartridges/nl/>\n"
@@ -17,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 4.17-dev\n" "X-Generator: Weblate 4.18-dev\n"
#: data/hu.kramo.Cartridges.desktop.in:3 #: data/hu.kramo.Cartridges.desktop.in:3
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:48 #: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:48
@@ -37,6 +37,8 @@ msgstr "Start al uw games op"
#: data/hu.kramo.Cartridges.desktop.in:11 #: data/hu.kramo.Cartridges.desktop.in:11
msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;" msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
msgstr "" msgstr ""
"gaming;launcher;steam;lutris;heroic;bottles;itch;spelen;games;starten;opstart"
"en;"
#: data/hu.kramo.Cartridges.metainfo.xml.in:9 #: data/hu.kramo.Cartridges.metainfo.xml.in:9
msgid "" msgid ""
@@ -74,11 +76,11 @@ msgstr "Annuleren"
#: data/gtk/details_window.blp:57 #: data/gtk/details_window.blp:57
msgid "New Cover" msgid "New Cover"
msgstr "" msgstr "Nieuwe cover"
#: data/gtk/details_window.blp:75 #: data/gtk/details_window.blp:75
msgid "Delete Cover" msgid "Delete Cover"
msgstr "" msgstr "Cover verwijderen"
#: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106 #: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106
#: data/gtk/game.blp:80 #: data/gtk/game.blp:80
@@ -108,7 +110,7 @@ msgstr ""
#: data/gtk/details_window.blp:130 #: data/gtk/details_window.blp:130
msgid "More Info" msgid "More Info"
msgstr "" msgstr "Meer info"
#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196 #: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196
msgid "Edit" msgid "Edit"
@@ -561,23 +563,17 @@ msgid "Importing Covers…"
msgstr "Covers importeren…" msgstr "Covers importeren…"
#: src/utils/importer.py:91 #: src/utils/importer.py:91
#, fuzzy
#| msgid "No Games Found"
msgid "No new games found" msgid "No new games found"
msgstr "Geen games gevonden" msgstr "Geen nieuwe games gevonden"
#: src/utils/importer.py:98 #: src/utils/importer.py:98
#, fuzzy
#| msgid "Game Imported"
msgid "1 game imported" msgid "1 game imported"
msgstr "Game geïmporteerd" msgstr "1 game geïmporteerd"
#. The variable is the number of games #. The variable is the number of games
#: src/utils/importer.py:104 #: src/utils/importer.py:104
#, fuzzy
#| msgid "Games Imported"
msgid "{} games imported" msgid "{} games imported"
msgstr "Games geïmporteerd" msgstr "{} games geïmporteerd"
#: src/utils/importer.py:121 src/utils/steamgriddb.py:112 #: src/utils/importer.py:121 src/utils/steamgriddb.py:112
msgid "Couldn't Connect to SteamGridDB" msgid "Couldn't Connect to SteamGridDB"

View File

@@ -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.
# Artur Wróblewski <krypalkora1984@gmail.com>, 2023. # Artur Wróblewski <krypalkora1984@gmail.com>, 2023.
# Kshyso <Kshysio@protonmail.com>, 2023.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Cartridges\n" "Project-Id-Version: Cartridges\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-25 17:48+0200\n" "POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: 2023-05-07 15:38+0000\n" "PO-Revision-Date: 2023-06-10 16:48+0000\n"
"Last-Translator: Artur Wróblewski <krypalkora1984@gmail.com>\n" "Last-Translator: Kshyso <Kshysio@protonmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/cartridges/" "Language-Team: Polish <https://hosted.weblate.org/projects/cartridges/"
"cartridges/pl/>\n" "cartridges/pl/>\n"
"Language: pl\n" "Language: pl\n"
@@ -73,11 +74,11 @@ msgstr "Anuluj"
#: data/gtk/details_window.blp:57 #: data/gtk/details_window.blp:57
msgid "New Cover" msgid "New Cover"
msgstr "" msgstr "Nowa Okładka"
#: data/gtk/details_window.blp:75 #: data/gtk/details_window.blp:75
msgid "Delete Cover" msgid "Delete Cover"
msgstr "" msgstr "Usuń Okładkę"
#: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106 #: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106
#: data/gtk/game.blp:80 #: data/gtk/game.blp:80

View File

@@ -4,13 +4,14 @@
# Pedro Sader Azevedo <pedro.saderazevedo@protonmail.com>, 2023. # Pedro Sader Azevedo <pedro.saderazevedo@protonmail.com>, 2023.
# kramo <contact@kramo.hu>, 2023. # kramo <contact@kramo.hu>, 2023.
# Henrique Machado <henriquecamposrj@gmail.com>, 2023. # Henrique Machado <henriquecamposrj@gmail.com>, 2023.
# João Alves <joao.2003.couto@gmail.com>, 2023.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: cartridges\n" "Project-Id-Version: cartridges\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-25 17:48+0200\n" "POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: 2023-04-18 22:49+0000\n" "PO-Revision-Date: 2023-06-04 22:47+0000\n"
"Last-Translator: Henrique Machado <henriquecamposrj@gmail.com>\n" "Last-Translator: João Alves <joao.2003.couto@gmail.com>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/cartridges/" "Language-Team: Portuguese <https://hosted.weblate.org/projects/cartridges/"
"cartridges/pt/>\n" "cartridges/pt/>\n"
"Language: pt\n" "Language: pt\n"
@@ -24,7 +25,7 @@ msgstr ""
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:48 #: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:48
#: src/main.py:109 #: src/main.py:109
msgid "Cartridges" msgid "Cartridges"
msgstr "Cartuchos" msgstr "Cartridges"
#: data/hu.kramo.Cartridges.desktop.in:4 #: data/hu.kramo.Cartridges.desktop.in:4
msgid "Game Launcher" msgid "Game Launcher"
@@ -37,7 +38,7 @@ msgstr "Inicie todos os seus jogos"
#: data/hu.kramo.Cartridges.desktop.in:11 #: data/hu.kramo.Cartridges.desktop.in:11
msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;" msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
msgstr "" msgstr "gaming;iniciador;steam;lutris;heroic;bottles;itch;"
#: data/hu.kramo.Cartridges.metainfo.xml.in:9 #: data/hu.kramo.Cartridges.metainfo.xml.in:9
msgid "" msgid ""
@@ -46,10 +47,10 @@ msgid ""
"necessary. You can sort and hide games or download cover art from " "necessary. You can sort and hide games or download cover art from "
"SteamGridDB." "SteamGridDB."
msgstr "" msgstr ""
"Cartuchos é um iniciador de jogos simples. Ele tem suporte para importação " "Cartridges é um lançador de jogos simples para todos os seus jogos. Tem "
"de jogos da Steam, Lutris, Heroic, e etc. sem precisar fazer login. E pode " "suporte para importar jogos do Steam, Lutris, Heroic e muito mais, sem "
"organizar e esconder jogos ou baixar imagens das capas dos jogos a partir do " "necessidade de login. Você pode classificar e ocultar jogos ou baixar a capa "
"SteamGridDB." "do SteamGridDB."
#: data/hu.kramo.Cartridges.metainfo.xml.in:30 #: data/hu.kramo.Cartridges.metainfo.xml.in:30
msgid "Library" msgid "Library"
@@ -75,11 +76,11 @@ msgstr "Cancelar"
#: data/gtk/details_window.blp:57 #: data/gtk/details_window.blp:57
msgid "New Cover" msgid "New Cover"
msgstr "" msgstr "Nova capa"
#: data/gtk/details_window.blp:75 #: data/gtk/details_window.blp:75
msgid "Delete Cover" msgid "Delete Cover"
msgstr "" msgstr "Apagar capa"
#: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106 #: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106
#: data/gtk/game.blp:80 #: data/gtk/game.blp:80
@@ -108,7 +109,7 @@ msgstr "Arquivo a ser aberto ou comando a ser executado ao iniciar o jogo"
#: data/gtk/details_window.blp:130 #: data/gtk/details_window.blp:130
msgid "More Info" msgid "More Info"
msgstr "" msgstr "Mais informação"
#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196 #: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196
msgid "Edit" msgid "Edit"
@@ -174,7 +175,7 @@ msgstr "Exibir jogos ocultados"
#: data/gtk/help-overlay.blp:63 #: data/gtk/help-overlay.blp:63
msgid "Remove game" msgid "Remove game"
msgstr "Remove o jogo" msgstr "Remover jogo"
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:206 #: data/gtk/preferences.blp:13 data/gtk/preferences.blp:206
msgid "Behavior" msgid "Behavior"
@@ -182,11 +183,11 @@ msgstr "Comportamento"
#: data/gtk/preferences.blp:16 #: data/gtk/preferences.blp:16
msgid "Exit After Launching Games" msgid "Exit After Launching Games"
msgstr "Fechar Cartuchos ao iniciar um jogo" msgstr "Fechar Cartridges ao iniciar um jogo"
#: data/gtk/preferences.blp:25 #: data/gtk/preferences.blp:25
msgid "Cover Image Launches Game" msgid "Cover Image Launches Game"
msgstr "Clicar na capa para iniciar o jogo" msgstr "Clicar na capa inicia o jogo"
#: data/gtk/preferences.blp:26 #: data/gtk/preferences.blp:26
msgid "Swaps the behavior of the cover image and the play button" msgid "Swaps the behavior of the cover image and the play button"
@@ -206,11 +207,11 @@ msgstr "Salva imagens das capas sem perda, consumindo mais armazenamento"
#: data/gtk/preferences.blp:50 #: data/gtk/preferences.blp:50
msgid "Danger Zone" msgid "Danger Zone"
msgstr "Atenção" msgstr "Zona de perigo"
#: data/gtk/preferences.blp:53 #: data/gtk/preferences.blp:53
msgid "Remove All Games" msgid "Remove All Games"
msgstr "Remove todos os jogos" msgstr "Remover todos os jogos"
#: data/gtk/preferences.blp:69 data/gtk/window.blp:28 data/gtk/window.blp:443 #: data/gtk/preferences.blp:69 data/gtk/window.blp:28 data/gtk/window.blp:443
msgid "Import" msgid "Import"
@@ -558,23 +559,17 @@ msgid "Importing Covers…"
msgstr "Importando capas…" msgstr "Importando capas…"
#: src/utils/importer.py:91 #: src/utils/importer.py:91
#, fuzzy
#| msgid "No Games Found"
msgid "No new games found" msgid "No new games found"
msgstr "Nenhum jogo encontrado" msgstr "Nenhum jogo novo encontrado"
#: src/utils/importer.py:98 #: src/utils/importer.py:98
#, fuzzy
#| msgid "Game Imported"
msgid "1 game imported" msgid "1 game imported"
msgstr "Jogo importado" msgstr "1 jogo importado"
#. The variable is the number of games #. The variable is the number of games
#: src/utils/importer.py:104 #: src/utils/importer.py:104
#, fuzzy
#| msgid "Games Imported"
msgid "{} games imported" msgid "{} games imported"
msgstr "Jogos importados" msgstr "{} jogos importados"
#: src/utils/importer.py:121 src/utils/steamgriddb.py:112 #: src/utils/importer.py:121 src/utils/steamgriddb.py:112
msgid "Couldn't Connect to SteamGridDB" msgid "Couldn't Connect to SteamGridDB"

View File

@@ -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.
# Henrique Machado <henriquecamposrj@gmail.com>, 2023. # Henrique Machado <henriquecamposrj@gmail.com>, 2023.
# Vinícius Gama Santos <vinny.stalck@protonmail.com>, 2023.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Cartridges\n" "Project-Id-Version: Cartridges\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-25 17:48+0200\n" "POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: 2023-04-19 17:50+0000\n" "PO-Revision-Date: 2023-06-02 15:40+0000\n"
"Last-Translator: Henrique Machado <henriquecamposrj@gmail.com>\n" "Last-Translator: Vinícius Gama Santos <vinny.stalck@protonmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"cartridges/cartridges/pt_BR/>\n" "cartridges/cartridges/pt_BR/>\n"
"Language: pt_BR\n" "Language: pt_BR\n"
@@ -35,7 +36,7 @@ msgstr "Inicie todos os seus jogos"
#: data/hu.kramo.Cartridges.desktop.in:11 #: data/hu.kramo.Cartridges.desktop.in:11
msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;" msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
msgstr "" msgstr "jogos;gaming;launcher;steam;lutris;heroic;bottles;itch;"
#: data/hu.kramo.Cartridges.metainfo.xml.in:9 #: data/hu.kramo.Cartridges.metainfo.xml.in:9
msgid "" msgid ""
@@ -44,10 +45,10 @@ msgid ""
"necessary. You can sort and hide games or download cover art from " "necessary. You can sort and hide games or download cover art from "
"SteamGridDB." "SteamGridDB."
msgstr "" msgstr ""
"Cartuchos é um iniciador de jogos simples. Ele tem suporte para importação " "Cartuchos é um simples iniciador de jogos para todos os seus jogos. Ele tem "
"de jogos da Steam, Lutris, Heroic, e etc. sem precisar fazer login. E pode " "suporte para importar jogos do Steam, Lutris, Heroic e outros, sem "
"organizar e esconder jogos ou baixar imagens das capas dos jogos a partir do " "necessidade de login. Você pode ordenar e esconder jogos ou baixar arte de "
"SteamGridDB." "capa do SteamGridDB."
#: data/hu.kramo.Cartridges.metainfo.xml.in:30 #: data/hu.kramo.Cartridges.metainfo.xml.in:30
msgid "Library" msgid "Library"
@@ -73,11 +74,11 @@ msgstr "Cancelar"
#: data/gtk/details_window.blp:57 #: data/gtk/details_window.blp:57
msgid "New Cover" msgid "New Cover"
msgstr "" msgstr "Nova capa"
#: data/gtk/details_window.blp:75 #: data/gtk/details_window.blp:75
msgid "Delete Cover" msgid "Delete Cover"
msgstr "" msgstr "Excluir capa"
#: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106 #: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106
#: data/gtk/game.blp:80 #: data/gtk/game.blp:80
@@ -106,7 +107,7 @@ msgstr "Arquivo a ser aberto ou comando a ser executado ao iniciar o jogo"
#: data/gtk/details_window.blp:130 #: data/gtk/details_window.blp:130
msgid "More Info" msgid "More Info"
msgstr "" msgstr "Mais informações"
#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196 #: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196
msgid "Edit" msgid "Edit"
@@ -114,7 +115,7 @@ msgstr "Editar"
#: data/gtk/game.blp:107 src/window.py:205 #: data/gtk/game.blp:107 src/window.py:205
msgid "Hide" msgid "Hide"
msgstr "Ocultar" msgstr "Esconder"
#: data/gtk/game.blp:112 data/gtk/game.blp:131 data/gtk/preferences.blp:56 #: data/gtk/game.blp:112 data/gtk/game.blp:131 data/gtk/preferences.blp:56
#: data/gtk/window.blp:210 #: data/gtk/window.blp:210
@@ -168,11 +169,11 @@ msgstr "Importar jogos"
#: data/gtk/help-overlay.blp:58 #: data/gtk/help-overlay.blp:58
msgid "Show hidden games" msgid "Show hidden games"
msgstr "Exibir jogos ocultados" msgstr "Exibir jogos ocultos"
#: data/gtk/help-overlay.blp:63 #: data/gtk/help-overlay.blp:63
msgid "Remove game" msgid "Remove game"
msgstr "Remove o jogo" msgstr "Remover jogo"
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:206 #: data/gtk/preferences.blp:13 data/gtk/preferences.blp:206
msgid "Behavior" msgid "Behavior"
@@ -180,15 +181,15 @@ msgstr "Comportamento"
#: data/gtk/preferences.blp:16 #: data/gtk/preferences.blp:16
msgid "Exit After Launching Games" msgid "Exit After Launching Games"
msgstr "Fechar Cartuchos ao iniciar um jogo" msgstr "Fechar ao iniciar jogos"
#: data/gtk/preferences.blp:25 #: data/gtk/preferences.blp:25
msgid "Cover Image Launches Game" msgid "Cover Image Launches Game"
msgstr "Clicar na capa para iniciar o jogo" msgstr "Imagem da capa inicia o jogo"
#: data/gtk/preferences.blp:26 #: data/gtk/preferences.blp:26
msgid "Swaps the behavior of the cover image and the play button" msgid "Swaps the behavior of the cover image and the play button"
msgstr "Troca o comportamento de clicar na capa do jogo e do botão Jogar" msgstr "Troca o comportamento da imagem da capa e do botão jogar"
#: data/gtk/preferences.blp:36 src/details_window.py:84 #: data/gtk/preferences.blp:36 src/details_window.py:84
msgid "Images" msgid "Images"
@@ -200,15 +201,15 @@ msgstr "Imagens de alta qualidade"
#: data/gtk/preferences.blp:40 #: data/gtk/preferences.blp:40
msgid "Save game covers losslessly at the cost of storage" msgid "Save game covers losslessly at the cost of storage"
msgstr "Salva imagens das capas sem perda, consumindo mais armazenamento" msgstr "Salva capas de jogos sem perdas, consumindo mais armazenamento"
#: data/gtk/preferences.blp:50 #: data/gtk/preferences.blp:50
msgid "Danger Zone" msgid "Danger Zone"
msgstr "Atenção" msgstr "Zona de Perigo"
#: data/gtk/preferences.blp:53 #: data/gtk/preferences.blp:53
msgid "Remove All Games" msgid "Remove All Games"
msgstr "Remove todos os jogos" msgstr "Remover todos os jogos"
#: data/gtk/preferences.blp:69 data/gtk/window.blp:28 data/gtk/window.blp:443 #: data/gtk/preferences.blp:69 data/gtk/window.blp:28 data/gtk/window.blp:443
msgid "Import" msgid "Import"
@@ -224,7 +225,7 @@ msgstr "Steam"
#: data/gtk/preferences.blp:80 #: data/gtk/preferences.blp:80
msgid "Steam Install Location" msgid "Steam Install Location"
msgstr "Local de instalação da Steam" msgstr "Local de instalação do Steam"
#: data/gtk/preferences.blp:90 #: data/gtk/preferences.blp:90
msgid "Lutris" msgid "Lutris"
@@ -240,7 +241,7 @@ msgstr "Local do cache do Lutris"
#: data/gtk/preferences.blp:112 #: data/gtk/preferences.blp:112
msgid "Import Steam Games" msgid "Import Steam Games"
msgstr "Importar jogos da Steam" msgstr "Importar jogos do Steam"
#: data/gtk/preferences.blp:122 #: data/gtk/preferences.blp:122
msgid "Heroic" msgid "Heroic"
@@ -264,11 +265,11 @@ msgstr "Importar jogos adicionados manualmente"
#: data/gtk/preferences.blp:163 #: data/gtk/preferences.blp:163
msgid "Bottles" msgid "Bottles"
msgstr "Bottles" msgstr "Garrafas"
#: data/gtk/preferences.blp:167 #: data/gtk/preferences.blp:167
msgid "Bottles Install Location" msgid "Bottles Install Location"
msgstr "Local de instalação do Bottles" msgstr "Local de instalação do Garrafas"
#: data/gtk/preferences.blp:177 #: data/gtk/preferences.blp:177
msgid "itch" msgid "itch"
@@ -296,7 +297,7 @@ msgstr "Usar SteamGridDB"
#: data/gtk/preferences.blp:210 #: data/gtk/preferences.blp:210
msgid "Download images when adding or importing games" msgid "Download images when adding or importing games"
msgstr "Baixa imagens ao adicionar ou importar jogos" msgstr "Baixar imagens ao adicionar ou importar jogos"
#: data/gtk/preferences.blp:219 #: data/gtk/preferences.blp:219
msgid "Prefer Over Official Images" msgid "Prefer Over Official Images"
@@ -312,7 +313,7 @@ msgstr "Nenhum jogo encontrado"
#: 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 "Tente outra pesquisa." msgstr "Tente uma busca diferente."
#: data/gtk/window.blp:22 #: data/gtk/window.blp:22
msgid "No Games" msgid "No Games"
@@ -324,11 +325,11 @@ msgstr "Use o botão + para adicionar jogos."
#: data/gtk/window.blp:41 #: data/gtk/window.blp:41
msgid "No Hidden Games" msgid "No Hidden Games"
msgstr "Sem jogos ocultados" msgstr "Sem jogos ocultos"
#: data/gtk/window.blp:42 #: data/gtk/window.blp:42
msgid "Games you hide will appear here." msgid "Games you hide will appear here."
msgstr "Jogos ocultados vão aparecer aqui." msgstr "Os jogos ocultos aparecerão aqui."
#: data/gtk/window.blp:65 data/gtk/window.blp:305 #: data/gtk/window.blp:65 data/gtk/window.blp:305
msgid "Back" msgid "Back"
@@ -348,11 +349,11 @@ msgstr "Adicionar jogo"
#: data/gtk/window.blp:251 data/gtk/window.blp:317 #: data/gtk/window.blp:251 data/gtk/window.blp:317
msgid "Main Menu" msgid "Main Menu"
msgstr "Menu principal" msgstr "Menu Principal"
#: data/gtk/window.blp:312 #: data/gtk/window.blp:312
msgid "Hidden Games" msgid "Hidden Games"
msgstr "Jogos ocultados" msgstr "Jogos ocultos"
#: data/gtk/window.blp:375 #: data/gtk/window.blp:375
msgid "Sort" msgid "Sort"
@@ -393,7 +394,7 @@ msgstr "Sobre o Cartuchos"
#. Translators: Replace this with your name for it to show up in the about window #. Translators: Replace this with your name for it to show up in the about window
#: src/main.py:127 #: src/main.py:127
msgid "translator_credits" msgid "translator_credits"
msgstr "Pedro Sader Azevedo" msgstr "Pedro Sader Azevedo, Vinícius \"Stalck\""
#: src/window.py:187 #: src/window.py:187
msgid "Today" msgid "Today"
@@ -415,7 +416,7 @@ msgstr "Nunca"
#. The variable is the date when the game was last played #. The variable is the date when the game was last played
#: src/window.py:235 #: src/window.py:235
msgid "Last played: {}" msgid "Last played: {}"
msgstr "Última vez jogado" msgstr "Jogado pela última vez: {}"
#: src/details_window.py:75 #: src/details_window.py:75
msgid "Apply" msgid "Apply"
@@ -467,7 +468,7 @@ msgstr ""
"\n" "\n"
"Para abrir o arquivo \"{}\" com o aplicativo padrão, use:\n" "Para abrir o arquivo \"{}\" com o aplicativo padrão, use:\n"
"\n" "\n"
"<tt>{}\"{}\"</tt>\n" "<tt>{} \"{}\"</tt>\n"
"\n" "\n"
"Se o caminho contiver espaços, certifique-se de colocá-lo entre aspas duplas!" "Se o caminho contiver espaços, certifique-se de colocá-lo entre aspas duplas!"
@@ -495,11 +496,11 @@ msgstr "{} iniciado"
#. The variable is the title of the game #. The variable is the title of the game
#: src/game.py:220 #: src/game.py:220
msgid "{} hidden" msgid "{} hidden"
msgstr "{} está oculto" msgstr "{} ocultado"
#: src/game.py:220 #: src/game.py:220
msgid "{} unhidden" msgid "{} unhidden"
msgstr "{} está exposto" msgstr "{} exibido"
#. The variable is the title of the game #. The variable is the title of the game
#: src/game.py:233 #: src/game.py:233
@@ -526,8 +527,8 @@ msgstr "Definir local"
msgid "" msgid ""
"An API key is required to use SteamGridDB. You can generate one {}here{}." "An API key is required to use SteamGridDB. You can generate one {}here{}."
msgstr "" msgstr ""
"Uma chave da API é necessária para usar a SteamGridDB. Você pode gerar uma " "Uma chave de API é necessária para utilizar o SteamGridDB. Você pode gerar "
"chave {}aqui{}." "uma {}aqui{}."
#: src/preferences.py:286 #: src/preferences.py:286
msgid "Installation Not Found" msgid "Installation Not Found"
@@ -536,12 +537,12 @@ msgstr "Instalação não encontrada"
#. The variable is the name of the game launcher #. The variable is the name of the game launcher
#: src/preferences.py:288 #: src/preferences.py:288
msgid "Select the {} configuration directory." msgid "Select the {} configuration directory."
msgstr "Selecione o diretório de configuração de {}." msgstr "Selecione o diretório de configuração do(a) {}."
#. The variable is the name of the game launcher #. The variable is the name of the game launcher
#: src/preferences.py:290 #: src/preferences.py:290
msgid "Select the {} data directory." msgid "Select the {} data directory."
msgstr "Selecione o diretório de informações de {}." msgstr "Selecione o diretório de dados do(a) {}."
#: src/utils/create_dialog.py:25 #: src/utils/create_dialog.py:25
msgid "Dismiss" msgid "Dismiss"
@@ -556,27 +557,21 @@ msgid "Importing Covers…"
msgstr "Importando capas…" msgstr "Importando capas…"
#: src/utils/importer.py:91 #: src/utils/importer.py:91
#, fuzzy
#| msgid "No Games Found"
msgid "No new games found" msgid "No new games found"
msgstr "Nenhum jogo encontrado" msgstr "Nenhum jogo novo encontrado"
#: src/utils/importer.py:98 #: src/utils/importer.py:98
#, fuzzy
#| msgid "Game Imported"
msgid "1 game imported" msgid "1 game imported"
msgstr "Jogo importado" msgstr "1 jogo importado"
#. The variable is the number of games #. The variable is the number of games
#: src/utils/importer.py:104 #: src/utils/importer.py:104
#, fuzzy
#| msgid "Games Imported"
msgid "{} games imported" msgid "{} games imported"
msgstr "Jogos importados" msgstr "{} jogos importados"
#: src/utils/importer.py:121 src/utils/steamgriddb.py:112 #: src/utils/importer.py:121 src/utils/steamgriddb.py:112
msgid "Couldn't Connect to SteamGridDB" msgid "Couldn't Connect to SteamGridDB"
msgstr "Não foi possível conectar à SteamGridDB" msgstr "Não foi possível conectar-se ao SteamGridDB"
#~ msgid "Directory to use when importing games" #~ msgid "Directory to use when importing games"
#~ msgstr "Diretório para usar ao importar jogos" #~ msgstr "Diretório para usar ao importar jogos"

View File

@@ -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: 2023-05-25 17:48+0200\n" "POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: 2023-05-24 20:27+0000\n" "PO-Revision-Date: 2023-05-28 10:11+0000\n"
"Last-Translator: Сергей <asvmail.as@gmail.com>\n" "Last-Translator: Сергей <asvmail.as@gmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/cartridges/" "Language-Team: Russian <https://hosted.weblate.org/projects/cartridges/"
"cartridges/ru/>\n" "cartridges/ru/>\n"
@@ -16,8 +16,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%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.18-dev\n" "X-Generator: Weblate 4.18-dev\n"
#: data/hu.kramo.Cartridges.desktop.in:3 #: data/hu.kramo.Cartridges.desktop.in:3
@@ -75,11 +75,11 @@ msgstr "Отменить"
#: data/gtk/details_window.blp:57 #: data/gtk/details_window.blp:57
msgid "New Cover" msgid "New Cover"
msgstr "" msgstr "Новая обложка"
#: data/gtk/details_window.blp:75 #: data/gtk/details_window.blp:75
msgid "Delete Cover" msgid "Delete Cover"
msgstr "" msgstr "Удалить обложку"
#: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106 #: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106
#: data/gtk/game.blp:80 #: data/gtk/game.blp:80
@@ -108,7 +108,7 @@ msgstr "Файл для открытия или команда для запус
#: data/gtk/details_window.blp:130 #: data/gtk/details_window.blp:130
msgid "More Info" msgid "More Info"
msgstr "" msgstr "Дополнительная информация"
#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196 #: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196
msgid "Edit" msgid "Edit"

View File

@@ -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: 2023-05-25 17:48+0200\n" "POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: 2023-05-24 20:27+0000\n" "PO-Revision-Date: 2023-06-02 15:40+0000\n"
"Last-Translator: micke <micke@users.noreply.hosted.weblate.org>\n" "Last-Translator: micke <micke@users.noreply.hosted.weblate.org>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/cartridges/" "Language-Team: Swedish <https://hosted.weblate.org/projects/cartridges/"
"cartridges/sv/>\n" "cartridges/sv/>\n"
@@ -73,11 +73,11 @@ msgstr "Avbryt"
#: data/gtk/details_window.blp:57 #: data/gtk/details_window.blp:57
msgid "New Cover" msgid "New Cover"
msgstr "" msgstr "Nytt omslag"
#: data/gtk/details_window.blp:75 #: data/gtk/details_window.blp:75
msgid "Delete Cover" msgid "Delete Cover"
msgstr "" msgstr "Ta bort omslag"
#: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106 #: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106
#: data/gtk/game.blp:80 #: data/gtk/game.blp:80
@@ -106,7 +106,7 @@ msgstr "Fil som ska öppnas eller kommando som ska köras när spelet startas"
#: data/gtk/details_window.blp:130 #: data/gtk/details_window.blp:130
msgid "More Info" msgid "More Info"
msgstr "" msgstr "Mer info"
#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196 #: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196
msgid "Edit" msgid "Edit"

View File

@@ -9,7 +9,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: 2023-05-25 17:48+0200\n" "POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: 2023-05-24 20:27+0000\n" "PO-Revision-Date: 2023-05-29 18:48+0000\n"
"Last-Translator: \"K.B.Dharun Krishna\" <kbdharunkrishna@gmail.com>\n" "Last-Translator: \"K.B.Dharun Krishna\" <kbdharunkrishna@gmail.com>\n"
"Language-Team: Tamil <https://hosted.weblate.org/projects/cartridges/" "Language-Team: Tamil <https://hosted.weblate.org/projects/cartridges/"
"cartridges/ta/>\n" "cartridges/ta/>\n"
@@ -76,11 +76,11 @@ msgstr "ரத்துசெய்"
#: data/gtk/details_window.blp:57 #: data/gtk/details_window.blp:57
msgid "New Cover" msgid "New Cover"
msgstr "" msgstr "புதிய அட்டை"
#: data/gtk/details_window.blp:75 #: data/gtk/details_window.blp:75
msgid "Delete Cover" msgid "Delete Cover"
msgstr "" msgstr "அட்டையை நீக்கு"
#: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106 #: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106
#: data/gtk/game.blp:80 #: data/gtk/game.blp:80
@@ -109,7 +109,7 @@ msgstr "விளையாட்டைத் தொடங்கும் போ
#: data/gtk/details_window.blp:130 #: data/gtk/details_window.blp:130
msgid "More Info" msgid "More Info"
msgstr "" msgstr "மேலும் தகவல்"
#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196 #: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196
msgid "Edit" msgid "Edit"

View File

@@ -9,8 +9,8 @@ msgstr ""
"Project-Id-Version: cartridges\n" "Project-Id-Version: cartridges\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-25 17:48+0200\n" "POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: 2023-05-26 18:10+0000\n" "PO-Revision-Date: 2023-06-03 18:51+0000\n"
"Last-Translator: Dan <denqwerta@gmail.com>\n" "Last-Translator: Вова Смірнов <vovasmirnon5895@gmail.com>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/cartridges/" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/cartridges/"
"cartridges/uk/>\n" "cartridges/uk/>\n"
"Language: uk\n" "Language: uk\n"
@@ -25,7 +25,7 @@ msgstr ""
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:48 #: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:48
#: src/main.py:109 #: src/main.py:109
msgid "Cartridges" msgid "Cartridges"
msgstr "Cartridges" msgstr "Картриджі"
#: data/hu.kramo.Cartridges.desktop.in:4 #: data/hu.kramo.Cartridges.desktop.in:4
msgid "Game Launcher" msgid "Game Launcher"
@@ -47,7 +47,7 @@ msgid ""
"necessary. You can sort and hide games or download cover art from " "necessary. You can sort and hide games or download cover art from "
"SteamGridDB." "SteamGridDB."
msgstr "" msgstr ""
"Cartridges - це простий лаунчер для всіх ваших ігор. Він підтримує імпорт " "Картриджі - це простий лаунчер для всіх ваших ігор. Він підтримує імпорт "
"ігор з Steam, Lutris, Heroic тощо без необхідності входу в систему. Ви " "ігор з Steam, Lutris, Heroic тощо без необхідності входу в систему. Ви "
"можете сортувати та приховувати ігри або завантажувати обкладинки з " "можете сортувати та приховувати ігри або завантажувати обкладинки з "
"SteamGridDB." "SteamGridDB."
@@ -391,7 +391,7 @@ msgstr "Комбінації клавіш"
#: data/gtk/window.blp:427 #: data/gtk/window.blp:427
msgid "About Cartridges" msgid "About Cartridges"
msgstr "Про Cartridges" msgstr "Про Картриджі"
#. Translators: Replace this with your name for it to show up in the about window #. Translators: Replace this with your name for it to show up in the about window
#: src/main.py:127 #: src/main.py:127
@@ -418,7 +418,7 @@ msgstr "Ніколи"
#. The variable is the date when the game was last played #. The variable is the date when the game was last played
#: src/window.py:235 #: src/window.py:235
msgid "Last played: {}" msgid "Last played: {}"
msgstr "Останній раз грали: {}" msgstr "Востаннє грали: {}"
#: src/details_window.py:75 #: src/details_window.py:75
msgid "Apply" msgid "Apply"

1
src/__builtins__.pyi Normal file
View File

@@ -0,0 +1 @@
def _(_msg: str, /) -> str: ...

View File

@@ -32,7 +32,7 @@ from .save_cover import resize_cover, save_cover
from .steamgriddb import SGDBSave from .steamgriddb import SGDBSave
@Gtk.Template(resource_path="/hu/kramo/Cartridges/gtk/details_window.ui") @Gtk.Template(resource_path=shared.PREFIX + "/gtk/details_window.ui")
class DetailsWindow(Adw.Window): class DetailsWindow(Adw.Window):
__gtype_name__ = "DetailsWindow" __gtype_name__ = "DetailsWindow"

View File

@@ -24,13 +24,13 @@ import subprocess
from pathlib import Path from pathlib import Path
from time import time from time import time
from gi.repository import Adw, Gio, Gtk from gi.repository import Adw, Gtk
from . import shared from . import shared
from .game_cover import GameCover from .game_cover import GameCover
@Gtk.Template(resource_path="/hu/kramo/Cartridges/gtk/game.ui") @Gtk.Template(resource_path=shared.PREFIX + "/gtk/game.ui")
class Game(Gtk.Box): class Game(Gtk.Box):
__gtype_name__ = "Game" __gtype_name__ = "Game"
@@ -65,7 +65,7 @@ class Game(Gtk.Box):
self.win = shared.win self.win = shared.win
self.app = self.win.get_application() self.app = self.win.get_application()
self.version = shared.spec_version self.version = shared.SPEC_VERSION
self.update_values(data) self.update_values(data)
@@ -189,7 +189,7 @@ class Game(Gtk.Box):
args = ( args = (
"flatpak-spawn --host /bin/sh -c " + shlex.quote(string) # Flatpak "flatpak-spawn --host /bin/sh -c " + shlex.quote(string) # Flatpak
if os.getenv("FLATPAK_ID") == "hu.kramo.Cartridges" if os.getenv("FLATPAK_ID") == shared.APP_ID
else string # Others else string # Others
) )
@@ -201,7 +201,7 @@ class Game(Gtk.Box):
creationflags=subprocess.CREATE_NEW_PROCESS_GROUP if os.name == "nt" else 0, creationflags=subprocess.CREATE_NEW_PROCESS_GROUP if os.name == "nt" else 0,
) )
if Gio.Settings.new("hu.kramo.Cartridges").get_boolean("exit-after-launch"): if shared.schema.get_boolean("exit-after-launch"):
self.app.quit() self.app.quit()
# The variable is the title of the game # The variable is the title of the game

View File

@@ -20,6 +20,8 @@
from gi.repository import GdkPixbuf, Gio, GLib from gi.repository import GdkPixbuf, Gio, GLib
from PIL import Image, ImageFilter, ImageStat from PIL import Image, ImageFilter, ImageStat
from . import shared
class GameCover: class GameCover:
pixbuf = None pixbuf = None
@@ -30,7 +32,7 @@ class GameCover:
anim_iter = None anim_iter = None
placeholder_pixbuf = GdkPixbuf.Pixbuf.new_from_resource_at_scale( placeholder_pixbuf = GdkPixbuf.Pixbuf.new_from_resource_at_scale(
"/hu/kramo/Cartridges/library_placeholder.svg", 400, 600, False shared.PREFIX + "/library_placeholder.svg", 400, 600, False
) )
def __init__(self, pictures, path=None): def __init__(self, pictures, path=None):
@@ -91,7 +93,7 @@ class GameCover:
) )
else: else:
self.blurred = GdkPixbuf.Pixbuf.new_from_resource_at_scale( self.blurred = GdkPixbuf.Pixbuf.new_from_resource_at_scale(
"/hu/kramo/Cartridges/library_placeholder.svg", 2, 2, False shared.PREFIX + "/library_placeholder.svg", 2, 2, False
) )
self.luminance = (0.1, 0.8) self.luminance = (0.1, 0.8)

View File

@@ -28,22 +28,19 @@ from .check_install import check_install
def bottles_installed(path=None): def bottles_installed(path=None):
location_key = "bottles-location" location_key = "bottles-location"
bottles_dir = (
path if path else Path(shared.schema.get_string(location_key)).expanduser()
)
check = "library.yml" check = "library.yml"
if not (bottles_dir / check).is_file(): locations = (
locations = ( (path,)
(Path(),) if path
if path else (
else ( Path(shared.schema.get_string(location_key)).expanduser(),
Path.home() / ".var/app/com.usebottles.bottles/data/bottles", Path.home() / ".var/app/com.usebottles.bottles/data/bottles",
shared.data_dir / "bottles", shared.data_dir / "bottles",
)
) )
)
bottles_dir = check_install(check, locations, (shared.schema, location_key)) bottles_dir = check_install(check, locations, (shared.schema, location_key))
return bottles_dir return bottles_dir
@@ -86,15 +83,26 @@ def bottles_importer():
values["added"] = current_time values["added"] = current_time
values["last_played"] = 0 values["last_played"] = 0
importer.save_game( # This will not work if both Cartridges and Bottles are installed via Flatpak
values, # as Cartridges can't access directories picked via Bottles' file picker portal
( try:
bottles_dir bottles_location = Path(
/ "bottles" yaml.safe_load((bottles_dir / "data.yml").read_text("utf-8"))[
"custom_bottles_path"
]
)
except (FileNotFoundError, KeyError):
bottles_location = bottles_dir / "bottles"
if game["thumbnail"]:
grid_path = (
bottles_location
/ game["bottle"]["path"] / game["bottle"]["path"]
/ "grids" / "grids"
/ game["thumbnail"].split(":")[1] / game["thumbnail"].split(":")[1]
) )
if game["thumbnail"]
else None, importer.save_game(
values,
grid_path if game["thumbnail"] and grid_path.is_file() else None,
) )

View File

@@ -29,25 +29,22 @@ from .check_install import check_install
def heroic_installed(path=None): def heroic_installed(path=None):
location_key = "heroic-location" location_key = "heroic-location"
heroic_dir = (
path if path else Path(shared.schema.get_string(location_key)).expanduser()
)
check = "config.json" check = "config.json"
if not (heroic_dir / check).is_file(): locations = (
locations = ( (path,)
(Path(),) if path
if path else (
else ( Path(shared.schema.get_string(location_key)).expanduser(),
Path.home() / ".var/app/com.heroicgameslauncher.hgl/config/heroic", Path.home() / ".var/app/com.heroicgameslauncher.hgl/config/heroic",
shared.config_dir / "heroic", shared.config_dir / "heroic",
)
) )
)
if os.name == "nt" and not path: if os.name == "nt" and not path:
locations += (Path(os.getenv("appdata")) / "heroic",) locations += (Path(os.getenv("appdata")) / "heroic",)
heroic_dir = check_install(check, locations, (shared.schema, location_key)) heroic_dir = check_install(check, locations, (shared.schema, location_key))
return heroic_dir return heroic_dir
@@ -63,7 +60,7 @@ def heroic_importer():
# Import Epic games # Import Epic games
if not shared.schema.get_boolean("heroic-import-epic"): if not shared.schema.get_boolean("heroic-import-epic"):
pass pass
elif (heroic_dir / "store_cache" / "legendary_library.json").exists(): elif (heroic_dir / "store_cache" / "legendary_library.json").is_file():
library = json.load( library = json.load(
(heroic_dir / "store_cache" / "legendary_library.json").open() (heroic_dir / "store_cache" / "legendary_library.json").open()
) )
@@ -108,7 +105,7 @@ def heroic_importer():
).hexdigest() ).hexdigest()
) )
importer.save_game(values, image_path if image_path.exists() else None) importer.save_game(values, image_path if image_path.is_file() else None)
except KeyError: except KeyError:
pass pass
@@ -116,9 +113,9 @@ def heroic_importer():
# Import GOG games # Import GOG games
if not shared.schema.get_boolean("heroic-import-gog"): if not shared.schema.get_boolean("heroic-import-gog"):
pass pass
elif (heroic_dir / "gog_store" / "installed.json").exists() and ( elif (heroic_dir / "gog_store" / "installed.json").is_file() and (
heroic_dir / "store_cache" / "gog_library.json" heroic_dir / "store_cache" / "gog_library.json"
).exists(): ).is_file():
installed = json.load((heroic_dir / "gog_store" / "installed.json").open()) installed = json.load((heroic_dir / "gog_store" / "installed.json").open())
importer.total_queue += len(installed["installed"]) importer.total_queue += len(installed["installed"])
@@ -161,12 +158,12 @@ def heroic_importer():
values["added"] = current_time values["added"] = current_time
values["last_played"] = 0 values["last_played"] = 0
importer.save_game(values, image_path if image_path.exists() else None) importer.save_game(values, image_path if image_path.is_file() else None)
# Import sideloaded games # Import sideloaded games
if not shared.schema.get_boolean("heroic-import-sideload"): if not shared.schema.get_boolean("heroic-import-sideload"):
pass pass
elif (heroic_dir / "sideload_apps" / "library.json").exists(): elif (heroic_dir / "sideload_apps" / "library.json").is_file():
library = json.load((heroic_dir / "sideload_apps" / "library.json").open()) library = json.load((heroic_dir / "sideload_apps" / "library.json").open())
importer.total_queue += len(library["games"]) importer.total_queue += len(library["games"])
@@ -201,4 +198,4 @@ def heroic_importer():
/ sha256(item["art_square"].encode()).hexdigest() / sha256(item["art_square"].encode()).hexdigest()
) )
importer.save_game(values, image_path if image_path.exists() else None) importer.save_game(values, image_path if image_path.is_file() else None)

View File

@@ -123,25 +123,22 @@ def get_games_async(rows, importer):
def itch_installed(path=None): def itch_installed(path=None):
location_key = "itch-location" location_key = "itch-location"
itch_dir = (
path if path else Path(shared.schema.get_string(location_key)).expanduser()
)
check = Path("db") / "butler.db" check = Path("db") / "butler.db"
if not (itch_dir / check).is_file(): locations = (
locations = ( (path,)
(Path(),) if path
if path else (
else ( Path(shared.schema.get_string(location_key)).expanduser(),
Path.home() / ".var/app/io.itch.itch/config/itch", Path.home() / ".var/app/io.itch.itch/config/itch",
shared.config_dir / "itch", shared.config_dir / "itch",
)
) )
)
if os.name == "nt" and not path: if os.name == "nt" and not path:
locations += (Path(os.getenv("appdata")) / "itch",) locations += (Path(os.getenv("appdata")) / "itch",)
itch_dir = check_install(check, locations, (shared.schema, location_key)) itch_dir = check_install(check, locations, (shared.schema, location_key))
return itch_dir return itch_dir

View File

@@ -28,44 +28,38 @@ from .check_install import check_install
def lutris_installed(path=None): def lutris_installed(path=None):
location_key = "lutris-location" location_key = "lutris-location"
lutris_dir = (
path if path else Path(shared.schema.get_string(location_key)).expanduser()
)
check = "pga.db" check = "pga.db"
if not (lutris_dir / check).is_file(): locations = (
locations = ( (path,)
(Path(),) if path
if path else (
else ( Path(shared.schema.get_string(location_key)).expanduser(),
Path.home() / ".var/app/net.lutris.Lutris/data/lutris", Path.home() / ".var/app/net.lutris.Lutris/data/lutris",
shared.data_dir / "lutris", shared.data_dir / "lutris",
)
) )
)
lutris_dir = check_install(check, locations, (shared.schema, location_key)) lutris_dir = check_install(check, locations, (shared.schema, location_key))
return lutris_dir return lutris_dir
def lutris_cache_exists(path=None): def lutris_cache_exists(path=None):
cache_key = "lutris-cache-location" cache_key = "lutris-cache-location"
cache_dir = path if path else Path(shared.schema.get_string(cache_key)).expanduser()
cache_check = "coverart" cache_check = "coverart"
if not (cache_dir / cache_check).exists(): cache_locations = (
cache_locations = ( (path,)
(Path(),) if path
if path else (
else ( Path(shared.schema.get_string(cache_key)).expanduser(),
Path.home() / ".var" / "app" / "net.lutris.Lutris" / "cache" / "lutris", Path.home() / ".var" / "app" / "net.lutris.Lutris" / "cache" / "lutris",
shared.cache_dir / "lutris", shared.cache_dir / "lutris",
)
) )
)
cache_dir = check_install( cache_dir = check_install(cache_check, cache_locations, (shared.schema, cache_key))
cache_check, cache_locations, (shared.schema, cache_key)
)
return cache_dir return cache_dir
@@ -137,4 +131,4 @@ def lutris_importer():
values["source"] = f"lutris_{row[3]}" values["source"] = f"lutris_{row[3]}"
image_path = cache_dir / "coverart" / f"{row[2]}.jpg" image_path = cache_dir / "coverart" / f"{row[2]}.jpg"
importer.save_game(values, image_path if image_path.exists() else None) importer.save_game(values, image_path if image_path.is_file() else None)

View File

@@ -38,7 +38,7 @@ def update_values_from_data(content, values):
if data.get("developers"): if data.get("developers"):
values["developer"] = ", ".join(data["developers"]) values["developer"] = ", ".join(data["developers"])
if data.get("type") != "game": if data.get("type") not in {"game", "demo"}:
values["blacklisted"] = True values["blacklisted"] = True
return values return values
@@ -90,11 +90,11 @@ def get_game(task, datatypes, current_time, appmanifest, steam_dir):
open_file.raise_for_status() open_file.raise_for_status()
content = open_file.json() content = open_file.json()
except requests.exceptions.RequestException: except requests.exceptions.RequestException:
task.return_value((values, image_path if image_path.exists() else None)) task.return_value((values, image_path if image_path.is_file() else None))
return return
values = update_values_from_data(content, values) values = update_values_from_data(content, values)
task.return_value((values, image_path if image_path.exists() else None)) task.return_value((values, image_path if image_path.is_file() else None))
def get_games_async(appmanifests, steam_dir, importer): def get_games_async(appmanifests, steam_dir, importer):
@@ -126,28 +126,24 @@ def get_games_async(appmanifests, steam_dir, importer):
def steam_installed(path=None): def steam_installed(path=None):
location_key = "steam-location" location_key = "steam-location"
steam_dir = Path(shared.schema.get_string(location_key)).expanduser()
check = "steamapps" check = "steamapps"
if not (steam_dir / check).is_file(): subdirs = ("steam", "Steam")
subdirs = ("steam", "Steam") locations = (
locations = ( (path,)
(path,) if path
if path else (
else ( Path(shared.schema.get_string(location_key)).expanduser(),
steam_dir, Path.home() / ".steam",
Path.home() / ".steam", shared.data_dir / "Steam",
shared.data_dir / "Steam", Path.home() / ".var/app/com.valvesoftware.Steam/data/Steam",
Path.home() / ".var/app/com.valvesoftware.Steam/data/Steam",
)
) )
)
if os.name == "nt": if os.name == "nt":
locations += (Path(os.getenv("programfiles(x86)")) / "Steam",) locations += (Path(os.getenv("programfiles(x86)")) / "Steam",)
steam_dir = check_install( steam_dir = check_install(check, locations, (shared.schema, location_key), subdirs)
check, locations, (shared.schema, location_key), subdirs
)
return steam_dir return steam_dir
@@ -168,13 +164,12 @@ def steam_importer():
steam_dirs = [steam_dir] steam_dirs = [steam_dir]
for directory in steam_dirs: for directory in steam_dirs:
if not (directory / "steamapps").exists(): try:
steam_dirs.remove(directory) for open_file in (directory / "steamapps").iterdir():
if open_file.is_file() and "appmanifest" in open_file.name:
for directory in steam_dirs: appmanifests.append(open_file)
for open_file in (directory / "steamapps").iterdir(): except FileNotFoundError:
if open_file.is_file() and "appmanifest" in open_file.name: continue
appmanifests.append(open_file)
importer = shared.importer importer = shared.importer
importer.total_queue += len(appmanifests) importer.total_queue += len(appmanifests)

View File

@@ -44,12 +44,12 @@ class CartridgesApplication(Adw.Application):
def __init__(self): def __init__(self):
super().__init__( super().__init__(
application_id="hu.kramo.Cartridges", flags=Gio.ApplicationFlags.FLAGS_NONE application_id=shared.APP_ID, flags=Gio.ApplicationFlags.FLAGS_NONE
) )
def do_activate(self): # pylint: disable=arguments-differ def do_activate(self): # pylint: disable=arguments-differ
# Set fallback icon-name # Set fallback icon-name
Gtk.Window.set_default_icon_name("hu.kramo.Cartridges") Gtk.Window.set_default_icon_name(shared.APP_ID)
# Create the main window # Create the main window
self.win = self.props.active_window # pylint: disable=no-member self.win = self.props.active_window # pylint: disable=no-member
@@ -110,9 +110,9 @@ class CartridgesApplication(Adw.Application):
about = Adw.AboutWindow( about = Adw.AboutWindow(
transient_for=self.win, transient_for=self.win,
application_name=_("Cartridges"), application_name=_("Cartridges"),
application_icon="hu.kramo.Cartridges", application_icon=shared.APP_ID,
developer_name="kramo", developer_name="kramo",
version="1.5.2", version=shared.VERSION,
developers=[ developers=[
"kramo https://kramo.hu", "kramo https://kramo.hu",
"Arcitec https://github.com/Arcitec", "Arcitec https://github.com/Arcitec",

View File

@@ -1,13 +1,5 @@
moduledir = join_paths(pkgdatadir, 'cartridges') moduledir = join_paths(pkgdatadir, 'cartridges')
python = import('python')
conf = configuration_data()
conf.set('PYTHON', python.find_installation('python3').path())
conf.set('VERSION', meson.project_version())
conf.set('localedir', join_paths(get_option('prefix'), get_option('localedir')))
conf.set('pkgdatadir', pkgdatadir)
configure_file( configure_file(
input: 'cartridges.in', input: 'cartridges.in',
output: 'cartridges', output: 'cartridges',
@@ -17,6 +9,11 @@ configure_file(
) )
cartridges_sources = [ cartridges_sources = [
configure_file(
input: 'shared.py.in',
output: 'shared.py',
configuration: conf
),
'__init__.py', '__init__.py',
'main.py', 'main.py',
'window.py', 'window.py',
@@ -24,7 +21,6 @@ cartridges_sources = [
'details_window.py', 'details_window.py',
'game.py', 'game.py',
'game_cover.py', 'game_cover.py',
'shared.py',
'importers/steam_importer.py', 'importers/steam_importer.py',
'importers/lutris_importer.py', 'importers/lutris_importer.py',
'importers/heroic_importer.py', 'importers/heroic_importer.py',

View File

@@ -33,7 +33,7 @@ from .lutris_importer import lutris_cache_exists, lutris_installed
from .steam_importer import steam_installed from .steam_importer import steam_installed
@Gtk.Template(resource_path="/hu/kramo/Cartridges/gtk/preferences.ui") @Gtk.Template(resource_path=shared.PREFIX + "/gtk/preferences.ui")
class PreferencesWindow(Adw.PreferencesWindow): class PreferencesWindow(Adw.PreferencesWindow):
__gtype_name__ = "PreferencesWindow" __gtype_name__ = "PreferencesWindow"
@@ -126,7 +126,7 @@ class PreferencesWindow(Adw.PreferencesWindow):
if response == "choose_folder": if response == "choose_folder":
self.choose_folder(widget, set_cache_dir) self.choose_folder(widget, set_cache_dir)
if lutris_cache_exists(self.win, path): if lutris_cache_exists(path):
self.import_changed = True self.import_changed = True
self.set_subtitle(self, "lutris-cache") self.set_subtitle(self, "lutris-cache")
@@ -257,7 +257,7 @@ class PreferencesWindow(Adw.PreferencesWindow):
getattr(win, f'{source_id.replace("-", "_")}_action_row').set_subtitle( getattr(win, f'{source_id.replace("-", "_")}_action_row').set_subtitle(
# Remove the path if the dir is picked via the Flatpak portal # Remove the path if the dir is picked via the Flatpak portal
re.sub( re.sub(
"/run/user/\\d*/doc/......../", "/run/user/\\d*/doc/.*/",
"", "",
str( str(
Path(shared.schema.get_string(f"{source_id}-location")).expanduser() Path(shared.schema.get_string(f"{source_id}-location")).expanduser()

View File

@@ -1,4 +1,4 @@
# shared.py # shared.py.in
# #
# Copyright 2022-2023 kramo # Copyright 2022-2023 kramo
# #
@@ -22,8 +22,13 @@ from pathlib import Path
from gi.repository import Gdk, Gio from gi.repository import Gdk, Gio
schema = Gio.Settings.new("hu.kramo.Cartridges") APP_ID = "@APP_ID@"
state_schema = Gio.Settings.new("hu.kramo.Cartridges.State") VERSION = "@VERSION@"
PREFIX = "@PREFIX@"
SPEC_VERSION = 1.5 # The version of the game_id.json spec
schema = Gio.Settings.new(APP_ID)
state_schema = Gio.Settings.new(APP_ID + ".State")
data_dir = ( data_dir = (
Path(os.getenv("XDG_DATA_HOME")) Path(os.getenv("XDG_DATA_HOME"))
@@ -52,4 +57,3 @@ image_size = (200 * scale_factor, 300 * scale_factor)
# pylint: disable=invalid-name # pylint: disable=invalid-name
win = None win = None
importer = None importer = None
spec_version = 1.5 # The version of the game_id.json spec

View File

@@ -23,10 +23,9 @@ from pathlib import Path
def check_install(check, locations, setting=None, subdirs=(Path(),)): def check_install(check, locations, setting=None, subdirs=(Path(),)):
for location in locations: for location in locations:
for subdir in (Path(),) + subdirs: for subdir in (Path(),) + subdirs:
if (location / subdir / check).is_file() or ( if (location / subdir / check).exists():
location / subdir / check
).exists():
if setting: if setting:
setting[0].set_string(setting[1], str(location / subdir)) setting[0].set_string(setting[1], str(location / subdir))
return location / subdir return location / subdir
return False

View File

@@ -20,13 +20,13 @@
import json import json
from datetime import datetime from datetime import datetime
from gi.repository import Adw, Gio, GLib, Gtk from gi.repository import Adw, GLib, Gtk
from . import shared from . import shared
from .game import Game from .game import Game
@Gtk.Template(resource_path="/hu/kramo/Cartridges/gtk/window.ui") @Gtk.Template(resource_path=shared.PREFIX + "/gtk/window.ui")
class CartridgesWindow(Adw.ApplicationWindow): class CartridgesWindow(Adw.ApplicationWindow):
__gtype_name__ = "CartridgesWindow" __gtype_name__ = "CartridgesWindow"
@@ -92,15 +92,20 @@ class CartridgesWindow(Adw.ApplicationWindow):
self.set_library_child() self.set_library_child()
self.notice_empty.set_icon_name(shared.APP_ID + "-symbolic")
if "Devel" in shared.APP_ID:
self.add_css_class("devel")
games = {} games = {}
if shared.games_dir.exists(): if shared.games_dir.is_dir():
for open_file in shared.games_dir.iterdir(): for open_file in shared.games_dir.iterdir():
data = json.load(open_file.open()) data = json.load(open_file.open())
games[data["game_id"]] = data games[data["game_id"]] = data
for game_id, game in games.items(): for game_id, game in games.items():
if (version := game.get("version")) and version > shared.spec_version: if (version := game.get("version")) and version > shared.SPEC_VERSION:
continue continue
if game.get("removed"): if game.get("removed"):
@@ -318,9 +323,7 @@ class CartridgesWindow(Adw.ApplicationWindow):
self.sort_state = str(state).strip("'") self.sort_state = str(state).strip("'")
self.library.invalidate_sort() self.library.invalidate_sort()
Gio.Settings(schema_id="hu.kramo.Cartridges.State").set_string( shared.state_schema.set_string("sort-mode", self.sort_state)
"sort-mode", self.sort_state
)
def on_toggle_search_action(self, *_args): def on_toggle_search_action(self, *_args):
if self.stack.get_visible_child() == self.library_view: if self.stack.get_visible_child() == self.library_view:

View File

@@ -1,5 +1,5 @@
#define MyAppName "Cartridges" #define MyAppName "Cartridges"
#define MyAppVersion "1.5.2" #define MyAppVersion "1.5.6"
#define MyAppPublisher "kramo" #define MyAppPublisher "kramo"
#define MyAppURL "https://github.com/kra-mo/cartridges" #define MyAppURL "https://github.com/kra-mo/cartridges"
#define MyAppExeName "pythonw.exe" #define MyAppExeName "pythonw.exe"

View File

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 169 KiB