diff --git a/.github/workflows/flatpak-builder.yml b/.github/workflows/flatpak-builder.yml
index 0d13dc9..c868945 100644
--- a/.github/workflows/flatpak-builder.yml
+++ b/.github/workflows/flatpak-builder.yml
@@ -14,6 +14,6 @@ jobs:
- uses: actions/checkout@v3
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
- bundle: hu.kramo.Cartridges.flatpak
- manifest-path: hu.kramo.Cartridges.json
+ bundle: hu.kramo.Cartridges.Devel.flatpak
+ manifest-path: flatpak/hu.kramo.Cartridges.Devel.json
cache-key: flatpak-builder-${{ github.sha }}
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index 636492c..7e9f264 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -24,9 +24,9 @@ jobs:
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
- name: "Inno Setup"
- run: iscc ".\.windows\Cartridges.iss"
+ run: iscc ".\windows\Cartridges.iss"
- name: "Upload Artifact"
uses: actions/upload-artifact@v3
with:
name: "Installer"
- path: ".windows/Output/Cartridges Setup.exe"
\ No newline at end of file
+ path: "windows/Output/Cartridges Setup.exe"
\ No newline at end of file
diff --git a/README.md b/README.md
index cc6b323..ffc0fab 100644
--- a/README.md
+++ b/README.md
@@ -53,15 +53,12 @@ For updates and questions, join our [Discord server][discord-url]!
## Linux
-### Flathub (Recommended)
+### Flathub
+
+The app is available on Flathub.
-### 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
### From Releases
diff --git a/data/cartridges.gresource.xml b/data/cartridges.gresource.xml.in
similarity index 92%
rename from data/cartridges.gresource.xml
rename to data/cartridges.gresource.xml.in
index afa550b..203edea 100644
--- a/data/cartridges.gresource.xml
+++ b/data/cartridges.gresource.xml.in
@@ -1,6 +1,6 @@
-
+
gtk/window.ui
gtk/help-overlay.ui
gtk/game.ui
diff --git a/data/gtk/window.blp b/data/gtk/window.blp
index 2ff8f0f..46c90f2 100644
--- a/data/gtk/window.blp
+++ b/data/gtk/window.blp
@@ -18,7 +18,6 @@ Adw.StatusPage hidden_notice_no_results {
}
Adw.StatusPage notice_empty {
- icon-name: "hu.kramo.Cartridges-symbolic";
title: _("No Games");
description: _("Use the + button to add games.");
vexpand: true;
diff --git a/data/hu.kramo.Cartridges.desktop.in b/data/hu.kramo.Cartridges.desktop.in
index 531f739..643d02f 100644
--- a/data/hu.kramo.Cartridges.desktop.in
+++ b/data/hu.kramo.Cartridges.desktop.in
@@ -3,7 +3,7 @@ Name=Cartridges
GenericName=Game Launcher
Comment=Launch all your games
Exec=cartridges
-Icon=hu.kramo.Cartridges
+Icon=@APP_ID@
Terminal=false
Type=Application
Categories=GNOME;GTK;Game;
diff --git a/data/hu.kramo.Cartridges.gschema.xml b/data/hu.kramo.Cartridges.gschema.xml.in
similarity index 77%
rename from data/hu.kramo.Cartridges.gschema.xml
rename to data/hu.kramo.Cartridges.gschema.xml.in
index abb05bd..a2f04de 100644
--- a/data/hu.kramo.Cartridges.gschema.xml
+++ b/data/hu.kramo.Cartridges.gschema.xml.in
@@ -1,9 +1,9 @@
-
-
- false
-
+
+
+ false
+
false
@@ -46,19 +46,19 @@
"~/.var/app/com.heroicgameslauncher.hgl/config/heroic/"
-
- true
-
-
- true
-
-
- true
-
+
+ true
+
+
+ true
+
+
+ true
+
true
-
+
"~/.var/app/com.usebottles.bottles/data/bottles/"
@@ -79,8 +79,8 @@
false
-
-
+
+
1110
@@ -92,13 +92,13 @@
-
-
-
-
-
+
+
+
+
+
"a-z"
-
\ No newline at end of file
+
diff --git a/data/hu.kramo.Cartridges.metainfo.xml.in b/data/hu.kramo.Cartridges.metainfo.xml.in
index 53070dd..a318483 100644
--- a/data/hu.kramo.Cartridges.metainfo.xml.in
+++ b/data/hu.kramo.Cartridges.metainfo.xml.in
@@ -1,6 +1,6 @@
- hu.kramo.Cartridges.desktop
+ @APP_ID@.desktop
CC0-1.0
GPL-3.0-or-later
Cartridges
@@ -15,7 +15,7 @@
https://github.com/kra-mo/cartridges
https://github.com/kra-mo/cartridges/blob/main/CONTRIBUTING.md
kramo
- hu.kramo.Cartridges.desktop
+ @APP_ID@.desktop
pointing
keyboard
@@ -44,6 +44,15 @@
+
+
+
+ - Fixes a bug with custom install locations
+ - Fixes a potential bug with deleted Steam libraries
+ - Translations since 1.5
+
+
+
diff --git a/data/icons/hicolor/scalable/apps/hu.kramo.Cartridges.Devel.svg b/data/icons/hicolor/scalable/apps/hu.kramo.Cartridges.Devel.svg
new file mode 100644
index 0000000..0d54b23
--- /dev/null
+++ b/data/icons/hicolor/scalable/apps/hu.kramo.Cartridges.Devel.svg
@@ -0,0 +1,85 @@
+
+
diff --git a/data/icons/hicolor/symbolic/apps/hu.kramo.Cartridges.Devel-symbolic.svg b/data/icons/hicolor/symbolic/apps/hu.kramo.Cartridges.Devel-symbolic.svg
new file mode 100644
index 0000000..2f56644
--- /dev/null
+++ b/data/icons/hicolor/symbolic/apps/hu.kramo.Cartridges.Devel-symbolic.svg
@@ -0,0 +1,3 @@
+
diff --git a/data/icons/meson.build b/data/icons/meson.build
index 25f8a5c..3d42f8d 100644
--- a/data/icons/meson.build
+++ b/data/icons/meson.build
@@ -1,13 +1,11 @@
-application_id = 'hu.kramo.Cartridges'
-
scalable_dir = join_paths('hicolor', 'scalable', 'apps')
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)
)
symbolic_dir = join_paths('hicolor', 'symbolic', 'apps')
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)
)
diff --git a/data/meson.build b/data/meson.build
index df0f8b8..071fb69 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -11,7 +11,11 @@ blueprints = custom_target('blueprints',
)
gnome.compile_resources('cartridges',
- 'cartridges.gresource.xml',
+ configure_file(
+ input: 'cartridges.gresource.xml.in',
+ output: 'cartridges.gresource.xml',
+ configuration: conf
+ ),
gresource_bundle: true,
install: true,
install_dir: pkgdatadir,
@@ -19,8 +23,12 @@ gnome.compile_resources('cartridges',
)
desktop_file = i18n.merge_file(
- input: 'hu.kramo.Cartridges.desktop.in',
- output: 'hu.kramo.Cartridges.desktop',
+ input: configure_file(
+ input: 'hu.kramo.Cartridges.desktop.in',
+ output: app_id + '.desktop.in',
+ configuration: conf
+ ),
+ output: app_id + '.desktop',
type: 'desktop',
po_dir: '../po',
install: true,
@@ -33,8 +41,12 @@ if desktop_utils.found()
endif
appstream_file = i18n.merge_file(
- input: 'hu.kramo.Cartridges.metainfo.xml.in',
- output: 'hu.kramo.Cartridges.metainfo.xml',
+ input: configure_file(
+ input: 'hu.kramo.Cartridges.metainfo.xml.in',
+ output: app_id + '.metainfo.xml.in',
+ configuration: conf
+ ),
+ output: app_id + '.metainfo.xml',
po_dir: '../po',
install: true,
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])
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')
)
diff --git a/hu.kramo.Cartridges.json b/flatpak/hu.kramo.Cartridges.Devel.json
similarity index 97%
rename from hu.kramo.Cartridges.json
rename to flatpak/hu.kramo.Cartridges.Devel.json
index fff931d..719deed 100644
--- a/hu.kramo.Cartridges.json
+++ b/flatpak/hu.kramo.Cartridges.Devel.json
@@ -1,5 +1,5 @@
{
- "id" : "hu.kramo.Cartridges",
+ "id" : "hu.kramo.Cartridges.Devel",
"runtime" : "org.gnome.Platform",
"runtime-version" : "44",
"sdk" : "org.gnome.Sdk",
@@ -117,10 +117,13 @@
"name" : "cartridges",
"builddir" : true,
"buildsystem" : "meson",
+ "config-opts": [
+ "-Dprofile=development"
+ ],
"sources" : [
{
"type" : "dir",
- "path" : "."
+ "path" : ".."
}
]
}
diff --git a/meson.build b/meson.build
index c123352..2a65b03 100644
--- a/meson.build
+++ b/meson.build
@@ -1,14 +1,32 @@
project('cartridges',
- version: '1.5',
+ version: '1.5.4',
meson_version: '>= 0.59.0',
default_options: [ 'warning_level=2', 'werror=false', ],
)
i18n = import('i18n')
gnome = import('gnome')
+python = import('python')
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('src')
subdir('po')
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 0000000..5026cd2
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,9 @@
+option(
+ 'profile',
+ type: 'combo',
+ choices: [
+ 'release',
+ 'development',
+ ],
+ value: 'release'
+)
diff --git a/po/LINGUAS b/po/LINGUAS
index b320eed..c85c56b 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -17,3 +17,4 @@ pt_BR
fa
pl
sv
+tr
diff --git a/po/POTFILES b/po/POTFILES
index fec8a42..271d33c 100644
--- a/po/POTFILES
+++ b/po/POTFILES
@@ -1,7 +1,8 @@
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/gtk/details_window.blp
data/gtk/game.blp
data/gtk/help-overlay.blp
data/gtk/preferences.blp
diff --git a/po/ar.po b/po/ar.po
index d359b81..e5ea6f3 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: cartridges\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-23 07:30+0200\n"
-"PO-Revision-Date: 2023-04-14 12:29+0000\n"
+"POT-Creation-Date: 2023-05-25 17:48+0200\n"
+"PO-Revision-Date: 2023-05-26 18:10+0000\n"
"Last-Translator: Ali Aljishi \n"
"Language-Team: Arabic \n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
-"X-Generator: Weblate 4.17-dev\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
@@ -37,7 +37,7 @@ msgstr "شغِّل كلَّ ألعابك"
#: data/hu.kramo.Cartridges.desktop.in:11
msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
-msgstr ""
+msgstr "لعب;مشغل;ستيم;لوترس;هروك;قوارير;إتش;هيرويك;بوتلز;"
#: data/hu.kramo.Cartridges.metainfo.xml.in:9
msgid ""
@@ -54,7 +54,7 @@ msgstr ""
msgid "Library"
msgstr "المكتبة"
-#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:65
+#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:66
msgid "Edit Game Details"
msgstr "حرِّر تفاصيل اللعبة"
@@ -68,15 +68,52 @@ msgstr "تفاصيل اللعبة"
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:202
+#: data/gtk/game.blp:107 src/window.py:205
msgid "Hide"
msgstr "أخفِ"
@@ -85,7 +122,7 @@ msgstr "أخفِ"
msgid "Remove"
msgstr "أزل"
-#: data/gtk/game.blp:126 src/window.py:204
+#: data/gtk/game.blp:126 src/window.py:207
msgid "Unhide"
msgstr "اكشف"
@@ -110,7 +147,7 @@ msgstr "أظهر التفضيلات"
msgid "Shortcuts"
msgstr "الاختصارات"
-#: data/gtk/help-overlay.blp:34 src/game.py:167 src/preferences.py:98
+#: data/gtk/help-overlay.blp:34 src/game.py:169 src/preferences.py:98
msgid "Undo"
msgstr "تراجع"
@@ -154,7 +191,7 @@ msgstr "تبدأ صورة الغلاف اللعبة"
msgid "Swaps the behavior of the cover image and the play button"
msgstr "يبدِّل سلوك صورة الغلاف وزرِّ «العب»"
-#: data/gtk/preferences.blp:36 src/details_window.py:79
+#: data/gtk/preferences.blp:36 src/details_window.py:84
msgid "Images"
msgstr "الصور"
@@ -359,61 +396,61 @@ msgstr "عن «خراطيش»"
msgid "translator_credits"
msgstr "Ali Aljishi "
-#: src/window.py:184
+#: src/window.py:187
msgid "Today"
msgstr "اليوم"
-#: src/window.py:186
+#: src/window.py:189
msgid "Yesterday"
msgstr "أمس"
#. The variable is the date when the game was added
-#: src/window.py:225
+#: src/window.py:228
msgid "Added: {}"
msgstr "أضيفت في: {}"
-#: src/window.py:228
+#: src/window.py:231
msgid "Never"
msgstr "أبدًا"
#. The variable is the date when the game was last played
-#: src/window.py:232
+#: src/window.py:235
msgid "Last played: {}"
msgstr "لُعبت آخر مرَّة في: {}"
-#: src/details_window.py:70
+#: src/details_window.py:75
msgid "Apply"
msgstr "طبِّق"
-#: src/details_window.py:76
+#: src/details_window.py:81
msgid "Add New Game"
msgstr "أضف لعبةً جديدةً"
-#: src/details_window.py:77
+#: src/details_window.py:82
msgid "Confirm"
msgstr "أكِّد"
#. Translate this string as you would translate "file"
-#: src/details_window.py:89
+#: src/details_window.py:94
msgid "file.txt"
msgstr "ملف.txt"
#. As in software
-#: src/details_window.py:91
+#: src/details_window.py:96
msgid "program"
msgstr "البرنامج"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:96 src/details_window.py:98
+#: 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:102 src/details_window.py:104
+#: src/details_window.py:107 src/details_window.py:109
msgid "/path/to/{}"
msgstr "/المسار/إلى/{}"
-#: src/details_window.py:108
+#: src/details_window.py:113
msgid ""
"To launch the executable \"{}\", use the command:\n"
"\n"
@@ -435,19 +472,19 @@ msgstr ""
"\n"
"ولا تنسَ إحاطة المسار بعلامتي تنصيص مزدوجتين حالما تضمَّن مسافات!"
-#: src/details_window.py:139 src/details_window.py:145
+#: src/details_window.py:143 src/details_window.py:149
msgid "Couldn't Add Game"
msgstr "تعذَّرت إضافة اللعبة"
-#: src/details_window.py:139 src/details_window.py:172
+#: src/details_window.py:143 src/details_window.py:176
msgid "Game title cannot be empty."
msgstr "لا يجوز كون عنوان اللعبة فارغًا."
-#: src/details_window.py:145 src/details_window.py:180
+#: src/details_window.py:149 src/details_window.py:184
msgid "Executable cannot be empty."
msgstr "لا يجوز كون ملفِّ التنفيذ فارغًا."
-#: src/details_window.py:171 src/details_window.py:179
+#: src/details_window.py:175 src/details_window.py:183
msgid "Couldn't Apply Preferences"
msgstr "تعذَّر تطبيق التفضيلات"
@@ -519,23 +556,17 @@ msgid "Importing Covers…"
msgstr "تُستورد الغُلُف…"
#: src/utils/importer.py:91
-#, fuzzy
-#| msgid "No Games Found"
msgid "No new games found"
-msgstr "لم يُعثر على ألعاب"
+msgstr "لم يُعثر على ألعاب جديدة"
#: src/utils/importer.py:98
-#, fuzzy
-#| msgid "Game Imported"
msgid "1 game imported"
-msgstr "اُستوردت اللعبة"
+msgstr "اُستوردت لعبة واحدة"
#. The variable is the number of games
#: src/utils/importer.py:104
-#, fuzzy
-#| msgid "Games Imported"
msgid "{} games imported"
-msgstr "اُستوردت الألعاب"
+msgstr "اُستوردت {} لعبة"
#: src/utils/importer.py:121 src/utils/steamgriddb.py:112
msgid "Couldn't Connect to SteamGridDB"
@@ -559,24 +590,6 @@ msgstr "تعذَّر الاتصال ب SteamGridDB"
#~ msgid "Details"
#~ msgstr "التفاصيل"
-#~ msgid "The title of the game"
-#~ msgstr "عنوان اللعبة"
-
-#~ msgid "Developer"
-#~ msgstr "المطوِّر"
-
-#~ msgid "The developer or publisher (optional)"
-#~ msgstr "المطوِّر أو الناشر (اختياري)"
-
-#~ msgid "Executable"
-#~ msgstr "ملفُّ التنفيذ"
-
-#~ msgid "File to open or command to run when launching the game"
-#~ msgstr "الملفُّ المفتوح أو الأمر المشغَّل عند بدء اللعبة"
-
-#~ msgid "Cancel"
-#~ msgstr "ألغِ"
-
#~ msgid "No new games were found on your system."
#~ msgstr "لم يُعثر على ألعاب جديدة في نظامك."
@@ -611,19 +624,16 @@ msgstr "تعذَّر الاتصال ب SteamGridDB"
#~ msgstr "/path/to/{file_name}"
#, fuzzy
-#~| msgid "General"
#~ msgctxt "shortcuts window"
#~ msgid "General"
#~ msgstr "عام"
#, fuzzy
-#~| msgid "Search"
#~ msgctxt "shortcuts window"
#~ msgid "Search"
#~ msgstr "ابحث"
#, fuzzy
-#~| msgid "Undo"
#~ msgctxt "shortcuts window"
#~ msgid "Undo"
#~ msgstr "تراجع"
@@ -672,3 +682,9 @@ msgstr "تعذَّر الاتصال ب SteamGridDB"
#~ msgid "Talking to Steam"
#~ msgstr "يُتواصل مع ستيم"
+
+#~ msgid "Game Imported"
+#~ msgstr "اُستوردت اللعبة"
+
+#~ msgid "Games Imported"
+#~ msgstr "اُستوردت الألعاب"
diff --git a/po/cartridges.pot b/po/cartridges.pot
index 11a5c13..992daec 100644
--- a/po/cartridges.pot
+++ b/po/cartridges.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Cartridges\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-23 07:30+0200\n"
+"POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -48,7 +48,7 @@ msgstr ""
msgid "Library"
msgstr ""
-#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:65
+#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:66
msgid "Edit Game Details"
msgstr ""
@@ -62,15 +62,52 @@ msgstr ""
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:202
+#: data/gtk/game.blp:107 src/window.py:205
msgid "Hide"
msgstr ""
@@ -79,7 +116,7 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: data/gtk/game.blp:126 src/window.py:204
+#: data/gtk/game.blp:126 src/window.py:207
msgid "Unhide"
msgstr ""
@@ -104,7 +141,7 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
-#: data/gtk/help-overlay.blp:34 src/game.py:167 src/preferences.py:98
+#: data/gtk/help-overlay.blp:34 src/game.py:169 src/preferences.py:98
msgid "Undo"
msgstr ""
@@ -148,7 +185,7 @@ msgstr ""
msgid "Swaps the behavior of the cover image and the play button"
msgstr ""
-#: data/gtk/preferences.blp:36 src/details_window.py:79
+#: data/gtk/preferences.blp:36 src/details_window.py:84
msgid "Images"
msgstr ""
@@ -353,61 +390,61 @@ msgstr ""
msgid "translator_credits"
msgstr ""
-#: src/window.py:184
+#: src/window.py:187
msgid "Today"
msgstr ""
-#: src/window.py:186
+#: src/window.py:189
msgid "Yesterday"
msgstr ""
#. The variable is the date when the game was added
-#: src/window.py:225
+#: src/window.py:228
msgid "Added: {}"
msgstr ""
-#: src/window.py:228
+#: src/window.py:231
msgid "Never"
msgstr ""
#. The variable is the date when the game was last played
-#: src/window.py:232
+#: src/window.py:235
msgid "Last played: {}"
msgstr ""
-#: src/details_window.py:70
+#: src/details_window.py:75
msgid "Apply"
msgstr ""
-#: src/details_window.py:76
+#: src/details_window.py:81
msgid "Add New Game"
msgstr ""
-#: src/details_window.py:77
+#: src/details_window.py:82
msgid "Confirm"
msgstr ""
#. Translate this string as you would translate "file"
-#: src/details_window.py:89
+#: src/details_window.py:94
msgid "file.txt"
msgstr ""
#. As in software
-#: src/details_window.py:91
+#: src/details_window.py:96
msgid "program"
msgstr ""
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:96 src/details_window.py:98
+#: src/details_window.py:101 src/details_window.py:103
msgid "C:\\path\\to\\{}"
msgstr ""
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:102 src/details_window.py:104
+#: src/details_window.py:107 src/details_window.py:109
msgid "/path/to/{}"
msgstr ""
-#: src/details_window.py:108
+#: src/details_window.py:113
msgid ""
"To launch the executable \"{}\", use the command:\n"
"\n"
@@ -420,19 +457,19 @@ msgid ""
"If the path contains spaces, make sure to wrap it in double quotes!"
msgstr ""
-#: src/details_window.py:139 src/details_window.py:145
+#: src/details_window.py:143 src/details_window.py:149
msgid "Couldn't Add Game"
msgstr ""
-#: src/details_window.py:139 src/details_window.py:172
+#: src/details_window.py:143 src/details_window.py:176
msgid "Game title cannot be empty."
msgstr ""
-#: src/details_window.py:145 src/details_window.py:180
+#: src/details_window.py:149 src/details_window.py:184
msgid "Executable cannot be empty."
msgstr ""
-#: src/details_window.py:171 src/details_window.py:179
+#: src/details_window.py:175 src/details_window.py:183
msgid "Couldn't Apply Preferences"
msgstr ""
diff --git a/po/de.po b/po/de.po
index 4fa90e7..90a42dc 100644
--- a/po/de.po
+++ b/po/de.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Cartridges\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-23 07:30+0200\n"
+"POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: 2023-04-17 17:20+0000\n"
"Last-Translator: Ettore Atalan \n"
"Language-Team: German \n"
"Language-Team: Spanish "
-#: src/window.py:184
+#: src/window.py:187
msgid "Today"
msgstr "Hoy"
-#: src/window.py:186
+#: src/window.py:189
msgid "Yesterday"
msgstr "Ayer"
#. The variable is the date when the game was added
-#: src/window.py:225
+#: src/window.py:228
msgid "Added: {}"
msgstr "Añadido: {}"
-#: src/window.py:228
+#: src/window.py:231
msgid "Never"
msgstr "Nunca"
#. The variable is the date when the game was last played
-#: src/window.py:232
+#: src/window.py:235
msgid "Last played: {}"
msgstr "Último jugado: {}"
-#: src/details_window.py:70
+#: src/details_window.py:75
msgid "Apply"
msgstr "Aplicar"
-#: src/details_window.py:76
+#: src/details_window.py:81
msgid "Add New Game"
msgstr "Añadir juego nuevo"
-#: src/details_window.py:77
+#: src/details_window.py:82
msgid "Confirm"
msgstr "Confirmar"
#. Translate this string as you would translate "file"
-#: src/details_window.py:89
+#: src/details_window.py:94
msgid "file.txt"
msgstr "archivo.txt"
#. As in software
-#: src/details_window.py:91
+#: src/details_window.py:96
msgid "program"
msgstr "programa"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:96 src/details_window.py:98
+#: src/details_window.py:101 src/details_window.py:103
msgid "C:\\path\\to\\{}"
msgstr "C:\\ruta\\hasta\\{}"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:102 src/details_window.py:104
+#: src/details_window.py:107 src/details_window.py:109
msgid "/path/to/{}"
msgstr "/ruta/hasta/{}"
-#: src/details_window.py:108
+#: src/details_window.py:113
msgid ""
"To launch the executable \"{}\", use the command:\n"
"\n"
@@ -437,19 +474,19 @@ msgstr ""
"\n"
"Si la ruta contiene espacios, ¡asegúrese de entrecomillarla!"
-#: src/details_window.py:139 src/details_window.py:145
+#: src/details_window.py:143 src/details_window.py:149
msgid "Couldn't Add Game"
msgstr "No se puede añadir el juego"
-#: src/details_window.py:139 src/details_window.py:172
+#: src/details_window.py:143 src/details_window.py:176
msgid "Game title cannot be empty."
msgstr "El título del juego no puede estar vacío."
-#: src/details_window.py:145 src/details_window.py:180
+#: src/details_window.py:149 src/details_window.py:184
msgid "Executable cannot be empty."
msgstr "El ejecutable no puede estar vacío."
-#: src/details_window.py:171 src/details_window.py:179
+#: src/details_window.py:175 src/details_window.py:183
msgid "Couldn't Apply Preferences"
msgstr "No se pudieron aplicar las preferencias"
@@ -562,24 +599,6 @@ msgstr "No se puede conectar a SteamGridDB"
#~ msgid "Details"
#~ msgstr "Detalles"
-#~ msgid "The title of the game"
-#~ msgstr "El título del juego"
-
-#~ msgid "Developer"
-#~ msgstr "Desarrollador"
-
-#~ msgid "The developer or publisher (optional)"
-#~ msgstr "El desarrollador o editor (opcional)"
-
-#~ msgid "Executable"
-#~ msgstr "Ejecutable"
-
-#~ msgid "File to open or command to run when launching the game"
-#~ msgstr "Archivo a abrir o comando a ejecutar al iniciar el juego"
-
-#~ msgid "Cancel"
-#~ msgstr "Cancelar"
-
#~ msgid "No new games were found on your system."
#~ msgstr "No se encontraron nuevos juegos en tú sistema."
diff --git a/po/fa.po b/po/fa.po
index c841382..77faf13 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Cartridges\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-23 07:30+0200\n"
+"POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: 2023-04-22 10:48+0000\n"
"Last-Translator: سید حسین موسوی فرد \n"
"Language-Team: Persian \n"
"Language-Team: Finnish \n"
+"POT-Creation-Date: 2023-05-25 17:48+0200\n"
+"PO-Revision-Date: 2023-05-24 20:27+0000\n"
+"Last-Translator: rene-coty \n"
"Language-Team: French \n"
"Language: fr\n"
@@ -39,7 +39,7 @@ msgstr "Lancez tous vos jeux"
#: data/hu.kramo.Cartridges.desktop.in:11
msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
-msgstr ""
+msgstr "gaming;jeux;lanceur;steam;lutris;heroic;bouteilles;itch;"
#: data/hu.kramo.Cartridges.metainfo.xml.in:9
msgid ""
@@ -57,7 +57,7 @@ msgstr ""
msgid "Library"
msgstr "Bibliothèque"
-#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:65
+#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:66
msgid "Edit Game Details"
msgstr "Modifier les détails du jeu"
@@ -71,15 +71,52 @@ msgstr "Détails du jeu"
msgid "Preferences"
msgstr "Préférences"
+#: data/gtk/details_window.blp:25
+msgid "Cancel"
+msgstr "Annuler"
+
+#: 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 "Titre"
+#: data/gtk/details_window.blp:102
+msgid "The title of the game"
+msgstr "Le titre du jeu"
+
+#: data/gtk/details_window.blp:112 data/gtk/details_window.blp:117
+msgid "Developer"
+msgstr "Développeur"
+
+#: data/gtk/details_window.blp:113
+msgid "The developer or publisher (optional)"
+msgstr "Le développeur ou l’éditeur (facultatif)"
+
+#: data/gtk/details_window.blp:123 data/gtk/details_window.blp:153
+msgid "Executable"
+msgstr "Exécutable"
+
+#: data/gtk/details_window.blp:124
+msgid "File to open or command to run when launching the game"
+msgstr "Fichier à ouvrir ou commande à exécuter au lancement du jeu"
+
+#: 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 "Modifier"
-#: data/gtk/game.blp:107 src/window.py:202
+#: data/gtk/game.blp:107 src/window.py:205
msgid "Hide"
msgstr "Masquer"
@@ -88,7 +125,7 @@ msgstr "Masquer"
msgid "Remove"
msgstr "Supprimer"
-#: data/gtk/game.blp:126 src/window.py:204
+#: data/gtk/game.blp:126 src/window.py:207
msgid "Unhide"
msgstr "Ne plus masquer"
@@ -113,7 +150,7 @@ msgstr "Afficher les préférences"
msgid "Shortcuts"
msgstr "Raccourcis"
-#: data/gtk/help-overlay.blp:34 src/game.py:167 src/preferences.py:98
+#: data/gtk/help-overlay.blp:34 src/game.py:169 src/preferences.py:98
msgid "Undo"
msgstr "Annuler"
@@ -158,7 +195,7 @@ msgid "Swaps the behavior of the cover image and the play button"
msgstr ""
"Intervertit le comportement de l’image de la pochette et du bouton de lecture"
-#: data/gtk/preferences.blp:36 src/details_window.py:79
+#: data/gtk/preferences.blp:36 src/details_window.py:84
msgid "Images"
msgstr "Images"
@@ -365,61 +402,61 @@ msgstr "À propos de Cartridges"
msgid "translator_credits"
msgstr "Irénée Thirion"
-#: src/window.py:184
+#: src/window.py:187
msgid "Today"
msgstr "Aujourd’hui"
-#: src/window.py:186
+#: src/window.py:189
msgid "Yesterday"
msgstr "Hier"
#. The variable is the date when the game was added
-#: src/window.py:225
+#: src/window.py:228
msgid "Added: {}"
msgstr "Ajouté : {}"
-#: src/window.py:228
+#: src/window.py:231
msgid "Never"
msgstr "Jamais"
#. The variable is the date when the game was last played
-#: src/window.py:232
+#: src/window.py:235
msgid "Last played: {}"
msgstr "Dernière session : {}"
-#: src/details_window.py:70
+#: src/details_window.py:75
msgid "Apply"
msgstr "Appliquer"
-#: src/details_window.py:76
+#: src/details_window.py:81
msgid "Add New Game"
msgstr "Ajouter un nouveau jeu"
-#: src/details_window.py:77
+#: src/details_window.py:82
msgid "Confirm"
msgstr "Confirmer"
#. Translate this string as you would translate "file"
-#: src/details_window.py:89
+#: src/details_window.py:94
msgid "file.txt"
msgstr "fichier.txt"
#. As in software
-#: src/details_window.py:91
+#: src/details_window.py:96
msgid "program"
msgstr "programme"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:96 src/details_window.py:98
+#: src/details_window.py:101 src/details_window.py:103
msgid "C:\\path\\to\\{}"
msgstr "C:\\chemin\\vers\\{}"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:102 src/details_window.py:104
+#: src/details_window.py:107 src/details_window.py:109
msgid "/path/to/{}"
msgstr "/chemin/vers/{}"
-#: src/details_window.py:108
+#: src/details_window.py:113
msgid ""
"To launch the executable \"{}\", use the command:\n"
"\n"
@@ -443,19 +480,19 @@ msgstr ""
"Si le chemin d'accès contient des espaces, veillez à le mettre entre "
"guillemets !"
-#: src/details_window.py:139 src/details_window.py:145
+#: src/details_window.py:143 src/details_window.py:149
msgid "Couldn't Add Game"
msgstr "Impossible d’ajouter le jeu"
-#: src/details_window.py:139 src/details_window.py:172
+#: src/details_window.py:143 src/details_window.py:176
msgid "Game title cannot be empty."
msgstr "Le titre du jeu ne peut pas être vide."
-#: src/details_window.py:145 src/details_window.py:180
+#: src/details_window.py:149 src/details_window.py:184
msgid "Executable cannot be empty."
msgstr "L’exécutable ne peut pas être vide."
-#: src/details_window.py:171 src/details_window.py:179
+#: src/details_window.py:175 src/details_window.py:183
msgid "Couldn't Apply Preferences"
msgstr "Impossible d’appliquer les préférences"
@@ -528,23 +565,17 @@ msgid "Importing Covers…"
msgstr "Importation des pochettes des jeux…"
#: src/utils/importer.py:91
-#, fuzzy
-#| msgid "No Games Found"
msgid "No new games found"
-msgstr "Aucun jeu trouvé"
+msgstr "Aucun nouveau jeu trouvé"
#: src/utils/importer.py:98
-#, fuzzy
-#| msgid "Game Imported"
msgid "1 game imported"
-msgstr "Jeu importé"
+msgstr "1 jeu importé"
#. The variable is the number of games
#: src/utils/importer.py:104
-#, fuzzy
-#| msgid "Games Imported"
msgid "{} games imported"
-msgstr "Jeux importés"
+msgstr "{} jeux importés"
#: src/utils/importer.py:121 src/utils/steamgriddb.py:112
msgid "Couldn't Connect to SteamGridDB"
@@ -569,24 +600,6 @@ msgstr "Impossible de se connecter à SteamGridDB"
#~ msgid "Details"
#~ msgstr "Détails"
-#~ msgid "The title of the game"
-#~ msgstr "Le titre du jeu"
-
-#~ msgid "Developer"
-#~ msgstr "Développeur"
-
-#~ msgid "The developer or publisher (optional)"
-#~ msgstr "Le développeur ou l’éditeur (facultatif)"
-
-#~ msgid "Executable"
-#~ msgstr "Exécutable"
-
-#~ msgid "File to open or command to run when launching the game"
-#~ msgstr "Fichier à ouvrir ou commande à exécuter au lancement du jeu"
-
-#~ msgid "Cancel"
-#~ msgstr "Annuler"
-
#~ msgid "No new games were found on your system."
#~ msgstr "Aucun nouveau jeu n’a été trouvé sur votre système."
diff --git a/po/hu.po b/po/hu.po
index f353a3c..3175544 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-23 07:30+0200\n"
-"PO-Revision-Date: 2023-04-11 21:31+0000\n"
+"POT-Creation-Date: 2023-05-25 17:48+0200\n"
+"PO-Revision-Date: 2023-05-26 18:10+0000\n"
"Last-Translator: kramo \n"
"Language-Team: Hungarian \n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.17-dev\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
@@ -37,7 +37,7 @@ msgstr "Indítsa el az összes játékát"
#: data/hu.kramo.Cartridges.desktop.in:11
msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
-msgstr ""
+msgstr "játék;indító;steam;lutris;heroic;palackok;itch;"
#: data/hu.kramo.Cartridges.metainfo.xml.in:9
msgid ""
@@ -54,7 +54,7 @@ msgstr ""
msgid "Library"
msgstr "Könyvtár"
-#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:65
+#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:66
msgid "Edit Game Details"
msgstr "Játék Szerkesztése"
@@ -68,15 +68,52 @@ msgstr "Játék Tulajdonságai"
msgid "Preferences"
msgstr "Beállítások"
+#: data/gtk/details_window.blp:25
+msgid "Cancel"
+msgstr "Mégse"
+
+#: data/gtk/details_window.blp:57
+msgid "New Cover"
+msgstr "Új borító"
+
+#: data/gtk/details_window.blp:75
+msgid "Delete Cover"
+msgstr "Borító törlése"
+
+#: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106
#: data/gtk/game.blp:80
msgid "Title"
msgstr "Cím"
+#: data/gtk/details_window.blp:102
+msgid "The title of the game"
+msgstr "A játék címe"
+
+#: data/gtk/details_window.blp:112 data/gtk/details_window.blp:117
+msgid "Developer"
+msgstr "Fejlesztő"
+
+#: data/gtk/details_window.blp:113
+msgid "The developer or publisher (optional)"
+msgstr "A fejlesztő vagy kiadó (nem kötelező)"
+
+#: data/gtk/details_window.blp:123 data/gtk/details_window.blp:153
+msgid "Executable"
+msgstr "Program"
+
+#: data/gtk/details_window.blp:124
+msgid "File to open or command to run when launching the game"
+msgstr "Fájl megnyitása vagy parancs futtatása a játék indításakor"
+
+#: data/gtk/details_window.blp:130
+msgid "More Info"
+msgstr "Több infó"
+
#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196
msgid "Edit"
msgstr "Szerkesztés"
-#: data/gtk/game.blp:107 src/window.py:202
+#: data/gtk/game.blp:107 src/window.py:205
msgid "Hide"
msgstr "Elrejtés"
@@ -85,7 +122,7 @@ msgstr "Elrejtés"
msgid "Remove"
msgstr "Eltávolítás"
-#: data/gtk/game.blp:126 src/window.py:204
+#: data/gtk/game.blp:126 src/window.py:207
msgid "Unhide"
msgstr "Elrejtés visszavonása"
@@ -110,7 +147,7 @@ msgstr "Beállítások megjelenítése"
msgid "Shortcuts"
msgstr "Gyorsbillentyűk"
-#: data/gtk/help-overlay.blp:34 src/game.py:167 src/preferences.py:98
+#: data/gtk/help-overlay.blp:34 src/game.py:169 src/preferences.py:98
msgid "Undo"
msgstr "Visszavonás"
@@ -154,7 +191,7 @@ msgstr "A borítókép indítja el a játékot"
msgid "Swaps the behavior of the cover image and the play button"
msgstr "Felcseréli a \"Játék\" gomb és a borítókép funkcióját"
-#: data/gtk/preferences.blp:36 src/details_window.py:79
+#: data/gtk/preferences.blp:36 src/details_window.py:84
msgid "Images"
msgstr "Képek"
@@ -359,61 +396,61 @@ msgstr "A Kazetták névjegye"
msgid "translator_credits"
msgstr "kramo https://kramo.hu"
-#: src/window.py:184
+#: src/window.py:187
msgid "Today"
msgstr "Ma"
-#: src/window.py:186
+#: src/window.py:189
msgid "Yesterday"
msgstr "Tegnap"
#. The variable is the date when the game was added
-#: src/window.py:225
+#: src/window.py:228
msgid "Added: {}"
msgstr "Hozzáadva: {}"
-#: src/window.py:228
+#: src/window.py:231
msgid "Never"
msgstr "Soha"
#. The variable is the date when the game was last played
-#: src/window.py:232
+#: src/window.py:235
msgid "Last played: {}"
msgstr "Legutóbbi játékmenet: {}"
-#: src/details_window.py:70
+#: src/details_window.py:75
msgid "Apply"
msgstr "Alkalmazás"
-#: src/details_window.py:76
+#: src/details_window.py:81
msgid "Add New Game"
msgstr "Új játék hozzáadása"
-#: src/details_window.py:77
+#: src/details_window.py:82
msgid "Confirm"
msgstr "Megerősítés"
#. Translate this string as you would translate "file"
-#: src/details_window.py:89
+#: src/details_window.py:94
msgid "file.txt"
msgstr "fájl.txt"
#. As in software
-#: src/details_window.py:91
+#: src/details_window.py:96
msgid "program"
msgstr "program"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:96 src/details_window.py:98
+#: src/details_window.py:101 src/details_window.py:103
msgid "C:\\path\\to\\{}"
msgstr "C:\\útvonal\\ide\\{}"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:102 src/details_window.py:104
+#: src/details_window.py:107 src/details_window.py:109
msgid "/path/to/{}"
msgstr "/útvonal/ide/{}"
-#: src/details_window.py:108
+#: src/details_window.py:113
msgid ""
"To launch the executable \"{}\", use the command:\n"
"\n"
@@ -436,19 +473,19 @@ msgstr ""
"\n"
"Ha az elérési útvonalban szóközök vannak, rakja az útvonalat idézőjelek közé!"
-#: src/details_window.py:139 src/details_window.py:145
+#: src/details_window.py:143 src/details_window.py:149
msgid "Couldn't Add Game"
msgstr "Nem lehet hozzáadni a játékot"
-#: src/details_window.py:139 src/details_window.py:172
+#: src/details_window.py:143 src/details_window.py:176
msgid "Game title cannot be empty."
msgstr "A cím nem lehet üres."
-#: src/details_window.py:145 src/details_window.py:180
+#: src/details_window.py:149 src/details_window.py:184
msgid "Executable cannot be empty."
msgstr "A program nem lehet üres."
-#: src/details_window.py:171 src/details_window.py:179
+#: src/details_window.py:175 src/details_window.py:183
msgid "Couldn't Apply Preferences"
msgstr "Nem lehet menteni a beállításokat"
@@ -521,23 +558,17 @@ msgid "Importing Covers…"
msgstr "Borítóképek importálása folyamatban…"
#: src/utils/importer.py:91
-#, fuzzy
-#| msgid "No Games Found"
msgid "No new games found"
-msgstr "Nem találhatóak játékok"
+msgstr "Nem találhatóak új játékok"
#: src/utils/importer.py:98
-#, fuzzy
-#| msgid "Game Imported"
msgid "1 game imported"
-msgstr "Játékok importálva"
+msgstr "1 játék importálva"
#. The variable is the number of games
#: src/utils/importer.py:104
-#, fuzzy
-#| msgid "Games Imported"
msgid "{} games imported"
-msgstr "Játékok importálva"
+msgstr "{} játék importálva"
#: src/utils/importer.py:121 src/utils/steamgriddb.py:112
msgid "Couldn't Connect to SteamGridDB"
@@ -561,24 +592,6 @@ msgstr "Nem lehet csatlakozni a SteamGridDB-hez"
#~ msgid "Details"
#~ msgstr "Tulajdonságok"
-#~ msgid "The title of the game"
-#~ msgstr "A játék címe"
-
-#~ msgid "Developer"
-#~ msgstr "Fejlesztő"
-
-#~ msgid "The developer or publisher (optional)"
-#~ msgstr "A fejlesztő vagy kiadó (nem kötelező)"
-
-#~ msgid "Executable"
-#~ msgstr "Program"
-
-#~ msgid "File to open or command to run when launching the game"
-#~ msgstr "Fájl megnyitása vagy parancs futtatása a játék indításakor"
-
-#~ msgid "Cancel"
-#~ msgstr "Mégse"
-
#~ msgid "No new games were found on your system."
#~ msgstr "Nem találhatóak új játékok a rendszerén."
@@ -701,3 +714,9 @@ msgstr "Nem lehet csatlakozni a SteamGridDB-hez"
#~ msgid "Set Steam Location"
#~ msgstr "Steam mappa kiválasztása"
+
+#~ msgid "Game Imported"
+#~ msgstr "Játékok importálva"
+
+#~ msgid "Games Imported"
+#~ msgstr "Játékok importálva"
diff --git a/po/it.po b/po/it.po
index f823343..073013a 100644
--- a/po/it.po
+++ b/po/it.po
@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: cartridges\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-23 07:30+0200\n"
-"PO-Revision-Date: 2023-04-14 12:29+0000\n"
-"Last-Translator: Alessandro Iepure \n"
+"POT-Creation-Date: 2023-05-25 17:48+0200\n"
+"PO-Revision-Date: 2023-05-26 18:10+0000\n"
+"Last-Translator: albanobattistella \n"
"Language-Team: Italian \n"
"Language: it\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.17-dev\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
@@ -37,7 +37,7 @@ msgstr "Avvia tutti i tuoi giochi"
#: data/hu.kramo.Cartridges.desktop.in:11
msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
-msgstr ""
+msgstr "gioco;launcher;steam;lutris;heroic;bottles;itch;"
#: data/hu.kramo.Cartridges.metainfo.xml.in:9
msgid ""
@@ -55,7 +55,7 @@ msgstr ""
msgid "Library"
msgstr "Libreria"
-#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:65
+#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:66
msgid "Edit Game Details"
msgstr "Modifica dettagli del gioco"
@@ -69,15 +69,52 @@ msgstr "Dettagli del gioco"
msgid "Preferences"
msgstr "Preferenze"
+#: data/gtk/details_window.blp:25
+msgid "Cancel"
+msgstr "Annulla"
+
+#: data/gtk/details_window.blp:57
+msgid "New Cover"
+msgstr "Nuova copertina"
+
+#: data/gtk/details_window.blp:75
+msgid "Delete Cover"
+msgstr "Elimina copertina"
+
+#: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106
#: data/gtk/game.blp:80
msgid "Title"
msgstr "Titolo"
+#: data/gtk/details_window.blp:102
+msgid "The title of the game"
+msgstr "Titolo del gioco"
+
+#: data/gtk/details_window.blp:112 data/gtk/details_window.blp:117
+msgid "Developer"
+msgstr "Sviluppatore"
+
+#: data/gtk/details_window.blp:113
+msgid "The developer or publisher (optional)"
+msgstr "Lo sviluppatore o l'editore (opzionale)"
+
+#: data/gtk/details_window.blp:123 data/gtk/details_window.blp:153
+msgid "Executable"
+msgstr "Eseguibile"
+
+#: data/gtk/details_window.blp:124
+msgid "File to open or command to run when launching the game"
+msgstr "File da aprire o comando da lanciare per avviare il gioco"
+
+#: data/gtk/details_window.blp:130
+msgid "More Info"
+msgstr "Altre informazioni"
+
#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196
msgid "Edit"
msgstr "Modifica"
-#: data/gtk/game.blp:107 src/window.py:202
+#: data/gtk/game.blp:107 src/window.py:205
msgid "Hide"
msgstr "Nascondi"
@@ -86,7 +123,7 @@ msgstr "Nascondi"
msgid "Remove"
msgstr "Rimuovi"
-#: data/gtk/game.blp:126 src/window.py:204
+#: data/gtk/game.blp:126 src/window.py:207
msgid "Unhide"
msgstr "Mostra"
@@ -111,7 +148,7 @@ msgstr "Mostra preferenze"
msgid "Shortcuts"
msgstr "Scorciatoie da tastiera"
-#: data/gtk/help-overlay.blp:34 src/game.py:167 src/preferences.py:98
+#: data/gtk/help-overlay.blp:34 src/game.py:169 src/preferences.py:98
msgid "Undo"
msgstr "Annulla"
@@ -155,7 +192,7 @@ msgstr "La copertina avvia il gioco"
msgid "Swaps the behavior of the cover image and the play button"
msgstr "Inverti il comportamento della copertina con il pulsante di avvio"
-#: data/gtk/preferences.blp:36 src/details_window.py:79
+#: data/gtk/preferences.blp:36 src/details_window.py:84
msgid "Images"
msgstr "Immagini"
@@ -361,61 +398,61 @@ msgstr "Informazioni su Cartucce"
msgid "translator_credits"
msgstr "Alessandro Iepure https://ale.iepure.me"
-#: src/window.py:184
+#: src/window.py:187
msgid "Today"
msgstr "Oggi"
-#: src/window.py:186
+#: src/window.py:189
msgid "Yesterday"
msgstr "Ieri"
#. The variable is the date when the game was added
-#: src/window.py:225
+#: src/window.py:228
msgid "Added: {}"
msgstr "Aggiunto il: {}"
-#: src/window.py:228
+#: src/window.py:231
msgid "Never"
msgstr "Mai"
#. The variable is the date when the game was last played
-#: src/window.py:232
+#: src/window.py:235
msgid "Last played: {}"
msgstr "Ultima riproduzione: {}"
-#: src/details_window.py:70
+#: src/details_window.py:75
msgid "Apply"
msgstr "Applica"
-#: src/details_window.py:76
+#: src/details_window.py:81
msgid "Add New Game"
msgstr "Aggiungi un Nuovo Gioco"
-#: src/details_window.py:77
+#: src/details_window.py:82
msgid "Confirm"
msgstr "Conferma"
#. Translate this string as you would translate "file"
-#: src/details_window.py:89
+#: src/details_window.py:94
msgid "file.txt"
msgstr "file.txt"
#. As in software
-#: src/details_window.py:91
+#: src/details_window.py:96
msgid "program"
msgstr "programma"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:96 src/details_window.py:98
+#: src/details_window.py:101 src/details_window.py:103
msgid "C:\\path\\to\\{}"
msgstr "C:\\path\\to{}"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:102 src/details_window.py:104
+#: src/details_window.py:107 src/details_window.py:109
msgid "/path/to/{}"
msgstr "/percorso/to/{}"
-#: src/details_window.py:108
+#: src/details_window.py:113
msgid ""
"To launch the executable \"{}\", use the command:\n"
"\n"
@@ -437,19 +474,19 @@ msgstr ""
"\n"
"Se il percorso contiene spazi, assicurarsi di avvolgerlo in doppi apici!"
-#: src/details_window.py:139 src/details_window.py:145
+#: src/details_window.py:143 src/details_window.py:149
msgid "Couldn't Add Game"
msgstr "Impossibile aggiungere il gioco"
-#: src/details_window.py:139 src/details_window.py:172
+#: src/details_window.py:143 src/details_window.py:176
msgid "Game title cannot be empty."
msgstr "Il titolo del gioco non può essere vuoto."
-#: src/details_window.py:145 src/details_window.py:180
+#: src/details_window.py:149 src/details_window.py:184
msgid "Executable cannot be empty."
msgstr "L'eseguibile non può essere vuoto."
-#: src/details_window.py:171 src/details_window.py:179
+#: src/details_window.py:175 src/details_window.py:183
msgid "Couldn't Apply Preferences"
msgstr "Impossibile applicare le preferenze"
@@ -522,23 +559,17 @@ msgid "Importing Covers…"
msgstr "Import delle copertine…"
#: src/utils/importer.py:91
-#, fuzzy
-#| msgid "No Games Found"
msgid "No new games found"
-msgstr "Nessun Gioco Trovato"
+msgstr "Nessun nuovo gioco trovato"
#: src/utils/importer.py:98
-#, fuzzy
-#| msgid "Game Imported"
msgid "1 game imported"
-msgstr "Gioco importato"
+msgstr "1 gioco importato"
#. The variable is the number of games
#: src/utils/importer.py:104
-#, fuzzy
-#| msgid "Games Imported"
msgid "{} games imported"
-msgstr "Giochi importati"
+msgstr "{} giochi importati"
#: src/utils/importer.py:121 src/utils/steamgriddb.py:112
msgid "Couldn't Connect to SteamGridDB"
@@ -564,24 +595,6 @@ msgstr "Impossibile connettersi a SteamGridDB"
#~ msgid "Details"
#~ msgstr "Dettagli"
-#~ msgid "The title of the game"
-#~ msgstr "Titolo del gioco"
-
-#~ msgid "Developer"
-#~ msgstr "Sviluppatore"
-
-#~ msgid "The developer or publisher (optional)"
-#~ msgstr "Lo sviluppatore o l'editore (opzionale)"
-
-#~ msgid "Executable"
-#~ msgstr "Eseguibile"
-
-#~ msgid "File to open or command to run when launching the game"
-#~ msgstr "File da aprire o comando da lanciare per avviare il gioco"
-
-#~ msgid "Cancel"
-#~ msgstr "Annulla"
-
#~ msgid "No new games were found on your system."
#~ msgstr "Nessun nuovo gioco trovato nel tuo sistema."
@@ -618,19 +631,16 @@ msgstr "Impossibile connettersi a SteamGridDB"
#~ msgstr "/percorso/per/{file_name}"
#, fuzzy
-#~| msgid "General"
#~ msgctxt "shortcuts window"
#~ msgid "General"
#~ msgstr "Generale"
#, fuzzy
-#~| msgid "Search"
#~ msgctxt "shortcuts window"
#~ msgid "Search"
#~ msgstr "Cerca"
#, fuzzy
-#~| msgid "Undo"
#~ msgctxt "shortcuts window"
#~ msgid "Undo"
#~ msgstr "Annulla"
@@ -679,3 +689,9 @@ msgstr "Impossibile connettersi a SteamGridDB"
#~ msgid "Talking to Steam"
#~ msgstr "Parlando con Steam"
+
+#~ msgid "Game Imported"
+#~ msgstr "Gioco importato"
+
+#~ msgid "Games Imported"
+#~ msgstr "Giochi importati"
diff --git a/po/ko.po b/po/ko.po
index ad11a9e..d06ac8c 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Cartridges\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-23 07:30+0200\n"
+"POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: 2023-03-28 22:23+0000\n"
"Last-Translator: MJKim \n"
"Language-Team: Korean \n"
"Language-Team: Norwegian Bokmål "
-#: src/window.py:184
+#: src/window.py:187
msgid "Today"
msgstr "I dag"
-#: src/window.py:186
+#: src/window.py:189
msgid "Yesterday"
msgstr "I går"
#. The variable is the date when the game was added
-#: src/window.py:225
+#: src/window.py:228
msgid "Added: {}"
msgstr "Tillagt: {}"
-#: src/window.py:228
+#: src/window.py:231
msgid "Never"
msgstr "Aldri"
#. The variable is the date when the game was last played
-#: src/window.py:232
+#: src/window.py:235
msgid "Last played: {}"
msgstr "Sist spilt: {}"
-#: src/details_window.py:70
+#: src/details_window.py:75
msgid "Apply"
msgstr "Bruk"
-#: src/details_window.py:76
+#: src/details_window.py:81
msgid "Add New Game"
msgstr "Legg til nytt spill"
-#: src/details_window.py:77
+#: src/details_window.py:82
msgid "Confirm"
msgstr "Bekreft"
#. Translate this string as you would translate "file"
-#: src/details_window.py:89
+#: src/details_window.py:94
msgid "file.txt"
msgstr "fil.txt"
#. As in software
-#: src/details_window.py:91
+#: src/details_window.py:96
msgid "program"
msgstr "program"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:96 src/details_window.py:98
+#: src/details_window.py:101 src/details_window.py:103
msgid "C:\\path\\to\\{}"
msgstr "C:\\sti\\til\\{}"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:102 src/details_window.py:104
+#: src/details_window.py:107 src/details_window.py:109
msgid "/path/to/{}"
msgstr "/sti/til/{}"
-#: src/details_window.py:108
+#: src/details_window.py:113
msgid ""
"To launch the executable \"{}\", use the command:\n"
"\n"
@@ -452,19 +489,19 @@ msgstr ""
"Hvis stien inneholder mellomrom må du pakke den inn i doble engelske "
"sitattegn."
-#: src/details_window.py:139 src/details_window.py:145
+#: src/details_window.py:143 src/details_window.py:149
msgid "Couldn't Add Game"
msgstr "Kunne ikke legge til spill"
-#: src/details_window.py:139 src/details_window.py:172
+#: src/details_window.py:143 src/details_window.py:176
msgid "Game title cannot be empty."
msgstr "Spillnavnet kan ikke være tomt."
-#: src/details_window.py:145 src/details_window.py:180
+#: src/details_window.py:149 src/details_window.py:184
msgid "Executable cannot be empty."
msgstr "Kjørbar fil må angis."
-#: src/details_window.py:171 src/details_window.py:179
+#: src/details_window.py:175 src/details_window.py:183
msgid "Couldn't Apply Preferences"
msgstr "Kunne ikke ta i bruk endringer"
@@ -586,24 +623,6 @@ msgstr "Kunne ikke koble til SteamGridDB"
#~ msgid "Details"
#~ msgstr "Detaljer"
-#~ msgid "The title of the game"
-#~ msgstr "Navnet på spillet"
-
-#~ msgid "Developer"
-#~ msgstr "Utvikler"
-
-#~ msgid "The developer or publisher (optional)"
-#~ msgstr "Utvikler eller utgiver (valgfritt)"
-
-#~ msgid "Executable"
-#~ msgstr "Kjørbar"
-
-#~ msgid "File to open or command to run when launching the game"
-#~ msgstr "Fil å åpne eller kommando å kjøre ved oppstart av spillet"
-
-#~ msgid "Cancel"
-#~ msgstr "Avbryt"
-
#~ msgid "No new games were found on your system."
#~ msgstr "Fant ingen nye spill på systemet ditt."
diff --git a/po/nl.po b/po/nl.po
index 89d4c48..a6ed93a 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cartridges\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-23 07:30+0200\n"
+"POT-Creation-Date: 2023-05-25 17:48+0200\n"
"PO-Revision-Date: 2023-04-14 12:29+0000\n"
"Last-Translator: Philip Goto \n"
"Language-Team: Dutch \n"
"Language-Team: Polish \n"
"Language-Team: Portuguese \n"
"Language-Team: Portuguese (Brazil) \n"
"Language-Team: Romanian \n"
"Language-Team: Russian \n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.17-dev\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
@@ -37,7 +37,7 @@ msgstr "Запустите все свои игры"
#: data/hu.kramo.Cartridges.desktop.in:11
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
msgid ""
@@ -55,7 +55,7 @@ msgstr ""
msgid "Library"
msgstr "Библиотека"
-#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:65
+#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:66
msgid "Edit Game Details"
msgstr "Редактировать подробности об игре"
@@ -69,15 +69,52 @@ msgstr "Подробности об игре"
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:202
+#: data/gtk/game.blp:107 src/window.py:205
msgid "Hide"
msgstr "Скрыть"
@@ -86,7 +123,7 @@ msgstr "Скрыть"
msgid "Remove"
msgstr "Удалить"
-#: data/gtk/game.blp:126 src/window.py:204
+#: data/gtk/game.blp:126 src/window.py:207
msgid "Unhide"
msgstr "Показать"
@@ -111,7 +148,7 @@ msgstr "Показать параметры"
msgid "Shortcuts"
msgstr "Комбинации клавиш"
-#: data/gtk/help-overlay.blp:34 src/game.py:167 src/preferences.py:98
+#: data/gtk/help-overlay.blp:34 src/game.py:169 src/preferences.py:98
msgid "Undo"
msgstr "Отменить"
@@ -155,7 +192,7 @@ msgstr "Запуск игры используя изображение обло
msgid "Swaps the behavior of the cover image and the play button"
msgstr "Меняет местами поведение изображения обложки и кнопки запуска"
-#: data/gtk/preferences.blp:36 src/details_window.py:79
+#: data/gtk/preferences.blp:36 src/details_window.py:84
msgid "Images"
msgstr "Изображения"
@@ -360,61 +397,61 @@ msgstr "О приложении"
msgid "translator_credits"
msgstr "Ser82-png"
-#: src/window.py:184
+#: src/window.py:187
msgid "Today"
msgstr "Сегодня"
-#: src/window.py:186
+#: src/window.py:189
msgid "Yesterday"
msgstr "Вчера"
#. The variable is the date when the game was added
-#: src/window.py:225
+#: src/window.py:228
msgid "Added: {}"
msgstr "Добавлено: {}"
-#: src/window.py:228
+#: src/window.py:231
msgid "Never"
msgstr "Никогда"
#. The variable is the date when the game was last played
-#: src/window.py:232
+#: src/window.py:235
msgid "Last played: {}"
msgstr "Последняя игра: {}"
-#: src/details_window.py:70
+#: src/details_window.py:75
msgid "Apply"
msgstr "Применить"
-#: src/details_window.py:76
+#: src/details_window.py:81
msgid "Add New Game"
msgstr "Добавить новую игру"
-#: src/details_window.py:77
+#: src/details_window.py:82
msgid "Confirm"
msgstr "Подтвердить"
#. Translate this string as you would translate "file"
-#: src/details_window.py:89
+#: src/details_window.py:94
msgid "file.txt"
msgstr "file.txt"
#. As in software
-#: src/details_window.py:91
+#: src/details_window.py:96
msgid "program"
msgstr "программа"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:96 src/details_window.py:98
+#: 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:102 src/details_window.py:104
+#: src/details_window.py:107 src/details_window.py:109
msgid "/path/to/{}"
msgstr "/путь/к/{}"
-#: src/details_window.py:108
+#: src/details_window.py:113
msgid ""
"To launch the executable \"{}\", use the command:\n"
"\n"
@@ -436,19 +473,19 @@ msgstr ""
"\n"
"Если путь содержит пробелы, обязательно заключите его в двойные кавычки!"
-#: src/details_window.py:139 src/details_window.py:145
+#: src/details_window.py:143 src/details_window.py:149
msgid "Couldn't Add Game"
msgstr "Не удалось добавить игру"
-#: src/details_window.py:139 src/details_window.py:172
+#: src/details_window.py:143 src/details_window.py:176
msgid "Game title cannot be empty."
msgstr "Название игры не может быть пустым."
-#: src/details_window.py:145 src/details_window.py:180
+#: src/details_window.py:149 src/details_window.py:184
msgid "Executable cannot be empty."
msgstr "Исполняемый файл не может быть пустым."
-#: src/details_window.py:171 src/details_window.py:179
+#: src/details_window.py:175 src/details_window.py:183
msgid "Couldn't Apply Preferences"
msgstr "Не удалось применить параметры"
@@ -521,23 +558,17 @@ msgid "Importing Covers…"
msgstr "Импорт обложек…"
#: src/utils/importer.py:91
-#, fuzzy
-#| msgid "No Games Found"
msgid "No new games found"
-msgstr "Игры не найдены"
+msgstr "Новых игр не найдено"
#: src/utils/importer.py:98
-#, fuzzy
-#| msgid "Game Imported"
msgid "1 game imported"
-msgstr "Игра импортирована"
+msgstr "1 игра импортирована"
#. The variable is the number of games
#: src/utils/importer.py:104
-#, fuzzy
-#| msgid "Games Imported"
msgid "{} games imported"
-msgstr "Игры импортированы"
+msgstr "{} игр(ы) импортировано"
#: src/utils/importer.py:121 src/utils/steamgriddb.py:112
msgid "Couldn't Connect to SteamGridDB"
@@ -561,24 +592,6 @@ msgstr "Не удалось подключиться к SteamGridDB"
#~ msgid "Details"
#~ msgstr "Подробности"
-#~ msgid "The title of the game"
-#~ msgstr "Название игры"
-
-#~ msgid "Developer"
-#~ msgstr "Разработчик"
-
-#~ msgid "The developer or publisher (optional)"
-#~ msgstr "Разработчик или издатель (необязательно)"
-
-#~ msgid "Executable"
-#~ msgstr "Исполняемый"
-
-#~ msgid "File to open or command to run when launching the game"
-#~ msgstr "Файл для открытия или команда для запуска игры"
-
-#~ msgid "Cancel"
-#~ msgstr "Отменить"
-
#~ msgid "No new games were found on your system."
#~ msgstr "В вашей системе не найдено новых игр."
diff --git a/po/sv.po b/po/sv.po
index 8ac0b80..10ec809 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -2,13 +2,14 @@
# Copyright (C) YEAR kramo
# This file is distributed under the same license as the Cartridges package.
# micke , 2023.
+# micke , 2023.
msgid ""
msgstr ""
"Project-Id-Version: Cartridges\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-23 07:30+0200\n"
-"PO-Revision-Date: 2023-05-18 13:36+0000\n"
-"Last-Translator: micke \n"
+"POT-Creation-Date: 2023-05-25 17:48+0200\n"
+"PO-Revision-Date: 2023-05-24 20:27+0000\n"
+"Last-Translator: micke \n"
"Language-Team: Swedish \n"
"Language: sv\n"
@@ -35,7 +36,7 @@ msgstr "Starta alla dina spel"
#: data/hu.kramo.Cartridges.desktop.in:11
msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
-msgstr ""
+msgstr "gaming;spelstartare;steam;lutris;heroic;bottles;itch;"
#: data/hu.kramo.Cartridges.metainfo.xml.in:9
msgid ""
@@ -52,7 +53,7 @@ msgstr ""
msgid "Library"
msgstr "Bibliotek"
-#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:65
+#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:66
msgid "Edit Game Details"
msgstr "Redigera speldetaljer"
@@ -66,15 +67,52 @@ msgstr "Speldetaljer"
msgid "Preferences"
msgstr "Inställningar"
+#: data/gtk/details_window.blp:25
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: 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 "Titel"
+#: data/gtk/details_window.blp:102
+msgid "The title of the game"
+msgstr "Spelets titel"
+
+#: data/gtk/details_window.blp:112 data/gtk/details_window.blp:117
+msgid "Developer"
+msgstr "Utvecklare"
+
+#: data/gtk/details_window.blp:113
+msgid "The developer or publisher (optional)"
+msgstr "Utvecklaren eller utgivaren (valfritt)"
+
+#: data/gtk/details_window.blp:123 data/gtk/details_window.blp:153
+msgid "Executable"
+msgstr "Körbar"
+
+#: data/gtk/details_window.blp:124
+msgid "File to open or command to run when launching the game"
+msgstr "Fil som ska öppnas eller kommando som ska köras när spelet startas"
+
+#: 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 "Redigera"
-#: data/gtk/game.blp:107 src/window.py:202
+#: data/gtk/game.blp:107 src/window.py:205
msgid "Hide"
msgstr "Dölj"
@@ -83,7 +121,7 @@ msgstr "Dölj"
msgid "Remove"
msgstr "Ta bort"
-#: data/gtk/game.blp:126 src/window.py:204
+#: data/gtk/game.blp:126 src/window.py:207
msgid "Unhide"
msgstr "Visa"
@@ -108,7 +146,7 @@ msgstr "Visa inställningar"
msgid "Shortcuts"
msgstr "Genvägar"
-#: data/gtk/help-overlay.blp:34 src/game.py:167 src/preferences.py:98
+#: data/gtk/help-overlay.blp:34 src/game.py:169 src/preferences.py:98
msgid "Undo"
msgstr "Ångra"
@@ -152,7 +190,7 @@ msgstr "Omslagsbild startar spel"
msgid "Swaps the behavior of the cover image and the play button"
msgstr "Byt beteende för omslagsbilden och Spela-knappen"
-#: data/gtk/preferences.blp:36 src/details_window.py:79
+#: data/gtk/preferences.blp:36 src/details_window.py:84
msgid "Images"
msgstr "Bilder"
@@ -358,61 +396,61 @@ msgstr "Om Cartridges"
msgid "translator_credits"
msgstr "Micke"
-#: src/window.py:184
+#: src/window.py:187
msgid "Today"
msgstr "Idag"
-#: src/window.py:186
+#: src/window.py:189
msgid "Yesterday"
msgstr "Igår"
#. The variable is the date when the game was added
-#: src/window.py:225
+#: src/window.py:228
msgid "Added: {}"
msgstr "Tillagt: {}"
-#: src/window.py:228
+#: src/window.py:231
msgid "Never"
msgstr "Aldrig"
#. The variable is the date when the game was last played
-#: src/window.py:232
+#: src/window.py:235
msgid "Last played: {}"
msgstr "Senast spelat: {}"
-#: src/details_window.py:70
+#: src/details_window.py:75
msgid "Apply"
msgstr "Tillämpa"
-#: src/details_window.py:76
+#: src/details_window.py:81
msgid "Add New Game"
msgstr "Lägg till nytt spel"
-#: src/details_window.py:77
+#: src/details_window.py:82
msgid "Confirm"
msgstr "Bekräfta"
#. Translate this string as you would translate "file"
-#: src/details_window.py:89
+#: src/details_window.py:94
msgid "file.txt"
msgstr "fil.txt"
#. As in software
-#: src/details_window.py:91
+#: src/details_window.py:96
msgid "program"
msgstr "program"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:96 src/details_window.py:98
+#: src/details_window.py:101 src/details_window.py:103
msgid "C:\\path\\to\\{}"
msgstr "C:\\sökväg\\till\\{}"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:102 src/details_window.py:104
+#: src/details_window.py:107 src/details_window.py:109
msgid "/path/to/{}"
msgstr "/sökväg/till/{}"
-#: src/details_window.py:108
+#: src/details_window.py:113
msgid ""
"To launch the executable \"{}\", use the command:\n"
"\n"
@@ -435,19 +473,19 @@ msgstr ""
"Om sökvägen innehåller mellanslag, se till att den omsluts av dubbla "
"citationstecken!"
-#: src/details_window.py:139 src/details_window.py:145
+#: src/details_window.py:143 src/details_window.py:149
msgid "Couldn't Add Game"
msgstr "Kunde inte lägga till spelet"
-#: src/details_window.py:139 src/details_window.py:172
+#: src/details_window.py:143 src/details_window.py:176
msgid "Game title cannot be empty."
msgstr "Spelets titel kan inte vara tom."
-#: src/details_window.py:145 src/details_window.py:180
+#: src/details_window.py:149 src/details_window.py:184
msgid "Executable cannot be empty."
msgstr "Den körbara filen kan inte vara tom."
-#: src/details_window.py:171 src/details_window.py:179
+#: src/details_window.py:175 src/details_window.py:183
msgid "Couldn't Apply Preferences"
msgstr "Kunde inte tillämpa inställningar"
@@ -519,23 +557,17 @@ msgid "Importing Covers…"
msgstr "Importerar omslagsbilder…"
#: src/utils/importer.py:91
-#, fuzzy
-#| msgid "No Games Found"
msgid "No new games found"
-msgstr "Inga spel hittades"
+msgstr "Inga nya spel hittades"
#: src/utils/importer.py:98
-#, fuzzy
-#| msgid "Game Imported"
msgid "1 game imported"
-msgstr "Spel Importerat"
+msgstr "1 spel Importerat"
#. The variable is the number of games
#: src/utils/importer.py:104
-#, fuzzy
-#| msgid "Games Imported"
msgid "{} games imported"
-msgstr "Spel importerade"
+msgstr "{} spel importerade"
#: src/utils/importer.py:121 src/utils/steamgriddb.py:112
msgid "Couldn't Connect to SteamGridDB"
@@ -559,24 +591,6 @@ msgstr "Kunde inte ansluta till SteamGridDB"
#~ msgid "Details"
#~ msgstr "Detaljer"
-#~ msgid "The title of the game"
-#~ msgstr "Spelets titel"
-
-#~ msgid "Developer"
-#~ msgstr "Utvecklare"
-
-#~ msgid "The developer or publisher (optional)"
-#~ msgstr "Utvecklaren eller utgivaren (valfritt)"
-
-#~ msgid "Executable"
-#~ msgstr "Körbar"
-
-#~ msgid "File to open or command to run when launching the game"
-#~ msgstr "Fil som ska öppnas eller kommando som ska köras när spelet startas"
-
-#~ msgid "Cancel"
-#~ msgstr "Avbryt"
-
#~ msgid "No new games were found on your system."
#~ msgstr "Inga nya spel hittades på ditt system."
diff --git a/po/ta.po b/po/ta.po
index d5da421..9c34c6f 100644
--- a/po/ta.po
+++ b/po/ta.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Cartridges\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-23 07:30+0200\n"
-"PO-Revision-Date: 2023-04-14 12:29+0000\n"
+"POT-Creation-Date: 2023-05-25 17:48+0200\n"
+"PO-Revision-Date: 2023-05-24 20:27+0000\n"
"Last-Translator: \"K.B.Dharun Krishna\" \n"
"Language-Team: Tamil \n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.17-dev\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
@@ -37,7 +37,7 @@ msgstr "உங்கள் எல்லா விளையாட்டுகள
#: data/hu.kramo.Cartridges.desktop.in:11
msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
-msgstr ""
+msgstr "விளையாட்டு; துவக்கி; steam;lutris;heroic;பாட்டில்கள்;itch;"
#: data/hu.kramo.Cartridges.metainfo.xml.in:9
msgid ""
@@ -56,7 +56,7 @@ msgstr ""
msgid "Library"
msgstr "நூலகம்"
-#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:65
+#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:66
msgid "Edit Game Details"
msgstr "விளையாட்டு விவரங்களைத் திருத்து"
@@ -70,15 +70,52 @@ msgstr "விளையாட்டு விவரங்கள்"
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:202
+#: data/gtk/game.blp:107 src/window.py:205
msgid "Hide"
msgstr "மறை"
@@ -87,7 +124,7 @@ msgstr "மறை"
msgid "Remove"
msgstr "அகற்று"
-#: data/gtk/game.blp:126 src/window.py:204
+#: data/gtk/game.blp:126 src/window.py:207
msgid "Unhide"
msgstr "மறை காட்டு"
@@ -112,7 +149,7 @@ msgstr "விருப்பங்களைக் காட்டு"
msgid "Shortcuts"
msgstr "குறுக்குவழிகள்"
-#: data/gtk/help-overlay.blp:34 src/game.py:167 src/preferences.py:98
+#: data/gtk/help-overlay.blp:34 src/game.py:169 src/preferences.py:98
msgid "Undo"
msgstr "செயல்தவிர்"
@@ -156,7 +193,7 @@ msgstr "அட்டைப் படம் விளையாட்டை தொ
msgid "Swaps the behavior of the cover image and the play button"
msgstr "அட்டைப் படத்தின் நடத்தை மற்றும் பிளே பட்டனை மாற்றுகிறது"
-#: data/gtk/preferences.blp:36 src/details_window.py:79
+#: data/gtk/preferences.blp:36 src/details_window.py:84
msgid "Images"
msgstr "படங்கள்"
@@ -362,61 +399,61 @@ msgstr "கார்ட்ரிட்ஜ்கள் பற்றி"
msgid "translator_credits"
msgstr "K.B.Dharun Krishna "
-#: src/window.py:184
+#: src/window.py:187
msgid "Today"
msgstr "இன்று"
-#: src/window.py:186
+#: src/window.py:189
msgid "Yesterday"
msgstr "நேற்று"
#. The variable is the date when the game was added
-#: src/window.py:225
+#: src/window.py:228
msgid "Added: {}"
msgstr "சேர்க்கப்பட்டது: {}"
-#: src/window.py:228
+#: src/window.py:231
msgid "Never"
msgstr "ஒருபோதும் இல்லை"
#. The variable is the date when the game was last played
-#: src/window.py:232
+#: src/window.py:235
msgid "Last played: {}"
msgstr "கடைசியாக விளையாடியது: {}"
-#: src/details_window.py:70
+#: src/details_window.py:75
msgid "Apply"
msgstr "விண்ணப்பி"
-#: src/details_window.py:76
+#: src/details_window.py:81
msgid "Add New Game"
msgstr "புதிய விளையாட்டைச் சேர்க்கவும்"
-#: src/details_window.py:77
+#: src/details_window.py:82
msgid "Confirm"
msgstr "உறுதிப்படுத்தவும்"
#. Translate this string as you would translate "file"
-#: src/details_window.py:89
+#: src/details_window.py:94
msgid "file.txt"
msgstr "கோப்பு.txt"
#. As in software
-#: src/details_window.py:91
+#: src/details_window.py:96
msgid "program"
msgstr "பயன்பாடு"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:96 src/details_window.py:98
+#: 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:102 src/details_window.py:104
+#: src/details_window.py:107 src/details_window.py:109
msgid "/path/to/{}"
msgstr "/பாதை/டு/ {}"
-#: src/details_window.py:108
+#: src/details_window.py:113
msgid ""
"To launch the executable \"{}\", use the command:\n"
"\n"
@@ -438,19 +475,19 @@ msgstr ""
"\n"
"பாதையில் இடைவெளிகள் இருந்தால், அதை இரட்டை மேற்கோள்களில் போர்த்துவதை உறுதிசெய்யவும்!"
-#: src/details_window.py:139 src/details_window.py:145
+#: src/details_window.py:143 src/details_window.py:149
msgid "Couldn't Add Game"
msgstr "விளையாட்டைச் சேர்க்க முடியவில்லை"
-#: src/details_window.py:139 src/details_window.py:172
+#: src/details_window.py:143 src/details_window.py:176
msgid "Game title cannot be empty."
msgstr "விளையாட்டு தலைப்பு காலியாக இருக்கக்கூடாது."
-#: src/details_window.py:145 src/details_window.py:180
+#: src/details_window.py:149 src/details_window.py:184
msgid "Executable cannot be empty."
msgstr "இயங்கக்கூடியது காலியாக இருக்க முடியாது."
-#: src/details_window.py:171 src/details_window.py:179
+#: src/details_window.py:175 src/details_window.py:183
msgid "Couldn't Apply Preferences"
msgstr "விருப்பத்தேர்வுகளைப் பயன்படுத்த முடியவில்லை"
@@ -523,23 +560,17 @@ msgid "Importing Covers…"
msgstr "அட்டைகளை இறக்குமதி செய்கிறது…"
#: src/utils/importer.py:91
-#, fuzzy
-#| msgid "No Games Found"
msgid "No new games found"
-msgstr "விளையாட்டுகள் எதுவும் இல்லை"
+msgstr "புதிய விளையாட்டுகள் எதுவும் கண்டறியப்படவில்லை"
#: src/utils/importer.py:98
-#, fuzzy
-#| msgid "Game Imported"
msgid "1 game imported"
-msgstr "விளையாட்டு இறக்குமதி செய்யப்பட்டது"
+msgstr "1 விளையாட்டு இறக்குமதி செய்யப்பட்டது"
#. The variable is the number of games
#: src/utils/importer.py:104
-#, fuzzy
-#| msgid "Games Imported"
msgid "{} games imported"
-msgstr "விளையாட்டுகள் இறக்குமதி செய்யப்பட்டன"
+msgstr "{} விளையாட்டுகள் இறக்குமதி செய்யப்பட்டன"
#: src/utils/importer.py:121 src/utils/steamgriddb.py:112
msgid "Couldn't Connect to SteamGridDB"
@@ -563,24 +594,6 @@ msgstr "ஸ்டீம்கிரிட் டிபி (SteamGridDB) உட
#~ msgid "Details"
#~ msgstr "விவரங்கள்"
-#~ msgid "The title of the game"
-#~ msgstr "விளையாட்டின் தலைப்பு"
-
-#~ msgid "Developer"
-#~ msgstr "டெவலப்பர்"
-
-#~ msgid "The developer or publisher (optional)"
-#~ msgstr "டெவலப்பர் அல்லது வெளியீட்டாளர் (விரும்பினால்)"
-
-#~ msgid "Executable"
-#~ msgstr "செயல்படுத்தக்கூடியது"
-
-#~ msgid "File to open or command to run when launching the game"
-#~ msgstr "விளையாட்டைத் தொடங்கும் போது திறக்க கோப்பு அல்லது இயக்க கட்டளை"
-
-#~ msgid "Cancel"
-#~ msgstr "ரத்துசெய்"
-
#~ msgid "No new games were found on your system."
#~ msgstr "உங்கள் கணினியில் புதிய விளையாட்டுகள் எதுவும் இல்லை."
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
index 0000000..d4b5108
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,575 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR kramo
+# This file is distributed under the same license as the Cartridges package.
+# Sabri Ünal , 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-26 18:10+0000\n"
+"Last-Translator: Sabri Ünal \n"
+"Language-Team: Turkish \n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: 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 "Kartuşlar"
+
+#: data/hu.kramo.Cartridges.desktop.in:4
+msgid "Game Launcher"
+msgstr "Oyun Başlatıcı"
+
+#: data/hu.kramo.Cartridges.desktop.in:5
+#: data/hu.kramo.Cartridges.metainfo.xml.in:7
+msgid "Launch all your games"
+msgstr "Tüm oyunlarınızı başlatın"
+
+#: data/hu.kramo.Cartridges.desktop.in:11
+msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
+msgstr "oyun;başlatıcı;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 ""
+"Kartuşlar, tüm oyunlarınız için basit bir oyun başlatıcıdır. Oturum açmaya "
+"gerek kalmadan Steam, Lutris, Heroic ve daha fazla sağlayıcıdan oyun içe "
+"aktarma desteğine sahiptir. Oyunları sıralayabilir, gizleyebilir veya "
+"SteamGridDB'den kapak resmi indirebilirsiniz."
+
+#: data/hu.kramo.Cartridges.metainfo.xml.in:30
+msgid "Library"
+msgstr "Kütüphane"
+
+#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:66
+msgid "Edit Game Details"
+msgstr "Oyun Ayrıntılarını Düzenle"
+
+#: data/hu.kramo.Cartridges.metainfo.xml.in:38 data/gtk/window.blp:72
+msgid "Game Details"
+msgstr "Oyun Ayrıntıları"
+
+#: 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 "Tercihler"
+
+#: data/gtk/details_window.blp:25
+msgid "Cancel"
+msgstr "İptal"
+
+#: data/gtk/details_window.blp:57
+msgid "New Cover"
+msgstr "Yeni Kapak"
+
+#: data/gtk/details_window.blp:75
+msgid "Delete Cover"
+msgstr "Kapağı Sil"
+
+#: data/gtk/details_window.blp:101 data/gtk/details_window.blp:106
+#: data/gtk/game.blp:80
+msgid "Title"
+msgstr "Başlık"
+
+#: data/gtk/details_window.blp:102
+msgid "The title of the game"
+msgstr "Oyunun başlığı"
+
+#: data/gtk/details_window.blp:112 data/gtk/details_window.blp:117
+msgid "Developer"
+msgstr "Geliştirici"
+
+#: data/gtk/details_window.blp:113
+msgid "The developer or publisher (optional)"
+msgstr "Geliştirici veya yayıncı (isteğe bağlı)"
+
+#: data/gtk/details_window.blp:123 data/gtk/details_window.blp:153
+msgid "Executable"
+msgstr "Yürütülebilir"
+
+#: data/gtk/details_window.blp:124
+msgid "File to open or command to run when launching the game"
+msgstr "Oyun başlatılırken açılacak dosya veya çalıştırılacak komut"
+
+#: data/gtk/details_window.blp:130
+msgid "More Info"
+msgstr "Daha Fazla Bilgi"
+
+#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:196
+msgid "Edit"
+msgstr "Düzenle"
+
+#: data/gtk/game.blp:107 src/window.py:205
+msgid "Hide"
+msgstr "Gizle"
+
+#: data/gtk/game.blp:112 data/gtk/game.blp:131 data/gtk/preferences.blp:56
+#: data/gtk/window.blp:210
+msgid "Remove"
+msgstr "Kaldır"
+
+#: data/gtk/game.blp:126 src/window.py:207
+msgid "Unhide"
+msgstr "Göster"
+
+#: data/gtk/help-overlay.blp:11 data/gtk/preferences.blp:9
+msgid "General"
+msgstr "Genel"
+
+#: data/gtk/help-overlay.blp:14
+msgid "Quit"
+msgstr "Çık"
+
+#: data/gtk/help-overlay.blp:19 data/gtk/window.blp:218 data/gtk/window.blp:258
+#: data/gtk/window.blp:324
+msgid "Search"
+msgstr "Ara"
+
+#: data/gtk/help-overlay.blp:24
+msgid "Show preferences"
+msgstr "Tercihleri göster"
+
+#: data/gtk/help-overlay.blp:29
+msgid "Shortcuts"
+msgstr "Kısayollar"
+
+#: data/gtk/help-overlay.blp:34 src/game.py:169 src/preferences.py:98
+msgid "Undo"
+msgstr "Geri Al"
+
+#: data/gtk/help-overlay.blp:39
+msgid "Open menu"
+msgstr "Menüyü aç"
+
+#: data/gtk/help-overlay.blp:45
+msgid "Games"
+msgstr "Oyunlar"
+
+#: data/gtk/help-overlay.blp:48
+msgid "Add new game"
+msgstr "Yeni oyun ekle"
+
+#: data/gtk/help-overlay.blp:53
+msgid "Import games"
+msgstr "Oyunları içe aktar"
+
+#: data/gtk/help-overlay.blp:58
+msgid "Show hidden games"
+msgstr "Gizli oyunları göster"
+
+#: data/gtk/help-overlay.blp:63
+msgid "Remove game"
+msgstr "Oyunu kaldır"
+
+#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:206
+msgid "Behavior"
+msgstr "Davranış"
+
+#: data/gtk/preferences.blp:16
+msgid "Exit After Launching Games"
+msgstr "Oyunu Başlatıldıktan Sonra Çık"
+
+#: data/gtk/preferences.blp:25
+msgid "Cover Image Launches Game"
+msgstr "Kapak Görüntüsü Oyunu Başlatır"
+
+#: data/gtk/preferences.blp:26
+msgid "Swaps the behavior of the cover image and the play button"
+msgstr "Kapak görüntüsünün ve oyna düğmesinin davranışını değiştirir"
+
+#: data/gtk/preferences.blp:36 src/details_window.py:84
+msgid "Images"
+msgstr "Görüntüler"
+
+#: data/gtk/preferences.blp:39
+msgid "High Quality Images"
+msgstr "Yüksek Kaliteli Görüntüler"
+
+#: data/gtk/preferences.blp:40
+msgid "Save game covers losslessly at the cost of storage"
+msgstr ""
+"Oyun kapaklarını, daha çok depolama alanı gerektirmesine rağmen, kayıpsız "
+"kaydet"
+
+#: data/gtk/preferences.blp:50
+msgid "Danger Zone"
+msgstr "Tehlikeli Bölge"
+
+#: data/gtk/preferences.blp:53
+msgid "Remove All Games"
+msgstr "Tüm Oyunları Kaldır"
+
+#: data/gtk/preferences.blp:69 data/gtk/window.blp:28 data/gtk/window.blp:443
+msgid "Import"
+msgstr "İçe Aktar"
+
+#: data/gtk/preferences.blp:73
+msgid "Sources"
+msgstr "Kaynaklar"
+
+#: data/gtk/preferences.blp:76
+msgid "Steam"
+msgstr "Steam"
+
+#: data/gtk/preferences.blp:80
+msgid "Steam Install Location"
+msgstr "Steam Kurulu Konumu"
+
+#: data/gtk/preferences.blp:90
+msgid "Lutris"
+msgstr "Lutris"
+
+#: data/gtk/preferences.blp:94
+msgid "Lutris Install Location"
+msgstr "Lutris Kurulu Konumu"
+
+#: data/gtk/preferences.blp:103
+msgid "Lutris Cache Location"
+msgstr "Lutris Önbellek Konumu"
+
+#: data/gtk/preferences.blp:112
+msgid "Import Steam Games"
+msgstr "Steam Oyunlarını İçe Aktar"
+
+#: data/gtk/preferences.blp:122
+msgid "Heroic"
+msgstr "Heroic"
+
+#: data/gtk/preferences.blp:126
+msgid "Heroic Install Location"
+msgstr "Heroic Kurulu Konumu"
+
+#: data/gtk/preferences.blp:135
+msgid "Import Epic Games"
+msgstr "Epic Oyunlarını İçe Aktar"
+
+#: data/gtk/preferences.blp:144
+msgid "Import GOG Games"
+msgstr "GOG Oyunlarını İçe Aktar"
+
+#: data/gtk/preferences.blp:153
+msgid "Import Sideloaded Games"
+msgstr "Yandan Yüklenmiş Oyunları İçe Aktar"
+
+#: data/gtk/preferences.blp:163
+msgid "Bottles"
+msgstr "Şişeler"
+
+#: data/gtk/preferences.blp:167
+msgid "Bottles Install Location"
+msgstr "Şişeler Kurulu Konumu"
+
+#: data/gtk/preferences.blp:177
+msgid "itch"
+msgstr "itch"
+
+#: data/gtk/preferences.blp:181
+msgid "itch Install Location"
+msgstr "itch Kurulu Konumu"
+
+#: data/gtk/preferences.blp:194
+msgid "SteamGridDB"
+msgstr "SteamGridDB"
+
+#: data/gtk/preferences.blp:198
+msgid "Authentication"
+msgstr "Kimlik Doğrulaması"
+
+#: data/gtk/preferences.blp:201
+msgid "API Key"
+msgstr "API anahtarı"
+
+#: data/gtk/preferences.blp:209
+msgid "Use SteamGridDB"
+msgstr "SteamGridDB Kullan"
+
+#: data/gtk/preferences.blp:210
+msgid "Download images when adding or importing games"
+msgstr "Oyun eklerken veya içe aktarırken görüntüleri indir"
+
+#: data/gtk/preferences.blp:219
+msgid "Prefer Over Official Images"
+msgstr "Resmî Görsellere Yeğle"
+
+#: data/gtk/preferences.blp:228
+msgid "Prefer Animated Images"
+msgstr "Hareketli Görselleri Yeğle"
+
+#: data/gtk/window.blp:6 data/gtk/window.blp:14
+msgid "No Games Found"
+msgstr "Hiçbir Oyun Bulunamadı"
+
+#: data/gtk/window.blp:7 data/gtk/window.blp:15
+msgid "Try a different search."
+msgstr "Başka arama dene."
+
+#: data/gtk/window.blp:22
+msgid "No Games"
+msgstr "Oyun Yok"
+
+#: data/gtk/window.blp:23
+msgid "Use the + button to add games."
+msgstr "Oyun eklemek için + düğmesini kullanın."
+
+#: data/gtk/window.blp:41
+msgid "No Hidden Games"
+msgstr "Gizli Oyun Yok"
+
+#: data/gtk/window.blp:42
+msgid "Games you hide will appear here."
+msgstr "Gizlediğiniz oyunlar burada belirecek."
+
+#: data/gtk/window.blp:65 data/gtk/window.blp:305
+msgid "Back"
+msgstr "Geri"
+
+#: data/gtk/window.blp:122
+msgid "Game Title"
+msgstr "Oyun Başlığı"
+
+#: data/gtk/window.blp:177
+msgid "Play"
+msgstr "Oyna"
+
+#: data/gtk/window.blp:244 data/gtk/window.blp:436
+msgid "Add Game"
+msgstr "Oyun Ekle"
+
+#: data/gtk/window.blp:251 data/gtk/window.blp:317
+msgid "Main Menu"
+msgstr "Ana Menü"
+
+#: data/gtk/window.blp:312
+msgid "Hidden Games"
+msgstr "Gizli Oyunlar"
+
+#: data/gtk/window.blp:375
+msgid "Sort"
+msgstr "Sırala"
+
+#: data/gtk/window.blp:378
+msgid "A-Z"
+msgstr "A-Z"
+
+#: data/gtk/window.blp:384
+msgid "Z-A"
+msgstr "Z-A"
+
+#: data/gtk/window.blp:390
+msgid "Newest"
+msgstr "En Yeni"
+
+#: data/gtk/window.blp:396
+msgid "Oldest"
+msgstr "En Eski"
+
+#: data/gtk/window.blp:402
+msgid "Last Played"
+msgstr "Son Oynanan"
+
+#: data/gtk/window.blp:409
+msgid "Show Hidden"
+msgstr "Gizlileri Göster"
+
+#: data/gtk/window.blp:422
+msgid "Keyboard Shortcuts"
+msgstr "Klavye Kısayolları"
+
+#: data/gtk/window.blp:427
+msgid "About Cartridges"
+msgstr "Kartuşlar Hakkında"
+
+#. Translators: Replace this with your name for it to show up in the about window
+#: src/main.py:127
+msgid "translator_credits"
+msgstr "Sabri Ünal "
+
+#: src/window.py:187
+msgid "Today"
+msgstr "Bugün"
+
+#: src/window.py:189
+msgid "Yesterday"
+msgstr "Dün"
+
+#. The variable is the date when the game was added
+#: src/window.py:228
+msgid "Added: {}"
+msgstr "Eklendi: {}"
+
+#: src/window.py:231
+msgid "Never"
+msgstr "Asla"
+
+#. The variable is the date when the game was last played
+#: src/window.py:235
+msgid "Last played: {}"
+msgstr "Son oynanma: {}"
+
+#: src/details_window.py:75
+msgid "Apply"
+msgstr "Uygula"
+
+#: src/details_window.py:81
+msgid "Add New Game"
+msgstr "Yeni Oyun Ekle"
+
+#: src/details_window.py:82
+msgid "Confirm"
+msgstr "Doğrula"
+
+#. Translate this string as you would translate "file"
+#: src/details_window.py:94
+msgid "file.txt"
+msgstr "dosya.txt"
+
+#. As in software
+#: src/details_window.py:96
+msgid "program"
+msgstr "program"
+
+#. 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:\\yol\\klasör\\{}"
+
+#. Translate this string as you would translate "path to {}"
+#: src/details_window.py:107 src/details_window.py:109
+msgid "/path/to/{}"
+msgstr "/yol/klasör/{}"
+
+#: src/details_window.py:113
+msgid ""
+"To launch the executable \"{}\", use the command:\n"
+"\n"
+"\"{}\"\n"
+"\n"
+"To open the file \"{}\" with the default application, use:\n"
+"\n"
+"{} \"{}\"\n"
+"\n"
+"If the path contains spaces, make sure to wrap it in double quotes!"
+msgstr ""
+"\"{}\" yürütülebilirini başlatmak için şu komutu kullanın:\n"
+"\n"
+"\"{}\"\n"
+"\n"
+"\"{}\" dosyasını öntanımlı uygulamayla açmak için şunu kullanın:\n"
+"\n"
+"\"{}\"\n"
+"\n"
+"Yol boşluk içeriyorsa, çift tırnak içine aldığınızdan emin olun!"
+
+#: src/details_window.py:143 src/details_window.py:149
+msgid "Couldn't Add Game"
+msgstr "Oyun Eklenemedi"
+
+#: src/details_window.py:143 src/details_window.py:176
+msgid "Game title cannot be empty."
+msgstr "Oyun başlığı boş olamaz."
+
+#: src/details_window.py:149 src/details_window.py:184
+msgid "Executable cannot be empty."
+msgstr "Çalıştırılabilir boş olamaz."
+
+#: src/details_window.py:175 src/details_window.py:183
+msgid "Couldn't Apply Preferences"
+msgstr "Tercihler Uygulanamadı"
+
+#. The variable is the title of the game
+#: src/game.py:208
+msgid "{} launched"
+msgstr "{} başlatıldı"
+
+#. The variable is the title of the game
+#: src/game.py:220
+msgid "{} hidden"
+msgstr "{} gizli"
+
+#: src/game.py:220
+msgid "{} unhidden"
+msgstr "{} görünür"
+
+#. The variable is the title of the game
+#: src/game.py:233
+msgid "{} removed"
+msgstr "{} kaldırıldı"
+
+#: src/preferences.py:97
+msgid "All games removed"
+msgstr "Tüm oyunlar kaldırıldı"
+
+#: src/preferences.py:136
+msgid "Cache Not Found"
+msgstr "Önbellek Bulunamadı"
+
+#: src/preferences.py:137
+msgid "Select the Lutris cache directory."
+msgstr "Lutris önbellek dizinini seç."
+
+#: src/preferences.py:139 src/preferences.py:292
+msgid "Set Location"
+msgstr "Konum Ayarla"
+
+#: src/preferences.py:166
+msgid ""
+"An API key is required to use SteamGridDB. You can generate one {}here{}."
+msgstr ""
+"SteamGridDBʼyi kullanmak için API anahtarı gereklidir. {}Buradan{} bir tane "
+"oluşturabilirsiniz."
+
+#: src/preferences.py:286
+msgid "Installation Not Found"
+msgstr "Kurulum Bulunamadı"
+
+#. The variable is the name of the game launcher
+#: src/preferences.py:288
+msgid "Select the {} configuration directory."
+msgstr "{} yapılandırma dizinini seç."
+
+#. The variable is the name of the game launcher
+#: src/preferences.py:290
+msgid "Select the {} data directory."
+msgstr "{} veri dizinini seç."
+
+#: src/utils/create_dialog.py:25
+msgid "Dismiss"
+msgstr "Vazgeç"
+
+#: src/utils/importer.py:41
+msgid "Importing Games…"
+msgstr "Oyunlar İçe Aktarılıyor…"
+
+#: src/utils/importer.py:76
+msgid "Importing Covers…"
+msgstr "Kapaklar İçe Aktarılıyor…"
+
+#: src/utils/importer.py:91
+msgid "No new games found"
+msgstr "Yeni oyun bulunamadı"
+
+#: src/utils/importer.py:98
+msgid "1 game imported"
+msgstr "1 oyun içe aktarıldı"
+
+#. The variable is the number of games
+#: src/utils/importer.py:104
+msgid "{} games imported"
+msgstr "{} oyun içe aktarıldı"
+
+#: src/utils/importer.py:121 src/utils/steamgriddb.py:112
+msgid "Couldn't Connect to SteamGridDB"
+msgstr "SteamGridDBʼye bağlanılamadı"
diff --git a/po/uk.po b/po/uk.po
index 28bbb65..dcdcbf2 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -3,12 +3,13 @@
# This file is distributed under the same license as the cartridges package.
# kramo , 2023.
# Dan , 2023.
+# Вова Смірнов , 2023.
msgid ""
msgstr ""
"Project-Id-Version: cartridges\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-23 07:30+0200\n"
-"PO-Revision-Date: 2023-04-14 12:29+0000\n"
+"POT-Creation-Date: 2023-05-25 17:48+0200\n"
+"PO-Revision-Date: 2023-05-26 18:10+0000\n"
"Last-Translator: Dan \n"
"Language-Team: Ukrainian \n"
@@ -16,9 +17,9 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.17-dev\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.18-dev\n"
#: data/hu.kramo.Cartridges.desktop.in:3
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:48
@@ -37,7 +38,7 @@ msgstr "Запустіть усі свої ігри"
#: data/hu.kramo.Cartridges.desktop.in:11
msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
-msgstr ""
+msgstr "ігри;лаунчер;steam;lutris;heroic;bottles;itch;"
#: data/hu.kramo.Cartridges.metainfo.xml.in:9
msgid ""
@@ -55,7 +56,7 @@ msgstr ""
msgid "Library"
msgstr "Бібліотека"
-#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:65
+#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:66
msgid "Edit Game Details"
msgstr "Редагувати інформацію про гру"
@@ -69,15 +70,52 @@ msgstr "Подробиці гри"
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:202
+#: data/gtk/game.blp:107 src/window.py:205
msgid "Hide"
msgstr "Приховати"
@@ -86,7 +124,7 @@ msgstr "Приховати"
msgid "Remove"
msgstr "Видалити"
-#: data/gtk/game.blp:126 src/window.py:204
+#: data/gtk/game.blp:126 src/window.py:207
msgid "Unhide"
msgstr "Показати"
@@ -111,7 +149,7 @@ msgstr "Показати параметри"
msgid "Shortcuts"
msgstr "Ярлики"
-#: data/gtk/help-overlay.blp:34 src/game.py:167 src/preferences.py:98
+#: data/gtk/help-overlay.blp:34 src/game.py:169 src/preferences.py:98
msgid "Undo"
msgstr "Відмінити"
@@ -155,7 +193,7 @@ msgstr "Обкладинка запускає гру"
msgid "Swaps the behavior of the cover image and the play button"
msgstr "Міняє місцями поведінку зображення обкладинки та кнопки відтворення"
-#: data/gtk/preferences.blp:36 src/details_window.py:79
+#: data/gtk/preferences.blp:36 src/details_window.py:84
msgid "Images"
msgstr "Зображення"
@@ -360,61 +398,61 @@ msgstr "Про Cartridges"
msgid "translator_credits"
msgstr "kefir2105"
-#: src/window.py:184
+#: src/window.py:187
msgid "Today"
msgstr "Сьогодні"
-#: src/window.py:186
+#: src/window.py:189
msgid "Yesterday"
msgstr "Вчора"
#. The variable is the date when the game was added
-#: src/window.py:225
+#: src/window.py:228
msgid "Added: {}"
msgstr "Додано: {}"
-#: src/window.py:228
+#: src/window.py:231
msgid "Never"
msgstr "Ніколи"
#. The variable is the date when the game was last played
-#: src/window.py:232
+#: src/window.py:235
msgid "Last played: {}"
msgstr "Останній раз грали: {}"
-#: src/details_window.py:70
+#: src/details_window.py:75
msgid "Apply"
msgstr "Застосувати"
-#: src/details_window.py:76
+#: src/details_window.py:81
msgid "Add New Game"
msgstr "Додати нову гру"
-#: src/details_window.py:77
+#: src/details_window.py:82
msgid "Confirm"
msgstr "Підтвердити"
#. Translate this string as you would translate "file"
-#: src/details_window.py:89
+#: src/details_window.py:94
msgid "file.txt"
msgstr "file.txt"
#. As in software
-#: src/details_window.py:91
+#: src/details_window.py:96
msgid "program"
msgstr "програма"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:96 src/details_window.py:98
+#: src/details_window.py:101 src/details_window.py:103
msgid "C:\\path\\to\\{}"
-msgstr "C:\\path\\to\\{}"
+msgstr "C:\\шлях\\до\\{}"
#. Translate this string as you would translate "path to {}"
-#: src/details_window.py:102 src/details_window.py:104
+#: src/details_window.py:107 src/details_window.py:109
msgid "/path/to/{}"
msgstr "/path/to/{}"
-#: src/details_window.py:108
+#: src/details_window.py:113
msgid ""
"To launch the executable \"{}\", use the command:\n"
"\n"
@@ -437,19 +475,19 @@ msgstr ""
"\n"
"Якщо шлях містить пробіли, обов'язково візьміть його в подвійні лапки!"
-#: src/details_window.py:139 src/details_window.py:145
+#: src/details_window.py:143 src/details_window.py:149
msgid "Couldn't Add Game"
msgstr "Не вдалося додати гру"
-#: src/details_window.py:139 src/details_window.py:172
+#: src/details_window.py:143 src/details_window.py:176
msgid "Game title cannot be empty."
msgstr "Назва гри не може бути порожньою."
-#: src/details_window.py:145 src/details_window.py:180
+#: src/details_window.py:149 src/details_window.py:184
msgid "Executable cannot be empty."
msgstr "Виконуваний файл не може бути порожнім."
-#: src/details_window.py:171 src/details_window.py:179
+#: src/details_window.py:175 src/details_window.py:183
msgid "Couldn't Apply Preferences"
msgstr "Не вдалося застосувати параметри"
@@ -522,23 +560,17 @@ msgid "Importing Covers…"
msgstr "Імпорт обкладинок…"
#: src/utils/importer.py:91
-#, fuzzy
-#| msgid "No Games Found"
msgid "No new games found"
-msgstr "Ігор не знайдено"
+msgstr "Нових ігор не знайдено"
#: src/utils/importer.py:98
-#, fuzzy
-#| msgid "Game Imported"
msgid "1 game imported"
-msgstr "Ігру імпортовано"
+msgstr "1 гру імпортовано"
#. The variable is the number of games
#: src/utils/importer.py:104
-#, fuzzy
-#| msgid "Games Imported"
msgid "{} games imported"
-msgstr "Ігри імпортовано"
+msgstr "{} гри імпортовано"
#: src/utils/importer.py:121 src/utils/steamgriddb.py:112
msgid "Couldn't Connect to SteamGridDB"
@@ -562,24 +594,6 @@ msgstr "Не вдалося підключитися до SteamGridDB"
#~ msgid "Details"
#~ msgstr "Деталі"
-#~ msgid "The title of the game"
-#~ msgstr "Назва гри"
-
-#~ msgid "Developer"
-#~ msgstr "Розробник"
-
-#~ msgid "The developer or publisher (optional)"
-#~ msgstr "Розробник або видавець (необов'язково)"
-
-#~ msgid "Executable"
-#~ msgstr "Виконуваний"
-
-#~ msgid "File to open or command to run when launching the game"
-#~ msgstr "Файл для відкриття або команда для запуску під час запуску гри"
-
-#~ msgid "Cancel"
-#~ msgstr "Скасувати"
-
#~ msgid "No new games were found on your system."
#~ msgstr "У вашій системі не знайдено жодної нової гри."
diff --git a/src/details_window.py b/src/details_window.py
index d0cd7a3..d896bc2 100644
--- a/src/details_window.py
+++ b/src/details_window.py
@@ -33,7 +33,7 @@ from src.utils.save_cover import resize_cover, save_cover
from src.utils.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):
__gtype_name__ = "DetailsWindow"
diff --git a/src/game.py b/src/game.py
index d45dae2..e269885 100644
--- a/src/game.py
+++ b/src/game.py
@@ -24,13 +24,13 @@ import subprocess
from pathlib import Path
from time import time
-from gi.repository import Adw, Gio, Gtk
+from gi.repository import Adw, Gtk
from src import shared
from src.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):
__gtype_name__ = "Game"
@@ -66,6 +66,7 @@ class Game(Gtk.Box):
self.win = shared.win
self.app = self.win.get_application()
+ self.version = shared.SPEC_VERSION
self.update_values(data)
@@ -180,7 +181,7 @@ class Game(Gtk.Box):
args = (
"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
)
@@ -192,7 +193,7 @@ class Game(Gtk.Box):
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()
# The variable is the title of the game
diff --git a/src/game_cover.py b/src/game_cover.py
index b82ec8c..cca0eba 100644
--- a/src/game_cover.py
+++ b/src/game_cover.py
@@ -20,6 +20,8 @@
from gi.repository import GdkPixbuf, Gio, GLib
from PIL import Image, ImageFilter, ImageStat
+from src import shared
+
class GameCover:
pixbuf = None
@@ -30,7 +32,7 @@ class GameCover:
anim_iter = None
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):
@@ -91,7 +93,7 @@ class GameCover:
)
else:
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)
diff --git a/src/importer/sources/lutris_source.py b/src/importer/sources/lutris_source.py
index e80b278..850c4d5 100644
--- a/src/importer/sources/lutris_source.py
+++ b/src/importer/sources/lutris_source.py
@@ -68,7 +68,7 @@ class LutrisSourceIterator(SourceIterator):
# Create game
values = {
- "version": shared.spec_version,
+ "version": shared.SPEC_VERSION,
"added": int(time()),
"hidden": row[4],
"name": row[1],
diff --git a/src/importer/sources/steam_source.py b/src/importer/sources/steam_source.py
index dd407ce..af79195 100644
--- a/src/importer/sources/steam_source.py
+++ b/src/importer/sources/steam_source.py
@@ -72,7 +72,7 @@ class SteamSourceIterator(SourceIterator):
# Build game from local data
appid = local_data["appid"]
values = {
- "version": shared.spec_version,
+ "version": shared.SPEC_VERSION,
"added": int(time()),
"name": local_data["name"],
"source": self.source.id,
diff --git a/src/importers/bottles_importer.py b/src/importers/bottles_importer.py
index 04a9fe0..faaa346 100644
--- a/src/importers/bottles_importer.py
+++ b/src/importers/bottles_importer.py
@@ -28,22 +28,19 @@ from src.utils.check_install import check_install
def bottles_installed(path=None):
location_key = "bottles-location"
- bottles_dir = (
- path if path else Path(shared.schema.get_string(location_key)).expanduser()
- )
check = "library.yml"
- if not (bottles_dir / check).is_file():
- locations = (
- (Path(),)
- if path
- else (
- Path.home() / ".var/app/com.usebottles.bottles/data/bottles",
- shared.data_dir / "bottles",
- )
+ locations = (
+ (path,)
+ if path
+ else (
+ Path(shared.schema.get_string(location_key)).expanduser(),
+ Path.home() / ".var/app/com.usebottles.bottles/data/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
@@ -57,7 +54,7 @@ def bottles_importer():
data = (bottles_dir / "library.yml").read_text("utf-8")
- library = yaml.load(data, Loader=yaml.Loader)
+ library = yaml.safe_load(data)
importer = shared.importer
importer.total_queue += len(library)
diff --git a/src/importers/heroic_importer.py b/src/importers/heroic_importer.py
index 85e84d9..549b4c1 100644
--- a/src/importers/heroic_importer.py
+++ b/src/importers/heroic_importer.py
@@ -29,25 +29,22 @@ from src.utils.check_install import check_install
def heroic_installed(path=None):
location_key = "heroic-location"
- heroic_dir = (
- path if path else Path(shared.schema.get_string(location_key)).expanduser()
- )
check = "config.json"
- if not (heroic_dir / check).is_file():
- locations = (
- (Path(),)
- if path
- else (
- Path.home() / ".var/app/com.heroicgameslauncher.hgl/config/heroic",
- shared.config_dir / "heroic",
- )
+ locations = (
+ (path,)
+ if path
+ else (
+ Path(shared.schema.get_string(location_key)).expanduser(),
+ Path.home() / ".var/app/com.heroicgameslauncher.hgl/config/heroic",
+ shared.config_dir / "heroic",
)
+ )
- if os.name == "nt" and not path:
- locations += (Path(os.getenv("appdata")) / "heroic",)
+ if os.name == "nt" and not path:
+ 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
@@ -63,7 +60,7 @@ def heroic_importer():
# Import Epic games
if not shared.schema.get_boolean("heroic-import-epic"):
pass
- elif (heroic_dir / "store_cache" / "legendary_library.json").exists():
+ elif (heroic_dir / "store_cache" / "legendary_library.json").is_file():
library = json.load(
(heroic_dir / "store_cache" / "legendary_library.json").open()
)
@@ -107,7 +104,7 @@ def heroic_importer():
).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:
pass
@@ -115,9 +112,9 @@ def heroic_importer():
# Import GOG games
if not shared.schema.get_boolean("heroic-import-gog"):
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"
- ).exists():
+ ).is_file():
installed = json.load((heroic_dir / "gog_store" / "installed.json").open())
importer.total_queue += len(installed["installed"])
@@ -159,12 +156,12 @@ def heroic_importer():
values["source"] = "heroic_gog"
values["added"] = current_time
- 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
if not shared.schema.get_boolean("heroic-import-sideload"):
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())
importer.total_queue += len(library["games"])
@@ -198,4 +195,4 @@ def heroic_importer():
/ 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)
diff --git a/src/importers/itch_importer.py b/src/importers/itch_importer.py
index 2eb14c0..ba8ad6b 100644
--- a/src/importers/itch_importer.py
+++ b/src/importers/itch_importer.py
@@ -122,25 +122,22 @@ def get_games_async(rows, importer):
def itch_installed(path=None):
location_key = "itch-location"
- itch_dir = (
- path if path else Path(shared.schema.get_string(location_key)).expanduser()
- )
check = Path("db") / "butler.db"
- if not (itch_dir / check).is_file():
- locations = (
- (Path(),)
- if path
- else (
- Path.home() / ".var/app/io.itch.itch/config/itch",
- shared.config_dir / "itch",
- )
+ locations = (
+ (path,)
+ if path
+ else (
+ Path(shared.schema.get_string(location_key)).expanduser(),
+ Path.home() / ".var/app/io.itch.itch/config/itch",
+ shared.config_dir / "itch",
)
+ )
- if os.name == "nt" and not path:
- locations += (Path(os.getenv("appdata")) / "itch",)
+ if os.name == "nt" and not path:
+ 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
diff --git a/src/importers/lutris_importer.py b/src/importers/lutris_importer.py
index d8a10b5..a698caf 100644
--- a/src/importers/lutris_importer.py
+++ b/src/importers/lutris_importer.py
@@ -28,44 +28,38 @@ from src.utils.check_install import check_install
def lutris_installed(path=None):
location_key = "lutris-location"
- lutris_dir = (
- path if path else Path(shared.schema.get_string(location_key)).expanduser()
- )
check = "pga.db"
- if not (lutris_dir / check).is_file():
- locations = (
- (Path(),)
- if path
- else (
- Path.home() / ".var/app/net.lutris.Lutris/data/lutris",
- shared.data_dir / "lutris",
- )
+ locations = (
+ (path,)
+ if path
+ else (
+ Path(shared.schema.get_string(location_key)).expanduser(),
+ Path.home() / ".var/app/net.lutris.Lutris/data/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
def lutris_cache_exists(path=None):
cache_key = "lutris-cache-location"
- cache_dir = path if path else Path(shared.schema.get_string(cache_key)).expanduser()
cache_check = "coverart"
- if not (cache_dir / cache_check).exists():
- cache_locations = (
- (Path(),)
- if path
- else (
- Path.home() / ".var" / "app" / "net.lutris.Lutris" / "cache" / "lutris",
- shared.cache_dir / "lutris",
- )
+ cache_locations = (
+ (path,)
+ if path
+ else (
+ Path(shared.schema.get_string(cache_key)).expanduser(),
+ Path.home() / ".var" / "app" / "net.lutris.Lutris" / "cache" / "lutris",
+ shared.cache_dir / "lutris",
)
+ )
- cache_dir = check_install(
- cache_check, cache_locations, (shared.schema, cache_key)
- )
+ cache_dir = check_install(cache_check, cache_locations, (shared.schema, cache_key))
return cache_dir
@@ -136,4 +130,4 @@ def lutris_importer():
values["source"] = f"lutris_{row[3]}"
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)
diff --git a/src/importers/steam_importer.py b/src/importers/steam_importer.py
index 7ecaa83..f0a0757 100644
--- a/src/importers/steam_importer.py
+++ b/src/importers/steam_importer.py
@@ -35,9 +35,10 @@ def update_values_from_data(content, values):
values["blacklisted"] = True
else:
data = basic_data["data"]
- values["developer"] = ", ".join(data["developers"])
+ if data.get("developers"):
+ values["developer"] = ", ".join(data["developers"])
- if data["type"] != "game":
+ if data.get("type") != "game":
values["blacklisted"] = True
return values
@@ -88,11 +89,11 @@ def get_game(task, datatypes, current_time, appmanifest, steam_dir):
open_file.raise_for_status()
content = open_file.json()
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
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):
@@ -124,28 +125,24 @@ def get_games_async(appmanifests, steam_dir, importer):
def steam_installed(path=None):
location_key = "steam-location"
- steam_dir = Path(shared.schema.get_string(location_key)).expanduser()
check = "steamapps"
- if not (steam_dir / check).is_file():
- subdirs = ("steam", "Steam")
- locations = (
- (path,)
- if path
- else (
- steam_dir,
- Path.home() / ".steam",
- shared.data_dir / "Steam",
- Path.home() / ".var/app/com.valvesoftware.Steam/data/Steam",
- )
+ subdirs = ("steam", "Steam")
+ locations = (
+ (path,)
+ if path
+ else (
+ Path(shared.schema.get_string(location_key)).expanduser(),
+ Path.home() / ".steam",
+ shared.data_dir / "Steam",
+ Path.home() / ".var/app/com.valvesoftware.Steam/data/Steam",
)
+ )
- if os.name == "nt":
- locations += (Path(os.getenv("programfiles(x86)")) / "Steam",)
+ if os.name == "nt":
+ locations += (Path(os.getenv("programfiles(x86)")) / "Steam",)
- steam_dir = check_install(
- check, locations, (shared.schema, location_key), subdirs
- )
+ steam_dir = check_install(check, locations, (shared.schema, location_key), subdirs)
return steam_dir
@@ -166,13 +163,12 @@ def steam_importer():
steam_dirs = [steam_dir]
for directory in steam_dirs:
- if not (directory / "steamapps").exists():
- steam_dirs.remove(directory)
-
- for directory in steam_dirs:
- for open_file in (directory / "steamapps").iterdir():
- if open_file.is_file() and "appmanifest" in open_file.name:
- appmanifests.append(open_file)
+ try:
+ for open_file in (directory / "steamapps").iterdir():
+ if open_file.is_file() and "appmanifest" in open_file.name:
+ appmanifests.append(open_file)
+ except FileNotFoundError:
+ continue
importer = shared.importer
importer.total_queue += len(appmanifests)
diff --git a/src/main.py b/src/main.py
index 8e4b6c9..1511815 100644
--- a/src/main.py
+++ b/src/main.py
@@ -54,12 +54,15 @@ class CartridgesApplication(Adw.Application):
def __init__(self):
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
"""Called on app creation"""
+ # Set fallback icon-name
+ Gtk.Window.set_default_icon_name(shared.APP_ID)
+
# Create the main window
self.win = self.props.active_window # pylint: disable=no-member
if not self.win:
@@ -136,9 +139,9 @@ class CartridgesApplication(Adw.Application):
about = Adw.AboutWindow(
transient_for=self.win,
application_name=_("Cartridges"),
- application_icon="hu.kramo.Cartridges",
+ application_icon=shared.APP_ID,
developer_name="kramo",
- version="1.5",
+ version=shared.VERSION,
developers=[
"kramo https://kramo.hu",
"Arcitec https://github.com/Arcitec",
diff --git a/src/meson.build b/src/meson.build
index 5f47002..c5ef74f 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -1,13 +1,5 @@
moduledir = join_paths(pkgdatadir, 'src')
-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(
input: 'cartridges.in',
output: 'cartridges',
@@ -28,7 +20,11 @@ install_data(
'details_window.py',
'game.py',
'game_cover.py',
- 'shared.py',
+ configure_file(
+ input: 'shared.py.in',
+ output: 'shared.py',
+ configuration: conf
+ )
],
install_dir: moduledir
)
\ No newline at end of file
diff --git a/src/preferences.py b/src/preferences.py
index 2bb2129..e0a5aff 100644
--- a/src/preferences.py
+++ b/src/preferences.py
@@ -35,7 +35,7 @@ from src.importers.steam_importer import steam_installed
from src.utils.create_dialog import create_dialog
-@Gtk.Template(resource_path="/hu/kramo/Cartridges/gtk/preferences.ui")
+@Gtk.Template(resource_path=shared.PREFIX + "/gtk/preferences.ui")
class PreferencesWindow(Adw.PreferencesWindow):
__gtype_name__ = "PreferencesWindow"
@@ -259,7 +259,7 @@ class PreferencesWindow(Adw.PreferencesWindow):
getattr(win, f'{source_id.replace("-", "_")}_action_row').set_subtitle(
# Remove the path if the dir is picked via the Flatpak portal
re.sub(
- "/run/user/\\d*/doc/......../",
+ "/run/user/\\d*/doc/.*/",
"",
str(
Path(shared.schema.get_string(f"{source_id}-location")).expanduser()
diff --git a/src/shared.py b/src/shared.py.in
similarity index 85%
rename from src/shared.py
rename to src/shared.py.in
index 71b900d..a55a0e9 100644
--- a/src/shared.py
+++ b/src/shared.py.in
@@ -1,4 +1,4 @@
-# shared.py
+# shared.py.in
#
# Copyright 2022-2023 kramo
#
@@ -22,8 +22,13 @@ from pathlib import Path
from gi.repository import Gdk, Gio
-schema = Gio.Settings.new("hu.kramo.Cartridges")
-state_schema = Gio.Settings.new("hu.kramo.Cartridges.State")
+APP_ID = "@APP_ID@"
+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 = (
Path(os.getenv("XDG_DATA_HOME"))
@@ -51,5 +56,5 @@ image_size = (200 * scale_factor, 300 * scale_factor)
# pylint: disable=invalid-name
win = None
-store = None
-spec_version = 2.0 # The version of the game_id.json spec
+importer = None
+store = None
\ No newline at end of file
diff --git a/src/store/store.py b/src/store/store.py
index ebed6ba..4c260c9 100644
--- a/src/store/store.py
+++ b/src/store/store.py
@@ -27,7 +27,7 @@ class Store:
"""
# Ignore games from a newer spec version
- if game.version > shared.spec_version:
+ if game.version > shared.SPEC_VERSION:
return None
# Ignore games that are already there
diff --git a/src/utils/check_install.py b/src/utils/check_install.py
index 272df18..2f74395 100644
--- a/src/utils/check_install.py
+++ b/src/utils/check_install.py
@@ -24,10 +24,9 @@ from pathlib import Path
def check_install(check, locations, setting=None, subdirs=(Path(),)):
for location in locations:
for subdir in (Path(),) + subdirs:
- if (location / subdir / check).is_file() or (
- location / subdir / check
- ).exists():
+ if (location / subdir / check).exists():
if setting:
setting[0].set_string(setting[1], str(location / subdir))
-
return location / subdir
+
+ return False
diff --git a/src/window.py b/src/window.py
index 5f1631b..4fc7ccf 100644
--- a/src/window.py
+++ b/src/window.py
@@ -19,10 +19,12 @@
from datetime import datetime
-from gi.repository import Adw, Gio, GLib, Gtk
+from gi.repository import Adw, GLib, Gtk
+
+from src import shared
-@Gtk.Template(resource_path="/hu/kramo/Cartridges/gtk/window.ui")
+@Gtk.Template(resource_path=shared.PREFIX + "/gtk/window.ui")
class CartridgesWindow(Adw.ApplicationWindow):
__gtype_name__ = "CartridgesWindow"
@@ -86,6 +88,11 @@ class CartridgesWindow(Adw.ApplicationWindow):
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")
+
# Connect search entries
self.search_bar.connect_entry(self.search_entry)
self.hidden_search_bar.connect_entry(self.hidden_search_entry)
@@ -139,9 +146,8 @@ class CartridgesWindow(Adw.ApplicationWindow):
)
filtered = text != "" and not (
- text in game.name.lower() or text in game.developer.lower()
- if game.developer
- else None
+ text in game.name.lower()
+ or (text in game.developer.lower() if game.developer else False)
)
game.filtered = filtered
@@ -291,9 +297,7 @@ class CartridgesWindow(Adw.ApplicationWindow):
self.sort_state = str(state).strip("'")
self.library.invalidate_sort()
- Gio.Settings(schema_id="hu.kramo.Cartridges.State").set_string(
- "sort-mode", self.sort_state
- )
+ shared.state_schema.set_string("sort-mode", self.sort_state)
def on_toggle_search_action(self, *_args):
if self.stack.get_visible_child() == self.library_view:
diff --git a/.windows/Cartridges.iss b/windows/Cartridges.iss
similarity index 99%
rename from .windows/Cartridges.iss
rename to windows/Cartridges.iss
index dccbdc2..89ee8fd 100644
--- a/.windows/Cartridges.iss
+++ b/windows/Cartridges.iss
@@ -1,5 +1,5 @@
#define MyAppName "Cartridges"
-#define MyAppVersion "1.5"
+#define MyAppVersion "1.5.4"
#define MyAppPublisher "kramo"
#define MyAppURL "https://github.com/kra-mo/cartridges"
#define MyAppExeName "pythonw.exe"
diff --git a/.windows/icon.ico b/windows/icon.ico
similarity index 100%
rename from .windows/icon.ico
rename to windows/icon.ico