Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
248cd10367 | ||
|
|
387430d5cd | ||
|
|
6017c57e6c | ||
|
|
50bc67bb1b | ||
|
|
76fd2f97ef | ||
|
|
e5f8e81c2e | ||
|
|
b574439328 | ||
|
|
2b52391229 | ||
|
|
9b24f7c473 | ||
|
|
644bf10713 | ||
|
|
2962988727 | ||
|
|
6d3d6e6a8f | ||
|
|
9557caecbc |
@@ -66,10 +66,27 @@ class CartridgesApplication(Adw.Application):
|
||||
|
||||
def __init__(self) -> None:
|
||||
shared.store = Store()
|
||||
super().__init__(
|
||||
application_id=shared.APP_ID,
|
||||
flags=Gio.ApplicationFlags.HANDLES_COMMAND_LINE,
|
||||
)
|
||||
super().__init__(application_id=shared.APP_ID)
|
||||
|
||||
search = GLib.OptionEntry()
|
||||
search.long_name = "search"
|
||||
search.short_name = ord("s")
|
||||
search.flags = 0
|
||||
search.arg = int(GLib.OptionArg.STRING)
|
||||
search.arg_data = None
|
||||
search.description = "Open the app with this term in the search entry"
|
||||
search.arg_description = "TERM"
|
||||
|
||||
launch = GLib.OptionEntry()
|
||||
launch.long_name = "launch"
|
||||
launch.short_name = ord("l")
|
||||
launch.flags = 0
|
||||
launch.arg = int(GLib.OptionArg.STRING)
|
||||
launch.arg_data = None
|
||||
launch.description = "Run a game with the given game_id"
|
||||
launch.arg_description = "GAME_ID"
|
||||
|
||||
self.add_main_option_entries((search, launch))
|
||||
|
||||
def do_activate(self) -> None: # pylint: disable=arguments-differ
|
||||
"""Called on app creation"""
|
||||
@@ -159,47 +176,40 @@ class CartridgesApplication(Adw.Application):
|
||||
|
||||
shared.win.present()
|
||||
|
||||
def do_command_line(self, command_line) -> int:
|
||||
for index, arg in enumerate(args := command_line.get_arguments()):
|
||||
if arg == "--search":
|
||||
try:
|
||||
self.init_search_term = args[index + 1]
|
||||
except IndexError:
|
||||
pass
|
||||
break
|
||||
|
||||
if arg == "--launch":
|
||||
try:
|
||||
game_id = args[index + 1]
|
||||
data = json.load(
|
||||
(path := shared.games_dir / (game_id + ".json")).open(
|
||||
"r", encoding="utf-8"
|
||||
)
|
||||
def do_handle_local_options(self, options: GLib.VariantDict) -> int:
|
||||
if search := options.lookup_value("search"):
|
||||
self.init_search_term = search.get_string()
|
||||
elif game_id := options.lookup_value("launch"):
|
||||
try:
|
||||
data = json.load(
|
||||
(path := shared.games_dir / (game_id.get_string() + ".json")).open(
|
||||
"r", encoding="utf-8"
|
||||
)
|
||||
executable = (
|
||||
shlex.join(data["executable"])
|
||||
if isinstance(data["executable"], list)
|
||||
else data["executable"]
|
||||
)
|
||||
name = data["name"]
|
||||
|
||||
run_executable(executable)
|
||||
|
||||
data["last_played"] = int(time())
|
||||
json.dump(data, path.open("w", encoding="utf-8"))
|
||||
|
||||
except (IndexError, KeyError, OSError, json.decoder.JSONDecodeError):
|
||||
return 1
|
||||
|
||||
notification = Gio.Notification.new(_("Cartridges"))
|
||||
notification.set_body(_("{} launched").format(name))
|
||||
self.send_notification(
|
||||
"launch",
|
||||
notification,
|
||||
)
|
||||
return 0
|
||||
self.activate()
|
||||
return 0
|
||||
executable = (
|
||||
shlex.join(data["executable"])
|
||||
if isinstance(data["executable"], list)
|
||||
else data["executable"]
|
||||
)
|
||||
name = data["name"]
|
||||
|
||||
run_executable(executable)
|
||||
|
||||
data["last_played"] = int(time())
|
||||
json.dump(data, path.open("w", encoding="utf-8"))
|
||||
|
||||
except (IndexError, KeyError, OSError, json.decoder.JSONDecodeError):
|
||||
return 1
|
||||
|
||||
self.register()
|
||||
notification = Gio.Notification.new(_("Cartridges"))
|
||||
notification.set_body(_("{} launched").format(name))
|
||||
self.send_notification(
|
||||
"launch",
|
||||
notification,
|
||||
)
|
||||
return 0
|
||||
return -1
|
||||
|
||||
def load_games_from_disk(self) -> None:
|
||||
if shared.games_dir.is_dir():
|
||||
|
||||
@@ -63,8 +63,8 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
||||
steam_data_file_chooser_button = Gtk.Template.Child()
|
||||
|
||||
lutris_expander_row = Gtk.Template.Child()
|
||||
lutris_data_action_row = Gtk.Template.Child()
|
||||
lutris_data_file_chooser_button = Gtk.Template.Child()
|
||||
lutris_config_action_row = Gtk.Template.Child()
|
||||
lutris_config_file_chooser_button = Gtk.Template.Child()
|
||||
lutris_cache_action_row = Gtk.Template.Child()
|
||||
lutris_cache_file_chooser_button = Gtk.Template.Child()
|
||||
lutris_import_steam_switch = Gtk.Template.Child()
|
||||
@@ -111,9 +111,9 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
||||
sgdb_spinner = Gtk.Template.Child()
|
||||
|
||||
danger_zone_group = Gtk.Template.Child()
|
||||
reset_action_row = Gtk.Template.Child()
|
||||
reset_button = Gtk.Template.Child()
|
||||
remove_all_games_button = Gtk.Template.Child()
|
||||
remove_all_games_list_box = Gtk.Template.Child()
|
||||
reset_list_box = Gtk.Template.Child()
|
||||
reset_group = Gtk.Template.Child()
|
||||
|
||||
removed_games: set[Game] = set()
|
||||
warning_menu_buttons: dict = {}
|
||||
@@ -137,12 +137,12 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
||||
self.add_controller(shortcut_controller)
|
||||
|
||||
# General
|
||||
self.remove_all_games_button.connect("clicked", self.remove_all_games)
|
||||
self.remove_all_games_list_box.connect("row-activated", self.remove_all_games)
|
||||
|
||||
# Debug
|
||||
if shared.PROFILE == "development":
|
||||
self.reset_action_row.set_visible(True)
|
||||
self.reset_button.connect("clicked", self.reset_app)
|
||||
self.reset_group.set_visible(True)
|
||||
self.reset_list_box.connect("row-activated", self.reset_app)
|
||||
|
||||
# Sources settings
|
||||
for source_class in (
|
||||
|
||||
@@ -99,38 +99,16 @@ template $Game : Box {
|
||||
|
||||
menu game_options {
|
||||
section {
|
||||
item {
|
||||
label: _("Edit");
|
||||
action: "app.edit_game";
|
||||
}
|
||||
|
||||
item {
|
||||
label: _("Hide");
|
||||
action: "app.hide_game";
|
||||
}
|
||||
|
||||
item {
|
||||
label: _("Remove");
|
||||
action: "app.remove_game";
|
||||
}
|
||||
item (_("Edit"), "app.edit_game")
|
||||
item (_("Hide"), "app.hide_game")
|
||||
item (_("Remove"), "app.remove_game")
|
||||
}
|
||||
}
|
||||
|
||||
menu hidden_game_options {
|
||||
section {
|
||||
item {
|
||||
label: _("Edit");
|
||||
action: "app.edit_game";
|
||||
}
|
||||
|
||||
item {
|
||||
label: _("Unhide");
|
||||
action: "app.hide_game";
|
||||
}
|
||||
|
||||
item {
|
||||
label: _("Remove");
|
||||
action: "app.remove_game";
|
||||
}
|
||||
item (_("Edit"), "app.edit_game")
|
||||
item (_("Unhide"), "app.hide_game")
|
||||
item (_("Remove"), "app.remove_game")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,32 +33,76 @@ template $PreferencesWindow : Adw.PreferencesWindow {
|
||||
Adw.PreferencesGroup danger_zone_group {
|
||||
title: _("Danger Zone");
|
||||
|
||||
Adw.ActionRow {
|
||||
title: _("Remove All Games");
|
||||
ListBox remove_all_games_list_box {
|
||||
Adw.PreferencesRow {
|
||||
activatable: true;
|
||||
selectable: false;
|
||||
|
||||
Button remove_all_games_button {
|
||||
label: _("Remove");
|
||||
Box {
|
||||
spacing: 6;
|
||||
valign: center;
|
||||
halign: center;
|
||||
|
||||
Label {
|
||||
label: _("Remove All Games");
|
||||
ellipsize: end;
|
||||
|
||||
styles [
|
||||
"heading",
|
||||
]
|
||||
}
|
||||
|
||||
styles [
|
||||
"destructive-action",
|
||||
"header",
|
||||
]
|
||||
}
|
||||
|
||||
styles [
|
||||
"error",
|
||||
]
|
||||
}
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Adw.ActionRow reset_action_row {
|
||||
title: "Reset App";
|
||||
subtitle: "Completely resets and quits Cartridges";
|
||||
visible: false;
|
||||
Adw.PreferencesGroup reset_group {
|
||||
visible: false;
|
||||
|
||||
Button reset_button {
|
||||
label: "Reset";
|
||||
ListBox reset_list_box {
|
||||
Adw.PreferencesRow {
|
||||
activatable: true;
|
||||
selectable: false;
|
||||
|
||||
Box {
|
||||
spacing: 6;
|
||||
valign: center;
|
||||
halign: center;
|
||||
|
||||
Label {
|
||||
label: "Reset App";
|
||||
ellipsize: end;
|
||||
|
||||
styles [
|
||||
"heading",
|
||||
]
|
||||
}
|
||||
|
||||
styles [
|
||||
"destructive-action",
|
||||
"header",
|
||||
]
|
||||
}
|
||||
|
||||
styles [
|
||||
"error",
|
||||
]
|
||||
}
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -83,6 +127,11 @@ template $PreferencesWindow : Adw.PreferencesWindow {
|
||||
title: _("Steam");
|
||||
show-enable-switch: true;
|
||||
|
||||
[prefix]
|
||||
Image {
|
||||
icon-name: "steam-source-symbolic";
|
||||
}
|
||||
|
||||
Adw.ActionRow steam_data_action_row {
|
||||
title: _("Install Location");
|
||||
|
||||
@@ -100,10 +149,15 @@ template $PreferencesWindow : Adw.PreferencesWindow {
|
||||
title: _("Lutris");
|
||||
show-enable-switch: true;
|
||||
|
||||
Adw.ActionRow lutris_data_action_row {
|
||||
[prefix]
|
||||
Image {
|
||||
icon-name: "lutris-source-symbolic";
|
||||
}
|
||||
|
||||
Adw.ActionRow lutris_config_action_row {
|
||||
title: _("Install Location");
|
||||
|
||||
Button lutris_data_file_chooser_button {
|
||||
Button lutris_config_file_chooser_button {
|
||||
icon-name: "folder-symbolic";
|
||||
valign: center;
|
||||
styles [
|
||||
@@ -137,6 +191,11 @@ template $PreferencesWindow : Adw.PreferencesWindow {
|
||||
title: _("Heroic");
|
||||
show-enable-switch: true;
|
||||
|
||||
[prefix]
|
||||
Image {
|
||||
icon-name: "heroic-source-symbolic";
|
||||
}
|
||||
|
||||
Adw.ActionRow heroic_config_action_row {
|
||||
title: _("Install Location");
|
||||
|
||||
@@ -170,6 +229,11 @@ template $PreferencesWindow : Adw.PreferencesWindow {
|
||||
title: _("Bottles");
|
||||
show-enable-switch: true;
|
||||
|
||||
[prefix]
|
||||
Image {
|
||||
icon-name: "bottles-source-symbolic";
|
||||
}
|
||||
|
||||
Adw.ActionRow bottles_data_action_row {
|
||||
title: _("Install Location");
|
||||
|
||||
@@ -187,6 +251,11 @@ template $PreferencesWindow : Adw.PreferencesWindow {
|
||||
title: _("itch");
|
||||
show-enable-switch: true;
|
||||
|
||||
[prefix]
|
||||
Image {
|
||||
icon-name: "itch-source-symbolic";
|
||||
}
|
||||
|
||||
Adw.ActionRow itch_config_action_row {
|
||||
title: _("Install Location");
|
||||
|
||||
@@ -204,6 +273,11 @@ template $PreferencesWindow : Adw.PreferencesWindow {
|
||||
title: _("Legendary");
|
||||
show-enable-switch: true;
|
||||
|
||||
[prefix]
|
||||
Image {
|
||||
icon-name: "legendary-source-symbolic";
|
||||
}
|
||||
|
||||
Adw.ActionRow legendary_config_action_row {
|
||||
title: _("Install Location");
|
||||
|
||||
@@ -221,6 +295,11 @@ template $PreferencesWindow : Adw.PreferencesWindow {
|
||||
title: _("RetroArch");
|
||||
show-enable-switch: true;
|
||||
|
||||
[prefix]
|
||||
Image {
|
||||
icon-name: "retroarch-source-symbolic";
|
||||
}
|
||||
|
||||
Adw.ActionRow retroarch_config_action_row {
|
||||
title: _("Install Location");
|
||||
|
||||
@@ -238,6 +317,11 @@ template $PreferencesWindow : Adw.PreferencesWindow {
|
||||
title: _("Flatpak");
|
||||
show-enable-switch: true;
|
||||
|
||||
[prefix]
|
||||
Image {
|
||||
icon-name: "flatpak-source-symbolic";
|
||||
}
|
||||
|
||||
Adw.ActionRow flatpak_data_action_row {
|
||||
title: _("Install Location");
|
||||
|
||||
@@ -257,6 +341,11 @@ template $PreferencesWindow : Adw.PreferencesWindow {
|
||||
|
||||
Adw.SwitchRow desktop_switch {
|
||||
title: _("Desktop Entries");
|
||||
|
||||
[prefix]
|
||||
Image {
|
||||
icon-name: "user-desktop-symbolic";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -511,36 +511,19 @@ menu primary_menu {
|
||||
}
|
||||
|
||||
section {
|
||||
item {
|
||||
label: _("Preferences");
|
||||
action: "app.preferences";
|
||||
}
|
||||
|
||||
item {
|
||||
label: _("Keyboard Shortcuts");
|
||||
action: "win.show-help-overlay";
|
||||
}
|
||||
|
||||
item {
|
||||
label: _("About Cartridges");
|
||||
action: "app.about";
|
||||
}
|
||||
item (_("Preferences"), "app.preferences")
|
||||
item (_("Keyboard Shortcuts"), "win.show-help-overlay")
|
||||
item (_("About Cartridges"), "app.about")
|
||||
}
|
||||
}
|
||||
|
||||
menu add_games {
|
||||
section {
|
||||
item {
|
||||
label: _("Add Game");
|
||||
action: "app.add_game";
|
||||
}
|
||||
item (_("Add Game"), "app.add_game")
|
||||
}
|
||||
|
||||
section {
|
||||
item {
|
||||
label: _("Import");
|
||||
action: "app.import";
|
||||
}
|
||||
item (_("Import"), "app.import")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -548,29 +531,10 @@ menu search {
|
||||
section {
|
||||
label: "Search on…";
|
||||
|
||||
item {
|
||||
label: "IGDB";
|
||||
action: "app.igdb_search";
|
||||
}
|
||||
|
||||
item {
|
||||
label: "SteamGridDB";
|
||||
action: "app.sgdb_search";
|
||||
}
|
||||
|
||||
item {
|
||||
label: "ProtonDB";
|
||||
action: "app.protondb_search";
|
||||
}
|
||||
|
||||
item {
|
||||
label: "Lutris";
|
||||
action: "app.lutris_search";
|
||||
}
|
||||
|
||||
item {
|
||||
label: "HowLongToBeat";
|
||||
action: "app.hltb_search";
|
||||
}
|
||||
item (_("IGDB"), "app.igdb_search")
|
||||
item (_("SteamGridDB"), "app.sgdb_search")
|
||||
item (_("ProtonDB"), "app.protondb_search")
|
||||
item (_("Lutris"), "app.lutris_search")
|
||||
item (_("HowLongToBeat"), "app.hltb_search")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,9 @@
|
||||
<url type="vcs-browser">https://github.com/kra-mo/cartridges</url>
|
||||
<url type="contribute">https://github.com/kra-mo/cartridges/blob/main/CONTRIBUTING.md</url>
|
||||
<developer_name translatable="no">kramo</developer_name>
|
||||
<project_group>GNOME</project_group>
|
||||
<launchable type="desktop-id">@APP_ID@.desktop</launchable>
|
||||
<translation type="gettext">cartridges</translation>
|
||||
<supports>
|
||||
<control>pointing</control>
|
||||
<control>keyboard</control>
|
||||
@@ -44,12 +46,11 @@
|
||||
</screenshots>
|
||||
<content_rating type="oars-1.1" />
|
||||
<releases>
|
||||
<release version="2.6.1" date="2023-10-21">
|
||||
<release version="2.6.3" date="2023-11-16">
|
||||
<description translatable="no">
|
||||
<ul>
|
||||
<li>"The" will be ignored when sorting games</li>
|
||||
<li>The last played date is updated even if the game is luanched via the GNOME search provider</li>
|
||||
<li>Various UX improvements</li>
|
||||
<li>Fixed an issue with custom Lutris locations</li>
|
||||
<li>UI improvements</li>
|
||||
</ul>
|
||||
</description>
|
||||
</release>
|
||||
|
||||
@@ -52,9 +52,9 @@ appstream_file = i18n.merge_file(
|
||||
install_dir: join_paths(get_option('datadir'), 'metainfo')
|
||||
)
|
||||
|
||||
appstream_util = find_program('appstream-util', required: false)
|
||||
if appstream_util.found()
|
||||
test('Validate appstream file', appstream_util, args: ['validate', appstream_file])
|
||||
appstreamcli = find_program('appstreamcli', required: false)
|
||||
if appstreamcli.found()
|
||||
test('Validate appstream file', appstreamcli, args: ['validate', appstream_file])
|
||||
endif
|
||||
|
||||
install_data(
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 40 KiB |
@@ -1,5 +1,5 @@
|
||||
project('cartridges',
|
||||
version: '2.6.1',
|
||||
version: '2.6.3',
|
||||
meson_version: '>= 0.59.0',
|
||||
default_options: [ 'warning_level=2', 'werror=false', ],
|
||||
)
|
||||
|
||||
9
po/be.po
9
po/be.po
@@ -3,13 +3,14 @@
|
||||
# This file is distributed under the same license as the Cartridges package.
|
||||
# Yahor <k1llo2810@gmail.com>, 2023.
|
||||
# Yahor <g_egor98@tut.by>, 2023.
|
||||
# Yahor <k1llo2810@protonmail.com>, 2023.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Cartridges\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-10-10 22:22+0200\n"
|
||||
"PO-Revision-Date: 2023-10-20 17:54+0000\n"
|
||||
"Last-Translator: Yahor <g_egor98@tut.by>\n"
|
||||
"PO-Revision-Date: 2023-11-01 17:02+0000\n"
|
||||
"Last-Translator: Yahor <k1llo2810@protonmail.com>\n"
|
||||
"Language-Team: Belarusian <https://hosted.weblate.org/projects/cartridges/"
|
||||
"cartridges/be/>\n"
|
||||
"Language: be\n"
|
||||
@@ -18,7 +19,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 5.1\n"
|
||||
"X-Generator: Weblate 5.2-dev\n"
|
||||
|
||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6
|
||||
@@ -50,7 +51,7 @@ msgid ""
|
||||
"necessary. You can sort and hide games or download cover art from "
|
||||
"SteamGridDB."
|
||||
msgstr ""
|
||||
"Картрыджы - гэта простая праграма для запуску ўсіх вашых гульняў. Ён "
|
||||
"Картрыджы - гэта простая праграма для запуску ўсіх вашых гульняў. Яна "
|
||||
"падтрымлівае імпарт гульняў з Steam, Lutris, Heroic і іншых без неабходнасці "
|
||||
"ўваходу ў сістэму. Вы можаце сартаваць і хаваць гульні або спампоўваць "
|
||||
"вокладку з SteamGridDB."
|
||||
|
||||
46
po/fi.po
46
po/fi.po
@@ -11,8 +11,8 @@ msgstr ""
|
||||
"Project-Id-Version: cartridges\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-10-10 22:22+0200\n"
|
||||
"PO-Revision-Date: 2023-10-05 19:10+0000\n"
|
||||
"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n"
|
||||
"PO-Revision-Date: 2023-11-03 22:32+0000\n"
|
||||
"Last-Translator: Kimmo Kujansuu <mrkujansuu@gmail.com>\n"
|
||||
"Language-Team: Finnish <https://hosted.weblate.org/projects/cartridges/"
|
||||
"cartridges/fi/>\n"
|
||||
"Language: fi\n"
|
||||
@@ -20,7 +20,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.1-dev\n"
|
||||
"X-Generator: Weblate 5.2-dev\n"
|
||||
|
||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6
|
||||
@@ -42,13 +42,10 @@ msgstr "Käynnistä kaikki pelisi"
|
||||
msgid ""
|
||||
"gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;legendary;retroarch;"
|
||||
msgstr ""
|
||||
"gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;legendary;retroarch;"
|
||||
"peli;pelaaminen;pullot;"
|
||||
|
||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:9
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Cartridges is a simple game launcher. It has support for importing your "
|
||||
#| "games from Steam, Heroic and Bottles with organizational features such as "
|
||||
#| "hiding and sorting by date added or last played."
|
||||
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 "
|
||||
@@ -56,9 +53,8 @@ msgid ""
|
||||
"SteamGridDB."
|
||||
msgstr ""
|
||||
"Cartridges on helppo pelikäynnistin. Se tukee pelien tuontia Steamista, "
|
||||
"Heroicista ja Bottlesista ja tarjoaa ominaisuuden järjestelyyn, kuten "
|
||||
"piilottamisen ja lajittelun lisäyspäivämäärän tai viimeisimmän pelatun pelin "
|
||||
"mukaan."
|
||||
"Heroicista ja Bottlesista, sekä muistaa ilman kirjautumista. Voit lajitella "
|
||||
"tai piilottaa pelejä ja ladata kansikuvan SteamGridDB tietokannasta."
|
||||
|
||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:34 data/gtk/window.blp:288
|
||||
#: cartridges/details_window.py:71
|
||||
@@ -202,7 +198,7 @@ msgstr "Korkealaatuiset kuvat"
|
||||
|
||||
#: data/gtk/preferences.blp:29
|
||||
msgid "Save game covers losslessly at the cost of storage"
|
||||
msgstr "Tallenna pelien kansikuvat häviöttömästi tallennustilan kustannuksella"
|
||||
msgstr "Tallenna pelin kannet häviöttömästi tallennustilan kustannuksella."
|
||||
|
||||
#: data/gtk/preferences.blp:34
|
||||
msgid "Danger Zone"
|
||||
@@ -229,7 +225,7 @@ msgstr "Steam"
|
||||
#: data/gtk/preferences.blp:191 data/gtk/preferences.blp:208
|
||||
#: data/gtk/preferences.blp:225 data/gtk/preferences.blp:242
|
||||
msgid "Install Location"
|
||||
msgstr "Asennussijainti"
|
||||
msgstr "Asennuspaikka"
|
||||
|
||||
#: data/gtk/preferences.blp:100 cartridges/importer/lutris_source.py:92
|
||||
msgid "Lutris"
|
||||
@@ -277,7 +273,7 @@ msgstr "itch"
|
||||
|
||||
#: data/gtk/preferences.blp:204 cartridges/importer/legendary_source.py:97
|
||||
msgid "Legendary"
|
||||
msgstr ""
|
||||
msgstr "Legendaarinen"
|
||||
|
||||
#: data/gtk/preferences.blp:221 cartridges/importer/retroarch_source.py:142
|
||||
msgid "RetroArch"
|
||||
@@ -289,7 +285,7 @@ msgstr "Flatpak"
|
||||
|
||||
#: data/gtk/preferences.blp:254
|
||||
msgid "Import Game Launchers"
|
||||
msgstr "Tuo pelikäynnistimiä"
|
||||
msgstr "Tuo pelin käynnistimet"
|
||||
|
||||
#: data/gtk/preferences.blp:259 cartridges/importer/desktop_source.py:215
|
||||
msgid "Desktop Entries"
|
||||
@@ -313,15 +309,15 @@ msgstr "Käytä SteamGridDB:tä"
|
||||
|
||||
#: data/gtk/preferences.blp:282
|
||||
msgid "Download images when adding or importing games"
|
||||
msgstr "Lataa kuvat pelejä lisätessä tai tuotaessa"
|
||||
msgstr "Lataa kuvia, kun lisäät tai tuot pelejä"
|
||||
|
||||
#: data/gtk/preferences.blp:286
|
||||
msgid "Prefer Over Official Images"
|
||||
msgstr "Suosi virallisten kuvien sijaan"
|
||||
msgstr "Mieluummin kuin virallisia kuvia"
|
||||
|
||||
#: data/gtk/preferences.blp:290
|
||||
msgid "Prefer Animated Images"
|
||||
msgstr "Suosi animoituja kuvia"
|
||||
msgstr "Mieluummin animoituja kuvia"
|
||||
|
||||
#: data/gtk/preferences.blp:296
|
||||
msgid "Update Covers"
|
||||
@@ -453,7 +449,7 @@ msgstr "Lisää"
|
||||
|
||||
#: cartridges/details_window.py:93
|
||||
msgid "Executables"
|
||||
msgstr "Suoritettavat tiedostot"
|
||||
msgstr "Suoritettava"
|
||||
|
||||
#. Translate this string as you would translate "file"
|
||||
#: cartridges/details_window.py:108
|
||||
@@ -487,11 +483,11 @@ msgid ""
|
||||
"\n"
|
||||
"If the path contains spaces, make sure to wrap it in double quotes!"
|
||||
msgstr ""
|
||||
"Käynnistääksesi suoritettavan ohjelman \"{exe_name}\", käytä komentoa:\n"
|
||||
"Käynnistääksesi suoritettavan ohjelman \"{}\", käytä komentoa:\n"
|
||||
"\n"
|
||||
"<tt>\"{}\"</tt>\n"
|
||||
"\n"
|
||||
"Avataksesi tiedoston \"{}\" oletussovelluksella, käytä komentoa:\n"
|
||||
"Jos haluat avata tiedoston \"{}\" oletussovelluksella, käytä komentoa:\n"
|
||||
"\n"
|
||||
"<tt>{} \"{}\"</tt>\n"
|
||||
"\n"
|
||||
@@ -537,8 +533,8 @@ msgstr "Kaikki pelit poistettu"
|
||||
msgid ""
|
||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||
msgstr ""
|
||||
"API-avain on pakollinen, jos haluat käyttää SteamGridDB:tä. Voit luoda "
|
||||
"avaimen {}täällä{}."
|
||||
"SteamGridDB:n käyttäminen edellyttää API-avainta. Voit luoda sellaisen "
|
||||
"{}täältä{}."
|
||||
|
||||
#: cartridges/preferences.py:184
|
||||
msgid "Downloading covers…"
|
||||
@@ -627,10 +623,8 @@ msgid "Games with no core selected were not imported"
|
||||
msgstr "Pelejä, joihin ei ole valittu ydintä, ei tuotu"
|
||||
|
||||
#: cartridges/store/managers/sgdb_manager.py:46
|
||||
#, fuzzy
|
||||
#| msgid "Couldn't Connect to SteamGridDB"
|
||||
msgid "Couldn't Authenticate SteamGridDB"
|
||||
msgstr "Ei voitu yhdistää SteamGridDB:hen"
|
||||
msgstr "Ei voitu kirjautua SteamGridDB:hen"
|
||||
|
||||
#: cartridges/store/managers/sgdb_manager.py:47
|
||||
msgid "Verify your API key in preferences"
|
||||
|
||||
8
po/fr.po
8
po/fr.po
@@ -12,8 +12,8 @@ msgstr ""
|
||||
"Project-Id-Version: cartridges\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-10-10 22:22+0200\n"
|
||||
"PO-Revision-Date: 2023-10-14 05:01+0000\n"
|
||||
"Last-Translator: rene-coty <irenee.thirion@e.email>\n"
|
||||
"PO-Revision-Date: 2023-11-05 22:34+0000\n"
|
||||
"Last-Translator: John Donne <akheron@zaclys.net>\n"
|
||||
"Language-Team: French <https://hosted.weblate.org/projects/cartridges/"
|
||||
"cartridges/fr/>\n"
|
||||
"Language: fr\n"
|
||||
@@ -21,7 +21,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 5.1-dev\n"
|
||||
"X-Generator: Weblate 5.2-dev\n"
|
||||
|
||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6
|
||||
@@ -545,7 +545,7 @@ msgstr "Téléchargement des pochettes des jeux…"
|
||||
|
||||
#: cartridges/preferences.py:203
|
||||
msgid "Covers updated"
|
||||
msgstr "Pochettes mises à jour"
|
||||
msgstr "Couvertures des jeux mises à jour"
|
||||
|
||||
#: cartridges/preferences.py:335
|
||||
msgid "Installation Not Found"
|
||||
|
||||
8
po/ta.po
8
po/ta.po
@@ -9,7 +9,7 @@ msgstr ""
|
||||
"Project-Id-Version: Cartridges\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-10-10 22:22+0200\n"
|
||||
"PO-Revision-Date: 2023-09-30 08:01+0000\n"
|
||||
"PO-Revision-Date: 2023-11-12 11:42+0000\n"
|
||||
"Last-Translator: \"K.B.Dharun Krishna\" <kbdharunkrishna@gmail.com>\n"
|
||||
"Language-Team: Tamil <https://hosted.weblate.org/projects/cartridges/"
|
||||
"cartridges/ta/>\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 5.1-dev\n"
|
||||
"X-Generator: Weblate 5.2-dev\n"
|
||||
|
||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6
|
||||
@@ -40,8 +40,8 @@ msgstr "உங்கள் எல்லா விளையாட்டுகள
|
||||
msgid ""
|
||||
"gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;legendary;retroarch;"
|
||||
msgstr ""
|
||||
"விளையாட்டு; துவக்கி; steam;lutris;heroic;பாட்டில்கள்;itch;flatpak;legendary;"
|
||||
"Retroarch;"
|
||||
"விளையாட்டு; துவக்கி; "
|
||||
"steam;lutris;heroic;பாட்டில்கள்;itch;flatpak;legendary;retroarch;"
|
||||
|
||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:9
|
||||
msgid ""
|
||||
|
||||
6
po/tr.po
6
po/tr.po
@@ -7,7 +7,7 @@ msgstr ""
|
||||
"Project-Id-Version: Cartridges\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-10-10 22:22+0200\n"
|
||||
"PO-Revision-Date: 2023-10-03 16:11+0000\n"
|
||||
"PO-Revision-Date: 2023-11-03 16:11+0000\n"
|
||||
"Last-Translator: Sabri Ünal <libreajans@gmail.com>\n"
|
||||
"Language-Team: Turkish <https://hosted.weblate.org/projects/cartridges/"
|
||||
"cartridges/tr/>\n"
|
||||
@@ -16,7 +16,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.1-dev\n"
|
||||
"X-Generator: Weblate 5.2-dev\n"
|
||||
|
||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6
|
||||
@@ -175,7 +175,7 @@ msgstr "Davranış"
|
||||
|
||||
#: data/gtk/preferences.blp:15
|
||||
msgid "Exit After Launching Games"
|
||||
msgstr "Oyunu Başlatıldıktan Sonra Çık"
|
||||
msgstr "Oyunları Başlattıktan Sonra Çık"
|
||||
|
||||
#: data/gtk/preferences.blp:19
|
||||
msgid "Cover Image Launches Game"
|
||||
|
||||
6
po/uk.po
6
po/uk.po
@@ -11,7 +11,7 @@ msgstr ""
|
||||
"Project-Id-Version: cartridges\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-10-10 22:22+0200\n"
|
||||
"PO-Revision-Date: 2023-10-05 19:10+0000\n"
|
||||
"PO-Revision-Date: 2023-10-24 17:02+0000\n"
|
||||
"Last-Translator: Andrii Murha <flat.assembly@gmail.com>\n"
|
||||
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/cartridges/"
|
||||
"cartridges/uk/>\n"
|
||||
@@ -21,7 +21,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 5.1-dev\n"
|
||||
"X-Generator: Weblate 5.1.1-dev\n"
|
||||
|
||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6
|
||||
@@ -145,7 +145,7 @@ msgstr "Вийти"
|
||||
|
||||
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:88 data/gtk/window.blp:164
|
||||
msgid "Toggle Sidebar"
|
||||
msgstr "Перкключити бічну панель"
|
||||
msgstr "Переключити бічну панель"
|
||||
|
||||
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:177 data/gtk/window.blp:236
|
||||
msgid "Main Menu"
|
||||
|
||||
@@ -165,7 +165,11 @@ class SearchCartridgesService(Server, Gio.Application):
|
||||
continue
|
||||
|
||||
try:
|
||||
if any({data["hidden"], data["blacklisted"], data["removed"]}):
|
||||
# Use .get for compatibility with pre-2.0 games
|
||||
if any(
|
||||
{data.get("hidden"), data.get("blacklisted"), data.get("removed")}
|
||||
):
|
||||
print(f"Skipped {game_file.name}")
|
||||
continue
|
||||
|
||||
self.games[data["game_id"]] = (data["name"], data["developer"])
|
||||
@@ -272,7 +276,6 @@ class SearchCartridgesService(Server, Gio.Application):
|
||||
search = " ".join(terms).lower()
|
||||
try:
|
||||
for game_id, data in self.games.items():
|
||||
print(game_id, data)
|
||||
if search in data[0].lower():
|
||||
game_ids.append(game_id)
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user