Compare commits

...

16 Commits
v2.6 ... v2.6.2

Author SHA1 Message Date
kramo
9b24f7c473 v2.6.2 2023-11-03 17:15:06 +01:00
Weblate (bot)
644bf10713 Translations update from Hosted Weblate (#208)
* Translated using Weblate (Belarusian)

Currently translated at 100.0% (136 of 136 strings)

Co-authored-by: Yahor <k1llo2810@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/be/
Translation: Cartridges/Cartridges

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (136 of 136 strings)

Co-authored-by: Andrii Murha <flat.assembly@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/uk/
Translation: Cartridges/Cartridges

---------

Co-authored-by: Yahor <k1llo2810@protonmail.com>
Co-authored-by: Andrii Murha <flat.assembly@gmail.com>
2023-11-03 17:14:15 +01:00
kramo
2962988727 Fix old games not showing up in search provider 2023-11-03 17:11:25 +01:00
kramo
6d3d6e6a8f Use local options for command line 2023-10-27 14:54:59 +02:00
kramo
9557caecbc Use Blueprint menu item shorthands 2023-10-22 22:36:14 +02:00
kramo
a48841e5cb v2.6.1 2023-10-21 13:55:57 +02:00
Weblate (bot)
59966e9198 Translations update from Hosted Weblate (#203)
* Translated using Weblate (Russian)

Currently translated at 100.0% (136 of 136 strings)

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

* Translated using Weblate (Belarusian)

Currently translated at 100.0% (136 of 136 strings)

Added translation using Weblate (Belarusian)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Yahor <g_egor98@tut.by>
Co-authored-by: Yahor <k1llo2810@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/be/
Translation: Cartridges/Cartridges

* Translated using Weblate (French)

Currently translated at 100.0% (136 of 136 strings)

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

* Translated using Weblate (Swedish)

Currently translated at 100.0% (136 of 136 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/sv/
Translation: Cartridges/Cartridges

* Translated using Weblate (Chinese (Simplified))

Currently translated at 24.2% (33 of 136 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 24.2% (33 of 136 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 24.2% (33 of 136 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 6.6% (9 of 136 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 6.6% (9 of 136 strings)

Added translation using Weblate (Chinese (Simplified))

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Co-authored-by: 刘韬 <lyuutau@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/zh_Hans/
Translation: Cartridges/Cartridges

* Update translation files

Updated by "Squash Git commits" hook in Weblate.

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

---------

Co-authored-by: Сергей <asvmail.as@gmail.com>
Co-authored-by: Yahor <g_egor98@tut.by>
Co-authored-by: Yahor <k1llo2810@gmail.com>
Co-authored-by: rene-coty <irenee.thirion@e.email>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Co-authored-by: 刘韬 <lyuutau@outlook.com>
2023-10-21 13:55:01 +02:00
kramo
69394d01ec Add spinner for fetching SGDB covers 2023-10-21 13:46:29 +02:00
kramo
684f457713 Add extra args to po/meson.build 2023-10-21 10:37:40 +02:00
kramo
baa4d6f0c4 Merge pull request #205 from sabriunal/fix-purism 2023-10-20 21:33:00 +02:00
Sabri Ünal
2662d66058 appdata: Remove Purism metadata
This metadata is invalid: custom data is a dictionary and using the same
key multiple times in a dictionary does not work

More information: https://github.com/ximion/appstream/issues/476
2023-10-20 22:27:35 +03:00
kramo
2cd670fcfe Ignore 'the' prefix when sorting - fixes #204 2023-10-20 15:28:41 +02:00
kramo
38bed27c61 oops 2023-10-15 21:57:17 +02:00
kramo
815c1ec088 Explicit is better than implicit 🐍🤓 2023-10-14 20:32:22 +02:00
kramo
89ba4aecaa Set last_played if launching from the command line 2023-10-14 20:27:56 +02:00
kramo
82ff5b3b46 Add tiff_compression build option 2023-10-13 16:58:08 +02:00
23 changed files with 1392 additions and 175 deletions

View File

@@ -22,6 +22,7 @@ import lzma
import os
import shlex
import sys
from time import time
from typing import Any, Optional
import gi
@@ -65,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"""
@@ -158,39 +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((shared.games_dir / (game_id + ".json")).open("r"))
executable = (
shlex.join(data["executable"])
if isinstance(data["executable"], list)
else data["executable"]
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"
)
name = data["name"]
run_executable(executable)
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():
@@ -241,6 +260,7 @@ class CartridgesApplication(Adw.Application):
"Domenico https://github.com/Domefemia",
"Rafael Mardojai CM https://mardojai.com",
"Clara Hobbs https://github.com/Ratfink",
"Sabri Ünal https://github.com/sabriunal",
)
)
about.set_designers(("kramo https://kramo.hu",))

View File

@@ -107,6 +107,8 @@ class PreferencesWindow(Adw.PreferencesWindow):
sgdb_prefer_switch = Gtk.Template.Child()
sgdb_animated_switch = Gtk.Template.Child()
sgdb_fetch_button = Gtk.Template.Child()
sgdb_stack = Gtk.Template.Child()
sgdb_spinner = Gtk.Template.Child()
danger_zone_group = Gtk.Template.Child()
reset_action_row = Gtk.Template.Child()
@@ -181,6 +183,9 @@ class PreferencesWindow(Adw.PreferencesWindow):
sgdb_manager = shared.store.managers[SgdbManager]
sgdb_manager.reset_cancellable()
self.sgdb_spinner.set_spinning(True)
self.sgdb_stack.set_visible_child(self.sgdb_spinner)
self.add_toast(download_toast := Adw.Toast.new(_("Downloading covers…")))
def update_cover_callback(manager: SgdbManager) -> None:
@@ -205,6 +210,9 @@ class PreferencesWindow(Adw.PreferencesWindow):
download_toast.dismiss()
self.add_toast(toast)
self.sgdb_spinner.set_spinning(False)
self.sgdb_stack.set_visible_child(self.sgdb_fetch_button)
for game in shared.store:
sgdb_manager.process_game(game, {}, update_cover_callback)

View File

@@ -36,6 +36,7 @@ APP_ID = "@APP_ID@"
VERSION = "@VERSION@"
PREFIX = "@PREFIX@"
PROFILE = "@PROFILE@"
TIFF_COMPRESSION = "@TIFF_COMPRESSION@"
SPEC_VERSION = 1.5 # The version of the game_id.json spec
schema = Gio.Settings.new(APP_ID)

View File

@@ -53,7 +53,7 @@ class FileManager(AsyncManager):
json.dump(
{attr: getattr(game, attr) for attr in attrs if attr},
(shared.games_dir / f"{game.game_id}.json").open("w"),
(shared.games_dir / f"{game.game_id}.json").open("w", encoding="utf-8"),
indent=4,
sort_keys=True,
)

View File

@@ -76,7 +76,7 @@ def migrate_files_v1_to_v2() -> None:
imported_execs = set()
for game_path in shared.games_dir.glob("imported_*.json"):
try:
game_data = json.load(game_path.open("r"))
game_data = json.load(game_path.open("r", encoding="utf-8"))
except (OSError, json.JSONDecodeError):
continue
number = int(game_data["game_id"].replace("imported_", ""))
@@ -86,7 +86,7 @@ def migrate_files_v1_to_v2() -> None:
# Migrate imported game files
for game_path in old_imported_game_paths:
try:
game_data = json.load(game_path.open("r"))
game_data = json.load(game_path.open("r", encoding="utf-8"))
except (OSError, json.JSONDecodeError):
continue
@@ -104,7 +104,7 @@ def migrate_files_v1_to_v2() -> None:
)
json.dump(
game_data,
destination_game_path.open("w"),
destination_game_path.open("w", encoding="utf-8"),
indent=4,
sort_keys=True,
)

View File

@@ -1,4 +1,4 @@
# save_cover.py
# run_executable.py
#
# Copyright 2023 kramo
#

View File

@@ -74,7 +74,7 @@ def convert_cover(
tmp_path,
compression="tiff_adobe_deflate"
if shared.schema.get_boolean("high-quality-images")
else "webp",
else shared.TIFF_COMPRESSION,
)
except UnidentifiedImageError:
try:

View File

@@ -413,9 +413,11 @@ class CartridgesWindow(Adw.ApplicationWindow):
order = False
def get_value(index: int) -> str:
return str(
getattr((child1.get_child(), child2.get_child())[index], var)
).lower()
return (
str(getattr((child1.get_child(), child2.get_child())[index], var))
.lower()
.removeprefix("the ")
)
if var != "name" and get_value(0) == get_value(1):
var, order = "name", False

View File

@@ -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")
}
}

View File

@@ -297,9 +297,14 @@ template $PreferencesWindow : Adw.PreferencesWindow {
subtitle: _("Fetch covers for games already in your library");
sensitive: bind sgdb_switch.active;
Button sgdb_fetch_button {
label: _("Update");
valign: center;
Stack sgdb_stack {
Button sgdb_fetch_button {
label: _("Update");
valign: center;
}
Spinner sgdb_spinner {
valign: center;
}
}
}
}

View File

@@ -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")
}
}

View File

@@ -24,10 +24,6 @@
<recommends>
<display_length compare="gt">280</display_length>
</recommends>
<custom>
<value key="Purism::form_factor">workstation</value>
<value key="Purism::form_factor">mobile</value>
</custom>
<screenshots>
<screenshot type="default">
<image>https://raw.githubusercontent.com/kra-mo/cartridges/main/data/screenshots/1.png</image>
@@ -48,6 +44,14 @@
</screenshots>
<content_rating type="oars-1.1" />
<releases>
<release version="2.6.2" date="2023-11-03">
<description translatable="no">
<ul>
<li>Fixed an issue with some games not showing up in GNOME search</li>
<li>Command line options are now properly supported</li>
</ul>
</description>
</release>
<release version="2.6" date="2023-10-11">
<description translatable="no">
<p>You can now search your Cartridges library from GNOME!</p>

View File

@@ -1,5 +1,5 @@
project('cartridges',
version: '2.6',
version: '2.6.2',
meson_version: '>= 0.59.0',
default_options: [ 'warning_level=2', 'werror=false', ],
)
@@ -31,6 +31,7 @@ conf.set('APP_ID', app_id)
conf.set('PREFIX', prefix)
conf.set('VERSION', meson.project_version())
conf.set('PROFILE', profile)
conf.set('TIFF_COMPRESSION', get_option('tiff_compression'))
conf.set('localedir', join_paths(get_option('prefix'), get_option('localedir')))
conf.set('pkgdatadir', pkgdatadir)
conf.set('libexecdir', libexecdir)

View File

@@ -7,3 +7,12 @@ option(
],
value: 'release'
)
option(
'tiff_compression',
type: 'combo',
choices: [
'webp',
'jpeg',
],
value: 'webp'
)

View File

@@ -20,3 +20,5 @@ sv
tr
el
cs
zh_Hans
be

630
po/be.po Normal file
View File

@@ -0,0 +1,630 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR kramo
# 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-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"
"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 5.2-dev\n"
#: data/hu.kramo.Cartridges.desktop.in:3
#: data/hu.kramo.Cartridges.metainfo.xml.in:6
#: data/hu.kramo.Cartridges.metainfo.xml.in:30 data/gtk/window.blp:47
#: data/gtk/window.blp:80 cartridges/main.py:185
msgid "Cartridges"
msgstr "Картрыджы"
#: data/hu.kramo.Cartridges.desktop.in:4
msgid "Game Launcher"
msgstr "Праграма запуску гульняў"
#: data/hu.kramo.Cartridges.desktop.in:5
#: data/hu.kramo.Cartridges.metainfo.xml.in:7
msgid "Launch all your games"
msgstr "Запускайце ўсе свае гульні"
#: data/hu.kramo.Cartridges.desktop.in:11
msgid ""
"gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;legendary;retroarch;"
msgstr ""
"гульні;праграма "
"запуску;steam;lutris;heroic;bottles;itch;flatpak;legendary;retroarch;"
#: data/hu.kramo.Cartridges.metainfo.xml.in:9
msgid ""
"Cartridges is a simple game launcher for all of your games. It has support "
"for importing games from Steam, Lutris, Heroic and more with no login "
"necessary. You can sort and hide games or download cover art from "
"SteamGridDB."
msgstr ""
"Картрыджы - гэта простая праграма для запуску ўсіх вашых гульняў. Яна "
"падтрымлівае імпарт гульняў з Steam, Lutris, Heroic і іншых без неабходнасці "
"ўваходу ў сістэму. Вы можаце сартаваць і хаваць гульні або спампоўваць "
"вокладку з SteamGridDB."
#: data/hu.kramo.Cartridges.metainfo.xml.in:34 data/gtk/window.blp:288
#: cartridges/details_window.py:71
msgid "Game Details"
msgstr "Падрабязнасці аб гульні"
#: data/hu.kramo.Cartridges.metainfo.xml.in:38
msgid "Edit Game Details"
msgstr "Рэдагаваць падрабязнасці аб гульні"
#: data/hu.kramo.Cartridges.metainfo.xml.in:42 data/gtk/help-overlay.blp:19
#: data/gtk/window.blp:515 cartridges/details_window.py:271
#: cartridges/importer/importer.py:319 cartridges/importer/importer.py:370
msgid "Preferences"
msgstr "Параметры"
#: data/gtk/details-window.blp:25
msgid "Cancel"
msgstr "Скасаваць"
#: data/gtk/details-window.blp:55
msgid "New Cover"
msgstr "Новая вокладка"
#: data/gtk/details-window.blp:73
msgid "Delete Cover"
msgstr "Выдалиць вокладку"
#: data/gtk/details-window.blp:100 data/gtk/game.blp:81
msgid "Title"
msgstr "Назва"
#: data/gtk/details-window.blp:103
msgid "Developer (optional)"
msgstr "Распрацоўшчык (неабавязкова)"
#: data/gtk/details-window.blp:108
msgid "Executable"
msgstr "Выконваны"
#: data/gtk/details-window.blp:114
msgid "Select File"
msgstr "Выбраць файл"
#: data/gtk/details-window.blp:125
msgid "More Info"
msgstr "Больш інфармацыі"
#: data/gtk/game.blp:103 data/gtk/game.blp:122 data/gtk/window.blp:415
msgid "Edit"
msgstr "Рэдагаваць"
#: data/gtk/game.blp:108 cartridges/window.py:350
msgid "Hide"
msgstr "Схаваць"
#: data/gtk/game.blp:113 data/gtk/game.blp:132 data/gtk/preferences.blp:40
#: data/gtk/window.blp:435
msgid "Remove"
msgstr "Выдаліць"
#: data/gtk/game.blp:127 cartridges/window.py:352
msgid "Unhide"
msgstr "Паказаць"
#: data/gtk/help-overlay.blp:11 data/gtk/preferences.blp:8
msgid "General"
msgstr "Агульнае"
#: data/gtk/help-overlay.blp:14 data/gtk/window.blp:184 data/gtk/window.blp:243
#: data/gtk/window.blp:446
msgid "Search"
msgstr "Пошук"
#: data/gtk/help-overlay.blp:24 data/gtk/window.blp:520
msgid "Keyboard Shortcuts"
msgstr "Спалучэнні клавіш"
#: data/gtk/help-overlay.blp:29 cartridges/game.py:103
#: cartridges/preferences.py:125 cartridges/importer/importer.py:394
msgid "Undo"
msgstr "Адмяніць"
#: data/gtk/help-overlay.blp:34
msgid "Quit"
msgstr "Выйсці"
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:88 data/gtk/window.blp:164
msgid "Toggle Sidebar"
msgstr "Пераключыць бакавую панэль"
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:177 data/gtk/window.blp:236
msgid "Main Menu"
msgstr "Галоўнае меню"
#: data/gtk/help-overlay.blp:50
msgid "Games"
msgstr "Гульні"
#: data/gtk/help-overlay.blp:53 data/gtk/window.blp:170 data/gtk/window.blp:534
msgid "Add Game"
msgstr "Дадаць гульню"
#: data/gtk/help-overlay.blp:58 data/gtk/preferences.blp:68
#: data/gtk/window.blp:27 data/gtk/window.blp:541
msgid "Import"
msgstr "Імпарт"
#: data/gtk/help-overlay.blp:63
msgid "Show Hidden Games"
msgstr "Паказаць схаваныя гульні"
#: data/gtk/help-overlay.blp:68
msgid "Remove Game"
msgstr "Выдаліць гульню"
#: data/gtk/preferences.blp:12 data/gtk/preferences.blp:72
#: data/gtk/preferences.blp:278
msgid "Behavior"
msgstr "Паводзіны"
#: data/gtk/preferences.blp:15
msgid "Exit After Launching Games"
msgstr "Выхад пасля запуску гульняў"
#: data/gtk/preferences.blp:19
msgid "Cover Image Launches Game"
msgstr "Выява вокладкі запускае гульню"
#: data/gtk/preferences.blp:20
msgid "Swaps the behavior of the cover image and the play button"
msgstr "Мяняе паводзіны вокладкі і кнопкі запуску"
#: data/gtk/preferences.blp:25 cartridges/details_window.py:85
msgid "Images"
msgstr "Відарысы"
#: data/gtk/preferences.blp:28
msgid "High Quality Images"
msgstr "Відарысы высокай якасці"
#: data/gtk/preferences.blp:29
msgid "Save game covers losslessly at the cost of storage"
msgstr "Захаванне вокладак гульняў без страт за кошт сховішча"
#: data/gtk/preferences.blp:34
msgid "Danger Zone"
msgstr "Небяспечная зона"
#: data/gtk/preferences.blp:37
msgid "Remove All Games"
msgstr "Выдаліць усе гульні"
#: data/gtk/preferences.blp:75
msgid "Remove Uninstalled Games"
msgstr "Выдаляць дэінсталяваныя гульні"
#: data/gtk/preferences.blp:80
msgid "Sources"
msgstr "Крыніцы"
#: data/gtk/preferences.blp:83 cartridges/importer/steam_source.py:114
msgid "Steam"
msgstr "Steam"
#: data/gtk/preferences.blp:87 data/gtk/preferences.blp:104
#: data/gtk/preferences.blp:141 data/gtk/preferences.blp:174
#: data/gtk/preferences.blp:191 data/gtk/preferences.blp:208
#: data/gtk/preferences.blp:225 data/gtk/preferences.blp:242
msgid "Install Location"
msgstr "Месца ўсталёўкі"
#: data/gtk/preferences.blp:100 cartridges/importer/lutris_source.py:92
msgid "Lutris"
msgstr "Lutris"
#: data/gtk/preferences.blp:116
msgid "Cache Location"
msgstr "Размяшчэнне кэша"
#: data/gtk/preferences.blp:128
msgid "Import Steam Games"
msgstr "Імпарт гульняў Steam"
#: data/gtk/preferences.blp:132
msgid "Import Flatpak Games"
msgstr "Імпарт гульняў Flatpak"
#: data/gtk/preferences.blp:137 cartridges/importer/heroic_source.py:355
msgid "Heroic"
msgstr "Heroic"
#: data/gtk/preferences.blp:153
msgid "Import Epic Games"
msgstr "Імпарт Epic Games"
#: data/gtk/preferences.blp:157
msgid "Import GOG Games"
msgstr "Імпарт гульняў GOG"
#: data/gtk/preferences.blp:161
msgid "Import Amazon Games"
msgstr "Імпарт гульняў Amazon"
#: data/gtk/preferences.blp:165
msgid "Import Sideloaded Games"
msgstr "Імпарт іншых гульняў"
#: data/gtk/preferences.blp:170 cartridges/importer/bottles_source.py:86
msgid "Bottles"
msgstr "Bottles"
#: data/gtk/preferences.blp:187 cartridges/importer/itch_source.py:81
msgid "itch"
msgstr "itch"
#: data/gtk/preferences.blp:204 cartridges/importer/legendary_source.py:97
msgid "Legendary"
msgstr "Legendary"
#: data/gtk/preferences.blp:221 cartridges/importer/retroarch_source.py:142
msgid "RetroArch"
msgstr "RetroArch"
#: data/gtk/preferences.blp:238 cartridges/importer/flatpak_source.py:118
msgid "Flatpak"
msgstr "Flatpak"
#: data/gtk/preferences.blp:254
msgid "Import Game Launchers"
msgstr "Імпарт сродкаў запуску гульняў"
#: data/gtk/preferences.blp:259 cartridges/importer/desktop_source.py:215
msgid "Desktop Entries"
msgstr "Запісы працоўнага стала"
#: data/gtk/preferences.blp:266
msgid "SteamGridDB"
msgstr "SteamGridDB"
#: data/gtk/preferences.blp:270
msgid "Authentication"
msgstr "Аўтэнтыфікацыя"
#: data/gtk/preferences.blp:273
msgid "API Key"
msgstr "Ключ API"
#: data/gtk/preferences.blp:281
msgid "Use SteamGridDB"
msgstr "Выкарыстоўвайць SteamGridDB"
#: data/gtk/preferences.blp:282
msgid "Download images when adding or importing games"
msgstr "Спампоўка відарысаў пры даданні ці імпарце гульняў"
#: data/gtk/preferences.blp:286
msgid "Prefer Over Official Images"
msgstr "Аддавайце перавагу афіцыйным відарысам"
#: data/gtk/preferences.blp:290
msgid "Prefer Animated Images"
msgstr "Аддавайце перавагу аніміраваным відарысам"
#: data/gtk/preferences.blp:296
msgid "Update Covers"
msgstr "Абнавіць вокладкі"
#: data/gtk/preferences.blp:297
msgid "Fetch covers for games already in your library"
msgstr "Атрымаць вокладкі для гульняў, якія ўжо ёсць у вашай бібліятэцы"
#: data/gtk/preferences.blp:301
msgid "Update"
msgstr "Абнавіць"
#: data/gtk/window.blp:6 data/gtk/window.blp:14
msgid "No Games Found"
msgstr "Гульні не знойдзены"
#: data/gtk/window.blp:7 data/gtk/window.blp:15
msgid "Try a different search."
msgstr "Паспрабуйце іншы пошук."
#: data/gtk/window.blp:21
msgid "No Games"
msgstr "Няма гульняў"
#: data/gtk/window.blp:22
msgid "Use the + button to add games."
msgstr "Выкарыстоўвайце кнопку +, каб дадаць гульні."
#: data/gtk/window.blp:40
msgid "No Hidden Games"
msgstr "Няма схаваных гульняў"
#: data/gtk/window.blp:41
msgid "Games you hide will appear here."
msgstr "Гульні, якія вы схаваеце, з'явяцца тут."
#: data/gtk/window.blp:75 data/gtk/window.blp:106 cartridges/main.py:207
msgid "All Games"
msgstr "Усе гульні"
#: data/gtk/window.blp:126 cartridges/main.py:209
msgid "Added"
msgstr "Дададзена"
#: data/gtk/window.blp:141
msgid "Imported"
msgstr "Імпартавана"
#: data/gtk/window.blp:229
msgid "Hidden Games"
msgstr "Схаваныя гульні"
#: data/gtk/window.blp:339
msgid "Game Title"
msgstr "Назва гульні"
#: data/gtk/window.blp:396
msgid "Play"
msgstr "Гуляць"
#: data/gtk/window.blp:473
msgid "Sort"
msgstr "Сартаваць"
#: data/gtk/window.blp:476
msgid "A-Z"
msgstr "А-Я"
#: data/gtk/window.blp:482
msgid "Z-A"
msgstr "Я-А"
#: data/gtk/window.blp:488
msgid "Newest"
msgstr "Найноўшыя"
#: data/gtk/window.blp:494
msgid "Oldest"
msgstr "Старэйшыя"
#: data/gtk/window.blp:500
msgid "Last Played"
msgstr "Апошняя гульня"
#: data/gtk/window.blp:507
msgid "Show Hidden"
msgstr "Паказаць схаваныя"
#: data/gtk/window.blp:525
msgid "About Cartridges"
msgstr "Аб картрыджах"
#. The variable is the title of the game
#: cartridges/main.py:186 cartridges/game.py:125
msgid "{} launched"
msgstr "{} запушчана"
#. Translators: Replace this with your name for it to show up in the about window
#: cartridges/main.py:249
msgid "translator_credits"
msgstr "Yahor Haurylenka https://github.com/k1llo"
#. The variable is the date when the game was added
#: cartridges/window.py:373
msgid "Added: {}"
msgstr "Дададзена: {}"
#: cartridges/window.py:376
msgid "Never"
msgstr "Ніколі"
#. The variable is the date when the game was last played
#: cartridges/window.py:380
msgid "Last played: {}"
msgstr "Гулялі апошні раз: {}"
#: cartridges/details_window.py:76
msgid "Apply"
msgstr "Ужыць"
#: cartridges/details_window.py:82
msgid "Add New Game"
msgstr "Дадаць новую гульню"
#: cartridges/details_window.py:83
msgid "Add"
msgstr "Дадаць"
#: cartridges/details_window.py:93
msgid "Executables"
msgstr "Выконваныя"
#. Translate this string as you would translate "file"
#: cartridges/details_window.py:108
msgid "file.txt"
msgstr "file.txt"
#. As in software
#: cartridges/details_window.py:110
msgid "program"
msgstr "праграма"
#. Translate this string as you would translate "path to {}"
#: cartridges/details_window.py:115 cartridges/details_window.py:117
msgid "C:\\path\\to\\{}"
msgstr "C:\\шлях\\да\\{}"
#. Translate this string as you would translate "path to {}"
#: cartridges/details_window.py:121 cartridges/details_window.py:123
msgid "/path/to/{}"
msgstr "/шлях/да/{}"
#: cartridges/details_window.py:128
msgid ""
"To launch the executable \"{}\", use the command:\n"
"\n"
"<tt>\"{}\"</tt>\n"
"\n"
"To open the file \"{}\" with the default application, use:\n"
"\n"
"<tt>{} \"{}\"</tt>\n"
"\n"
"If the path contains spaces, make sure to wrap it in double quotes!"
msgstr ""
"Каб запусціць выкананы файл \"{}\", выканайце каманду:\n"
"\n"
"<tt>\"{}\"</tt>\n"
"\n"
"Каб адкрыць файл \"{}\" з дапамогай праграмы па змаўчанні, выкарыстоўвайце:\n"
"\n"
"<tt>{} \"{}\"</tt>\n"
"\n"
"Калі шлях змяшчае прабелы, абавязкова заключыце яго ў падвойныя двукоссі!"
#: cartridges/details_window.py:171 cartridges/details_window.py:177
msgid "Couldn't Add Game"
msgstr "Не ўдалося дадаць гульню"
#: cartridges/details_window.py:171 cartridges/details_window.py:213
msgid "Game title cannot be empty."
msgstr "Назва гульні не можа быць пустой."
#: cartridges/details_window.py:177 cartridges/details_window.py:221
msgid "Executable cannot be empty."
msgstr "Выканальны файл не можа быць пустым."
#: cartridges/details_window.py:212 cartridges/details_window.py:220
msgid "Couldn't Apply Preferences"
msgstr "Не ўдалося прымяніць параметры"
#. The variable is the title of the game
#: cartridges/game.py:139
msgid "{} hidden"
msgstr "{} схаваная"
#: cartridges/game.py:139
msgid "{} unhidden"
msgstr "{} непрыхавана"
#. The variable is the title of the game
#. The variable is the number of games removed
#: cartridges/game.py:153 cartridges/importer/importer.py:391
msgid "{} removed"
msgstr "{} выдалена"
#: cartridges/preferences.py:124
msgid "All games removed"
msgstr "Усе гульні выдалены"
#: cartridges/preferences.py:172
msgid ""
"An API key is required to use SteamGridDB. You can generate one {}here{}."
msgstr ""
"Для выкарыстання SteamGridDB патрабуецца ключ API. Вы можаце стварыць яго "
"{}тут{}."
#: cartridges/preferences.py:184
msgid "Downloading covers…"
msgstr "Спампоўка вокладак…"
#: cartridges/preferences.py:203
msgid "Covers updated"
msgstr "Вокладкі абноўлены"
#: cartridges/preferences.py:335
msgid "Installation Not Found"
msgstr "Усталяванне не знойдзена"
#: cartridges/preferences.py:336
msgid "Select a valid directory."
msgstr "Выберыце сапраўдны каталог."
#: cartridges/preferences.py:372 cartridges/importer/importer.py:317
msgid "Warning"
msgstr "Увага"
#: cartridges/preferences.py:406
msgid "Invalid Directory"
msgstr "Няправільны каталог"
#: cartridges/preferences.py:412
msgid "Set Location"
msgstr "Задаць размяшчэнне"
#: cartridges/utils/create_dialog.py:33 cartridges/importer/importer.py:318
msgid "Dismiss"
msgstr "Адхіліць"
#: cartridges/importer/importer.py:145
msgid "Importing Games…"
msgstr "Імпарт гульняў…"
#: cartridges/importer/importer.py:338
msgid "The following errors occured during import:"
msgstr "Падчас імпарту адбыліся наступныя памылкі:"
#: cartridges/importer/importer.py:367
msgid "No new games found"
msgstr "Новыя гульні не знойдзены"
#: cartridges/importer/importer.py:379
msgid "1 game imported"
msgstr "Імпартавана 1 гульня"
#. The variable is the number of games
#: cartridges/importer/importer.py:383
msgid "{} games imported"
msgstr "{} гульняў імпартавана"
#. A single game removed
#: cartridges/importer/importer.py:387
msgid "1 removed"
msgstr "1 выдалена"
#. The variable is the name of the source
#: cartridges/importer/location.py:33
msgid "Select the {} cache directory."
msgstr "Выберыце каталог кэша {}."
#. The variable is the name of the source
#: cartridges/importer/location.py:35
msgid "Select the {} configuration directory."
msgstr "Выберыце каталог канфігурацыі {}."
#. The variable is the name of the source
#: cartridges/importer/location.py:37
msgid "Select the {} data directory."
msgstr "Выберыце каталог даных {}."
#: cartridges/importer/retroarch_source.py:129
msgid "No RetroArch Core Selected"
msgstr "Ядро RetroArch не выбрана"
#. The variable is a newline separated list of playlists
#: cartridges/importer/retroarch_source.py:131
msgid "The following playlists have no default core:"
msgstr "Наступныя плэйлісты не маюць ядра па змаўчанні:"
#: cartridges/importer/retroarch_source.py:133
msgid "Games with no core selected were not imported"
msgstr "Гульні без выбранага ядра не былі імпартаваныя"
#: cartridges/store/managers/sgdb_manager.py:46
msgid "Couldn't Authenticate SteamGridDB"
msgstr "Немагчыма аўтэнтыфікаваць SteamGridDB"
#: cartridges/store/managers/sgdb_manager.py:47
msgid "Verify your API key in preferences"
msgstr "Праверце свой ключ API ў наладах"

View File

@@ -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-09-21 14:55+0000\n"
"Last-Translator: Geoffrey Coulaud <geoffrey.coulaud+github@gmail.com>\n"
"PO-Revision-Date: 2023-10-14 05:01+0000\n"
"Last-Translator: rene-coty <irenee.thirion@e.email>\n"
"Language-Team: French <https://hosted.weblate.org/projects/cartridges/"
"cartridges/fr/>\n"
"Language: fr\n"
@@ -164,14 +164,10 @@ msgid "Import"
msgstr "Importer"
#: data/gtk/help-overlay.blp:63
#, fuzzy
#| msgid "Show hidden games"
msgid "Show Hidden Games"
msgstr "Afficher les jeux masqués"
#: data/gtk/help-overlay.blp:68
#, fuzzy
#| msgid "Remove game"
msgid "Remove Game"
msgstr "Supprimer le jeu"
@@ -327,18 +323,16 @@ msgid "Prefer Animated Images"
msgstr "Préférer les images animées"
#: data/gtk/preferences.blp:296
#, fuzzy
#| msgid "Delete Cover"
msgid "Update Covers"
msgstr "Supprimer la couverture"
msgstr "Mettre à jour les pochettes des jeux"
#: data/gtk/preferences.blp:297
msgid "Fetch covers for games already in your library"
msgstr ""
msgstr "Récupérer les pochettes des jeux déjà présents dans votre bibliothèque"
#: data/gtk/preferences.blp:301
msgid "Update"
msgstr ""
msgstr "Mise à jour"
#: data/gtk/window.blp:6 data/gtk/window.blp:14
msgid "No Games Found"
@@ -546,14 +540,12 @@ msgstr ""
"une {}ici{}."
#: cartridges/preferences.py:184
#, fuzzy
#| msgid "Importing Covers…"
msgid "Downloading covers…"
msgstr "Importation des pochettes des jeux…"
msgstr "Téléchargement des pochettes des jeux…"
#: cartridges/preferences.py:203
msgid "Covers updated"
msgstr ""
msgstr "Pochettes mises à jour"
#: cartridges/preferences.py:335
msgid "Installation Not Found"

View File

@@ -1 +1 @@
i18n.gettext('cartridges', preset: 'glib')
i18n.gettext('cartridges', preset: 'glib', args: ['--copyright-holder=kramo', '--package-name=Cartridges'])

View File

@@ -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-26 15:28+0000\n"
"PO-Revision-Date: 2023-10-14 05:01+0000\n"
"Last-Translator: Сергей <asvmail.as@gmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/cartridges/"
"cartridges/ru/>\n"
@@ -35,7 +35,7 @@ msgstr "Средство запуска игр"
#: data/hu.kramo.Cartridges.desktop.in:5
#: data/hu.kramo.Cartridges.metainfo.xml.in:7
msgid "Launch all your games"
msgstr "Запустите все свои игры"
msgstr "Запускайте все свои игры"
#: data/hu.kramo.Cartridges.desktop.in:11
msgid ""

View File

@@ -4,13 +4,14 @@
# micke <mikanybe@gmail.com>, 2023.
# micke <micke@users.noreply.hosted.weblate.org>, 2023.
# Luna Jernberg <droidbittin@gmail.com>, 2023.
# bittin1ddc447d824349b2 <bittin@reimu.nl>, 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-09-06 03:24+0000\n"
"Last-Translator: Luna Jernberg <droidbittin@gmail.com>\n"
"PO-Revision-Date: 2023-10-20 04:03+0000\n"
"Last-Translator: bittin1ddc447d824349b2 <bittin@reimu.nl>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/cartridges/"
"cartridges/sv/>\n"
"Language: sv\n"
@@ -18,7 +19,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.0.1-dev\n"
"X-Generator: Weblate 5.1\n"
#: data/hu.kramo.Cartridges.desktop.in:3
#: data/hu.kramo.Cartridges.metainfo.xml.in:6
@@ -142,7 +143,7 @@ msgstr "Avsluta"
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:88 data/gtk/window.blp:164
msgid "Toggle Sidebar"
msgstr ""
msgstr "Växla sidofält"
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:177 data/gtk/window.blp:236
msgid "Main Menu"
@@ -162,14 +163,10 @@ msgid "Import"
msgstr "Importera"
#: data/gtk/help-overlay.blp:63
#, fuzzy
#| msgid "Show hidden games"
msgid "Show Hidden Games"
msgstr "Visa dolda spel"
#: data/gtk/help-overlay.blp:68
#, fuzzy
#| msgid "Remove game"
msgid "Remove Game"
msgstr "Ta bort spel"
@@ -323,18 +320,16 @@ msgid "Prefer Animated Images"
msgstr "Föredra animerade bilder"
#: data/gtk/preferences.blp:296
#, fuzzy
#| msgid "Delete Cover"
msgid "Update Covers"
msgstr "Ta bort omslag"
msgstr "Uppdatera omslag"
#: data/gtk/preferences.blp:297
msgid "Fetch covers for games already in your library"
msgstr ""
msgstr "Hämta omslag till spel som redan finns i ditt bibliotek"
#: data/gtk/preferences.blp:301
msgid "Update"
msgstr ""
msgstr "Uppdatera"
#: data/gtk/window.blp:6 data/gtk/window.blp:14
msgid "No Games Found"
@@ -361,22 +356,16 @@ msgid "Games you hide will appear here."
msgstr "Spel som du döljer kommer visas här."
#: data/gtk/window.blp:75 data/gtk/window.blp:106 cartridges/main.py:207
#, fuzzy
#| msgid "Remove All Games"
msgid "All Games"
msgstr "Ta bort alla spel"
msgstr "Alla spel"
#: data/gtk/window.blp:126 cartridges/main.py:209
#, fuzzy
#| msgid "Added: {}"
msgid "Added"
msgstr "Tillagt: {}"
msgstr "Tillagt"
#: data/gtk/window.blp:141
#, fuzzy
#| msgid "Import"
msgid "Imported"
msgstr "Importera"
msgstr "Importerad"
#: data/gtk/window.blp:229
msgid "Hidden Games"
@@ -547,14 +536,12 @@ msgstr ""
"En API-nyckel krävs för att använda SteamGridDB. Du kan generera en {}här{}."
#: cartridges/preferences.py:184
#, fuzzy
#| msgid "Importing Covers…"
msgid "Downloading covers…"
msgstr "Importerar omslagsbilder…"
msgstr "Laddar ner omslagsbilder…"
#: cartridges/preferences.py:203
msgid "Covers updated"
msgstr ""
msgstr "Omslagsbilder uppdaterade"
#: cartridges/preferences.py:335
msgid "Installation Not Found"

View File

@@ -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"

611
po/zh_Hans.po Normal file
View File

@@ -0,0 +1,611 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR kramo
# This file is distributed under the same license as the Cartridges package.
# 刘韬 <lyuutau@outlook.com>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 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-18 04:12+0000\n"
"Last-Translator: 刘韬 <lyuutau@outlook.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"cartridges/cartridges/zh_Hans/>\n"
"Language: zh_Hans\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.1\n"
#: data/hu.kramo.Cartridges.desktop.in:3
#: data/hu.kramo.Cartridges.metainfo.xml.in:6
#: data/hu.kramo.Cartridges.metainfo.xml.in:30 data/gtk/window.blp:47
#: data/gtk/window.blp:80 cartridges/main.py:185
msgid "Cartridges"
msgstr "Cartridges"
#: data/hu.kramo.Cartridges.desktop.in:4
msgid "Game Launcher"
msgstr "游戏启动器"
#: data/hu.kramo.Cartridges.desktop.in:5
#: data/hu.kramo.Cartridges.metainfo.xml.in:7
msgid "Launch all your games"
msgstr ""
#: data/hu.kramo.Cartridges.desktop.in:11
msgid ""
"gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;legendary;retroarch;"
msgstr ""
#: 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 ""
#: data/hu.kramo.Cartridges.metainfo.xml.in:34 data/gtk/window.blp:288
#: cartridges/details_window.py:71
msgid "Game Details"
msgstr "游戏详情"
#: data/hu.kramo.Cartridges.metainfo.xml.in:38
msgid "Edit Game Details"
msgstr "编辑游戏详情"
#: data/hu.kramo.Cartridges.metainfo.xml.in:42 data/gtk/help-overlay.blp:19
#: data/gtk/window.blp:515 cartridges/details_window.py:271
#: cartridges/importer/importer.py:319 cartridges/importer/importer.py:370
msgid "Preferences"
msgstr ""
#: data/gtk/details-window.blp:25
msgid "Cancel"
msgstr "取消"
#: data/gtk/details-window.blp:55
msgid "New Cover"
msgstr "新封面"
#: data/gtk/details-window.blp:73
msgid "Delete Cover"
msgstr "删除封面"
#: data/gtk/details-window.blp:100 data/gtk/game.blp:81
msgid "Title"
msgstr "标题"
#: data/gtk/details-window.blp:103
msgid "Developer (optional)"
msgstr "开发者模式(可选)"
#: data/gtk/details-window.blp:108
msgid "Executable"
msgstr ""
#: data/gtk/details-window.blp:114
msgid "Select File"
msgstr "选择文件"
#: data/gtk/details-window.blp:125
msgid "More Info"
msgstr "更多信息"
#: data/gtk/game.blp:103 data/gtk/game.blp:122 data/gtk/window.blp:415
msgid "Edit"
msgstr "编辑"
#: data/gtk/game.blp:108 cartridges/window.py:350
msgid "Hide"
msgstr "隐藏"
#: data/gtk/game.blp:113 data/gtk/game.blp:132 data/gtk/preferences.blp:40
#: data/gtk/window.blp:435
msgid "Remove"
msgstr "移除"
#: data/gtk/game.blp:127 cartridges/window.py:352
msgid "Unhide"
msgstr "取消隐藏"
#: data/gtk/help-overlay.blp:11 data/gtk/preferences.blp:8
msgid "General"
msgstr ""
#: data/gtk/help-overlay.blp:14 data/gtk/window.blp:184 data/gtk/window.blp:243
#: data/gtk/window.blp:446
msgid "Search"
msgstr "搜索"
#: data/gtk/help-overlay.blp:24 data/gtk/window.blp:520
msgid "Keyboard Shortcuts"
msgstr "键盘快捷键"
#: data/gtk/help-overlay.blp:29 cartridges/game.py:103
#: cartridges/preferences.py:125 cartridges/importer/importer.py:394
msgid "Undo"
msgstr "撤销"
#: data/gtk/help-overlay.blp:34
msgid "Quit"
msgstr "退出"
#: data/gtk/help-overlay.blp:39 data/gtk/window.blp:88 data/gtk/window.blp:164
msgid "Toggle Sidebar"
msgstr ""
#: data/gtk/help-overlay.blp:44 data/gtk/window.blp:177 data/gtk/window.blp:236
msgid "Main Menu"
msgstr "主菜单"
#: data/gtk/help-overlay.blp:50
msgid "Games"
msgstr "游戏"
#: data/gtk/help-overlay.blp:53 data/gtk/window.blp:170 data/gtk/window.blp:534
msgid "Add Game"
msgstr "添加游戏"
#: data/gtk/help-overlay.blp:58 data/gtk/preferences.blp:68
#: data/gtk/window.blp:27 data/gtk/window.blp:541
msgid "Import"
msgstr "导入"
#: data/gtk/help-overlay.blp:63
msgid "Show Hidden Games"
msgstr "显示隐藏的游戏"
#: data/gtk/help-overlay.blp:68
msgid "Remove Game"
msgstr "移除游戏"
#: data/gtk/preferences.blp:12 data/gtk/preferences.blp:72
#: data/gtk/preferences.blp:278
msgid "Behavior"
msgstr ""
#: data/gtk/preferences.blp:15
msgid "Exit After Launching Games"
msgstr "启动游戏后退出"
#: data/gtk/preferences.blp:19
msgid "Cover Image Launches Game"
msgstr ""
#: data/gtk/preferences.blp:20
msgid "Swaps the behavior of the cover image and the play button"
msgstr ""
#: data/gtk/preferences.blp:25 cartridges/details_window.py:85
msgid "Images"
msgstr ""
#: data/gtk/preferences.blp:28
msgid "High Quality Images"
msgstr ""
#: data/gtk/preferences.blp:29
msgid "Save game covers losslessly at the cost of storage"
msgstr ""
#: data/gtk/preferences.blp:34
msgid "Danger Zone"
msgstr ""
#: data/gtk/preferences.blp:37
msgid "Remove All Games"
msgstr ""
#: data/gtk/preferences.blp:75
msgid "Remove Uninstalled Games"
msgstr ""
#: data/gtk/preferences.blp:80
msgid "Sources"
msgstr ""
#: data/gtk/preferences.blp:83 cartridges/importer/steam_source.py:114
msgid "Steam"
msgstr "Steam"
#: data/gtk/preferences.blp:87 data/gtk/preferences.blp:104
#: data/gtk/preferences.blp:141 data/gtk/preferences.blp:174
#: data/gtk/preferences.blp:191 data/gtk/preferences.blp:208
#: data/gtk/preferences.blp:225 data/gtk/preferences.blp:242
msgid "Install Location"
msgstr ""
#: data/gtk/preferences.blp:100 cartridges/importer/lutris_source.py:92
msgid "Lutris"
msgstr "Lutris"
#: data/gtk/preferences.blp:116
msgid "Cache Location"
msgstr ""
#: data/gtk/preferences.blp:128
msgid "Import Steam Games"
msgstr "导入 Steam 游戏"
#: data/gtk/preferences.blp:132
msgid "Import Flatpak Games"
msgstr "导入 Flatpak 游戏"
#: data/gtk/preferences.blp:137 cartridges/importer/heroic_source.py:355
msgid "Heroic"
msgstr "Heroic"
#: data/gtk/preferences.blp:153
msgid "Import Epic Games"
msgstr "导入 Epic 游戏"
#: data/gtk/preferences.blp:157
msgid "Import GOG Games"
msgstr "导入 GOG 游戏"
#: data/gtk/preferences.blp:161
msgid "Import Amazon Games"
msgstr ""
#: data/gtk/preferences.blp:165
msgid "Import Sideloaded Games"
msgstr ""
#: data/gtk/preferences.blp:170 cartridges/importer/bottles_source.py:86
msgid "Bottles"
msgstr ""
#: data/gtk/preferences.blp:187 cartridges/importer/itch_source.py:81
msgid "itch"
msgstr ""
#: data/gtk/preferences.blp:204 cartridges/importer/legendary_source.py:97
msgid "Legendary"
msgstr ""
#: data/gtk/preferences.blp:221 cartridges/importer/retroarch_source.py:142
msgid "RetroArch"
msgstr ""
#: data/gtk/preferences.blp:238 cartridges/importer/flatpak_source.py:118
msgid "Flatpak"
msgstr ""
#: data/gtk/preferences.blp:254
msgid "Import Game Launchers"
msgstr ""
#: data/gtk/preferences.blp:259 cartridges/importer/desktop_source.py:215
msgid "Desktop Entries"
msgstr ""
#: data/gtk/preferences.blp:266
msgid "SteamGridDB"
msgstr ""
#: data/gtk/preferences.blp:270
msgid "Authentication"
msgstr ""
#: data/gtk/preferences.blp:273
msgid "API Key"
msgstr ""
#: data/gtk/preferences.blp:281
msgid "Use SteamGridDB"
msgstr ""
#: data/gtk/preferences.blp:282
msgid "Download images when adding or importing games"
msgstr ""
#: data/gtk/preferences.blp:286
msgid "Prefer Over Official Images"
msgstr ""
#: data/gtk/preferences.blp:290
msgid "Prefer Animated Images"
msgstr ""
#: data/gtk/preferences.blp:296
msgid "Update Covers"
msgstr ""
#: data/gtk/preferences.blp:297
msgid "Fetch covers for games already in your library"
msgstr ""
#: data/gtk/preferences.blp:301
msgid "Update"
msgstr ""
#: data/gtk/window.blp:6 data/gtk/window.blp:14
msgid "No Games Found"
msgstr ""
#: data/gtk/window.blp:7 data/gtk/window.blp:15
msgid "Try a different search."
msgstr ""
#: data/gtk/window.blp:21
msgid "No Games"
msgstr ""
#: data/gtk/window.blp:22
msgid "Use the + button to add games."
msgstr ""
#: data/gtk/window.blp:40
msgid "No Hidden Games"
msgstr ""
#: data/gtk/window.blp:41
msgid "Games you hide will appear here."
msgstr ""
#: data/gtk/window.blp:75 data/gtk/window.blp:106 cartridges/main.py:207
msgid "All Games"
msgstr ""
#: data/gtk/window.blp:126 cartridges/main.py:209
msgid "Added"
msgstr ""
#: data/gtk/window.blp:141
msgid "Imported"
msgstr ""
#: data/gtk/window.blp:229
msgid "Hidden Games"
msgstr ""
#: data/gtk/window.blp:339
msgid "Game Title"
msgstr ""
#: data/gtk/window.blp:396
msgid "Play"
msgstr ""
#: data/gtk/window.blp:473
msgid "Sort"
msgstr ""
#: data/gtk/window.blp:476
msgid "A-Z"
msgstr ""
#: data/gtk/window.blp:482
msgid "Z-A"
msgstr ""
#: data/gtk/window.blp:488
msgid "Newest"
msgstr ""
#: data/gtk/window.blp:494
msgid "Oldest"
msgstr ""
#: data/gtk/window.blp:500
msgid "Last Played"
msgstr ""
#: data/gtk/window.blp:507
msgid "Show Hidden"
msgstr ""
#: data/gtk/window.blp:525
msgid "About Cartridges"
msgstr ""
#. The variable is the title of the game
#: cartridges/main.py:186 cartridges/game.py:125
msgid "{} launched"
msgstr ""
#. Translators: Replace this with your name for it to show up in the about window
#: cartridges/main.py:249
msgid "translator_credits"
msgstr ""
#. The variable is the date when the game was added
#: cartridges/window.py:373
msgid "Added: {}"
msgstr ""
#: cartridges/window.py:376
msgid "Never"
msgstr ""
#. The variable is the date when the game was last played
#: cartridges/window.py:380
msgid "Last played: {}"
msgstr ""
#: cartridges/details_window.py:76
msgid "Apply"
msgstr ""
#: cartridges/details_window.py:82
msgid "Add New Game"
msgstr ""
#: cartridges/details_window.py:83
msgid "Add"
msgstr ""
#: cartridges/details_window.py:93
msgid "Executables"
msgstr ""
#. Translate this string as you would translate "file"
#: cartridges/details_window.py:108
msgid "file.txt"
msgstr ""
#. As in software
#: cartridges/details_window.py:110
msgid "program"
msgstr ""
#. Translate this string as you would translate "path to {}"
#: cartridges/details_window.py:115 cartridges/details_window.py:117
msgid "C:\\path\\to\\{}"
msgstr ""
#. Translate this string as you would translate "path to {}"
#: cartridges/details_window.py:121 cartridges/details_window.py:123
msgid "/path/to/{}"
msgstr ""
#: cartridges/details_window.py:128
msgid ""
"To launch the executable \"{}\", use the command:\n"
"\n"
"<tt>\"{}\"</tt>\n"
"\n"
"To open the file \"{}\" with the default application, use:\n"
"\n"
"<tt>{} \"{}\"</tt>\n"
"\n"
"If the path contains spaces, make sure to wrap it in double quotes!"
msgstr ""
#: cartridges/details_window.py:171 cartridges/details_window.py:177
msgid "Couldn't Add Game"
msgstr ""
#: cartridges/details_window.py:171 cartridges/details_window.py:213
msgid "Game title cannot be empty."
msgstr ""
#: cartridges/details_window.py:177 cartridges/details_window.py:221
msgid "Executable cannot be empty."
msgstr ""
#: cartridges/details_window.py:212 cartridges/details_window.py:220
msgid "Couldn't Apply Preferences"
msgstr ""
#. The variable is the title of the game
#: cartridges/game.py:139
msgid "{} hidden"
msgstr ""
#: cartridges/game.py:139
msgid "{} unhidden"
msgstr ""
#. The variable is the title of the game
#. The variable is the number of games removed
#: cartridges/game.py:153 cartridges/importer/importer.py:391
msgid "{} removed"
msgstr ""
#: cartridges/preferences.py:124
msgid "All games removed"
msgstr ""
#: cartridges/preferences.py:172
msgid ""
"An API key is required to use SteamGridDB. You can generate one {}here{}."
msgstr ""
#: cartridges/preferences.py:184
msgid "Downloading covers…"
msgstr ""
#: cartridges/preferences.py:203
msgid "Covers updated"
msgstr ""
#: cartridges/preferences.py:335
msgid "Installation Not Found"
msgstr ""
#: cartridges/preferences.py:336
msgid "Select a valid directory."
msgstr ""
#: cartridges/preferences.py:372 cartridges/importer/importer.py:317
msgid "Warning"
msgstr ""
#: cartridges/preferences.py:406
msgid "Invalid Directory"
msgstr ""
#: cartridges/preferences.py:412
msgid "Set Location"
msgstr ""
#: cartridges/utils/create_dialog.py:33 cartridges/importer/importer.py:318
msgid "Dismiss"
msgstr ""
#: cartridges/importer/importer.py:145
msgid "Importing Games…"
msgstr ""
#: cartridges/importer/importer.py:338
msgid "The following errors occured during import:"
msgstr ""
#: cartridges/importer/importer.py:367
msgid "No new games found"
msgstr ""
#: cartridges/importer/importer.py:379
msgid "1 game imported"
msgstr ""
#. The variable is the number of games
#: cartridges/importer/importer.py:383
msgid "{} games imported"
msgstr ""
#. A single game removed
#: cartridges/importer/importer.py:387
msgid "1 removed"
msgstr ""
#. The variable is the name of the source
#: cartridges/importer/location.py:33
msgid "Select the {} cache directory."
msgstr ""
#. The variable is the name of the source
#: cartridges/importer/location.py:35
msgid "Select the {} configuration directory."
msgstr ""
#. The variable is the name of the source
#: cartridges/importer/location.py:37
msgid "Select the {} data directory."
msgstr ""
#: cartridges/importer/retroarch_source.py:129
msgid "No RetroArch Core Selected"
msgstr ""
#. The variable is a newline separated list of playlists
#: cartridges/importer/retroarch_source.py:131
msgid "The following playlists have no default core:"
msgstr ""
#: cartridges/importer/retroarch_source.py:133
msgid "Games with no core selected were not imported"
msgstr ""
#: cartridges/store/managers/sgdb_manager.py:46
msgid "Couldn't Authenticate SteamGridDB"
msgstr ""
#: cartridges/store/managers/sgdb_manager.py:47
msgid "Verify your API key in preferences"
msgstr ""

View File

@@ -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