diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 07f38e1..9346dca 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1,2 @@ github: [kra-mo] +liberapay: kramo diff --git a/README.md b/README.md index 8a66c08..44e8483 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ Cartridges is an easy-to-use, elegant game launcher written in Python using GTK4 For updates and questions, join our [Discord server][discord-url] (bridged to [Matrix](https://matrix.to/#/#cartridges:matrix.org))! ## Donations -I accept donations through [GitHub Sponsors](https://github.com/sponsors/kra-mo). +I accept donations through [GitHub Sponsors](https://github.com/sponsors/kra-mo) and [Liberapay](https://liberapay.com/kramo). Thank you for your generosity! 💜 diff --git a/cartridges/importer/importer.py b/cartridges/importer/importer.py index 87b723c..89f9fa6 100644 --- a/cartridges/importer/importer.py +++ b/cartridges/importer/importer.py @@ -106,7 +106,6 @@ class Importer(ErrorProducer): def run(self) -> None: """Use several Gio.Task to import games from added sources""" - shared.win.get_application().state = shared.AppState.IMPORT if self.__class__.summary_toast: @@ -137,6 +136,7 @@ class Importer(ErrorProducer): ) self.progress_changed_callback() + GLib.timeout_add(100, self.__watchdog) def create_dialog(self) -> None: """Create the import dialog""" @@ -281,8 +281,7 @@ class Importer(ErrorProducer): shared.store.duplicate_game_ids = set() # Disconnect the close-attempt signal that closes the main window self.import_dialog.disconnect(self.close_attempt_id) - # Stupid hack because stupid libadwaita is stupid - GLib.timeout_add(50, self.import_dialog.force_close) + self.import_dialog.force_close() self.__class__.summary_toast = self.create_summary_toast() self.create_error_dialog() shared.win.get_application().lookup_action("import").set_enabled(True) @@ -390,7 +389,13 @@ class Importer(ErrorProducer): toast.set_title(toast_title) - shared.win.toast_overlay.add_toast(toast) + if not ( + self.n_games_added == 0 + and removed_length == 0 + and shared.schema.get_boolean("auto-import") + ): + shared.win.toast_overlay.add_toast(toast) + return toast def open_preferences( @@ -416,3 +421,11 @@ class Importer(ErrorProducer): self.open_preferences(*args).connect("close-request", self.timeout_toast) else: self.timeout_toast() + + def __watchdog(self) -> bool: + # This can help resolve a race condition where the dialog would stay open + if not self.finished: + return True + + self.import_dialog.force_close() + return shared.win.get_visible_dialog() == self.import_dialog diff --git a/cartridges/main.py b/cartridges/main.py index 70b5736..f936a0d 100644 --- a/cartridges/main.py +++ b/cartridges/main.py @@ -118,9 +118,6 @@ class CartridgesApplication(Adw.Application): log_system_info() - # Set fallback icon-name - Gtk.Window.set_default_icon_name(shared.APP_ID) - # Create the main window win = self.props.active_window # pylint: disable=no-member if not win: @@ -196,6 +193,9 @@ class CartridgesApplication(Adw.Application): shared.win.present() + if shared.schema.get_boolean("auto-import"): + self.on_import_action() + def do_handle_local_options(self, options: GLib.VariantDict) -> int: if search := options.lookup_value("search"): self.init_search_term = search.get_string() diff --git a/cartridges/preferences.py b/cartridges/preferences.py index 3b23521..508f6ff 100644 --- a/cartridges/preferences.py +++ b/cartridges/preferences.py @@ -60,6 +60,7 @@ class CartridgesPreferences(Adw.PreferencesDialog): cover_launches_game_switch: Adw.SwitchRow = Gtk.Template.Child() high_quality_images_switch: Adw.SwitchRow = Gtk.Template.Child() + auto_import_switch: Adw.SwitchRow = Gtk.Template.Child() remove_missing_switch: Adw.SwitchRow = Gtk.Template.Child() steam_expander_row: Adw.ExpanderRow = Gtk.Template.Child() @@ -237,6 +238,7 @@ class CartridgesPreferences(Adw.PreferencesDialog): "exit-after-launch", "cover-launches-game", "high-quality-images", + "auto-import", "remove-missing", "lutris-import-steam", "lutris-import-flatpak", diff --git a/data/gtk/preferences.blp b/data/gtk/preferences.blp index ebc8309..eec2646 100644 --- a/data/gtk/preferences.blp +++ b/data/gtk/preferences.blp @@ -44,7 +44,7 @@ template $CartridgesPreferences: Adw.PreferencesDialog { } Adw.ButtonRow reset_button_row { - title: _("Reset App"); + title: "Reset App"; styles [ "destructive-action" @@ -61,6 +61,10 @@ template $CartridgesPreferences: Adw.PreferencesDialog { Adw.PreferencesGroup import_behavior_group { title: _("Behavior"); + Adw.SwitchRow auto_import_switch { + title: _("Import Games Automatically"); + } + Adw.SwitchRow remove_missing_switch { title: _("Remove Uninstalled Games"); } diff --git a/data/page.kramo.Cartridges.gschema.xml.in b/data/page.kramo.Cartridges.gschema.xml.in index 6ad2151..bf6f7ba 100644 --- a/data/page.kramo.Cartridges.gschema.xml.in +++ b/data/page.kramo.Cartridges.gschema.xml.in @@ -2,6 +2,9 @@ + + false + false diff --git a/po/cartridges.pot b/po/cartridges.pot index d4b2783..f685b57 100644 --- a/po/cartridges.pot +++ b/po/cartridges.pot @@ -9,6 +9,7 @@ msgstr "" "Project-Id-Version: Cartridges\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-25 21:54+0200\n" +"POT-Creation-Date: 2024-10-31 14:25+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -58,7 +59,7 @@ msgstr "" #: data/page.kramo.Cartridges.metainfo.xml.in:52 data/gtk/help-overlay.blp:19 #: data/gtk/window.blp:543 cartridges/details_dialog.py:276 -#: cartridges/importer/importer.py:321 cartridges/importer/importer.py:371 +#: cartridges/importer/importer.py:320 cartridges/importer/importer.py:370 msgid "Preferences" msgstr "" @@ -124,7 +125,7 @@ msgid "Keyboard Shortcuts" msgstr "" #: data/gtk/help-overlay.blp:29 cartridges/game.py:103 -#: cartridges/preferences.py:136 cartridges/importer/importer.py:388 +#: cartridges/preferences.py:137 cartridges/importer/importer.py:394 msgid "Undo" msgstr "" @@ -162,7 +163,7 @@ msgid "Remove Game" msgstr "" #: data/gtk/preferences.blp:13 data/gtk/preferences.blp:62 -#: data/gtk/preferences.blp:361 +#: data/gtk/preferences.blp:365 msgid "Behavior" msgstr "" @@ -198,6 +199,7 @@ msgstr "" msgid "Remove All Games" msgstr "" +<<<<<<< HEAD #: data/gtk/preferences.blp:47 msgid "Reset App" msgstr "" @@ -222,6 +224,31 @@ msgid "Install Location" msgstr "" #: data/gtk/preferences.blp:101 data/gtk/window.blp:565 +======= +#: data/gtk/preferences.blp:65 +msgid "Import Games Automatically" +msgstr "" + +#: data/gtk/preferences.blp:69 +msgid "Remove Uninstalled Games" +msgstr "" + +#: data/gtk/preferences.blp:74 +msgid "Sources" +msgstr "" + +#: data/gtk/preferences.blp:78 cartridges/importer/steam_source.py:114 +msgid "Steam" +msgstr "" + +#: data/gtk/preferences.blp:87 data/gtk/preferences.blp:114 +#: data/gtk/preferences.blp:149 data/gtk/preferences.blp:192 +#: data/gtk/preferences.blp:219 data/gtk/preferences.blp:246 +#: data/gtk/preferences.blp:273 +msgid "Install Location" +msgstr "" + +#: data/gtk/preferences.blp:105 data/gtk/window.blp:565 #: cartridges/importer/lutris_source.py:107 msgid "Lutris" msgstr "" @@ -271,15 +298,62 @@ msgid "RetroArch" msgstr "" #: data/gtk/preferences.blp:287 cartridges/importer/flatpak_source.py:143 +======= +#: data/gtk/preferences.blp:131 +msgid "Import Steam Games" +msgstr "" + +#: data/gtk/preferences.blp:135 +msgid "Import Flatpak Games" +msgstr "" + +#: data/gtk/preferences.blp:140 cartridges/importer/heroic_source.py:355 +msgid "Heroic" +msgstr "" + +#: data/gtk/preferences.blp:166 +msgid "Import Epic Games" +msgstr "" + +#: data/gtk/preferences.blp:170 +msgid "Import GOG Games" +msgstr "" + +#: data/gtk/preferences.blp:174 +msgid "Import Amazon Games" +msgstr "" + +#: data/gtk/preferences.blp:178 +msgid "Import Sideloaded Games" +msgstr "" + +#: data/gtk/preferences.blp:183 cartridges/importer/bottles_source.py:86 +msgid "Bottles" +msgstr "" + +#: data/gtk/preferences.blp:210 cartridges/importer/itch_source.py:81 +msgid "itch" +msgstr "" + +#: data/gtk/preferences.blp:237 cartridges/importer/legendary_source.py:97 +msgid "Legendary" +msgstr "" + +#: data/gtk/preferences.blp:264 cartridges/importer/retroarch_source.py:142 +msgid "RetroArch" +msgstr "" + +#: data/gtk/preferences.blp:291 cartridges/importer/flatpak_source.py:143 msgid "Flatpak" msgstr "" #. The location of the system-wide data directory -#: data/gtk/preferences.blp:297 +#: data/gtk/preferences.blp:301 msgid "System Location" msgstr "" #. The location of the user-specific data directory +<<<<<<< HEAD #: data/gtk/preferences.blp:315 msgid "User Location" msgstr "" @@ -329,6 +403,56 @@ msgid "Fetch covers for games already in your library" msgstr "" #: data/gtk/preferences.blp:385 +======= +#: data/gtk/preferences.blp:319 +msgid "User Location" +msgstr "" + +#: data/gtk/preferences.blp:336 +msgid "Import Game Launchers" +msgstr "" + +#: data/gtk/preferences.blp:341 cartridges/importer/desktop_source.py:215 +msgid "Desktop Entries" +msgstr "" + +#: data/gtk/preferences.blp:353 data/gtk/window.blp:563 +msgid "SteamGridDB" +msgstr "" + +#: data/gtk/preferences.blp:357 +msgid "Authentication" +msgstr "" + +#: data/gtk/preferences.blp:360 +msgid "API Key" +msgstr "" + +#: data/gtk/preferences.blp:368 +msgid "Use SteamGridDB" +msgstr "" + +#: data/gtk/preferences.blp:369 +msgid "Download images when adding or importing games" +msgstr "" + +#: data/gtk/preferences.blp:373 +msgid "Prefer Over Official Images" +msgstr "" + +#: data/gtk/preferences.blp:377 +msgid "Prefer Animated Images" +msgstr "" + +#: data/gtk/preferences.blp:383 +msgid "Update Covers" +msgstr "" + +#: data/gtk/preferences.blp:384 +msgid "Fetch covers for games already in your library" +msgstr "" + +#: data/gtk/preferences.blp:389 msgid "Update" msgstr "" @@ -429,6 +553,7 @@ msgstr "" msgid "{} launched" msgstr "" +<<<<<<< HEAD #. Translators: Replace this with Your Name, Your Name , or Your Name https://your-site.com for it to show up in the About dialog. #: cartridges/main.py:291 msgid "translator-credits" @@ -527,15 +652,23 @@ msgstr "" msgid "{} removed" msgstr "" +<<<<<<< HEAD #: cartridges/preferences.py:135 msgid "All games removed" msgstr "" #: cartridges/preferences.py:187 +======= +#: cartridges/preferences.py:136 +msgid "All games removed" +msgstr "" + +#: cartridges/preferences.py:188 msgid "" "An API key is required to use SteamGridDB. You can generate one {}here{}." msgstr "" +<<<<<<< HEAD #: cartridges/preferences.py:202 msgid "Downloading covers…" msgstr "" @@ -561,6 +694,32 @@ msgid "Invalid Directory" msgstr "" #: cartridges/preferences.py:445 +======= +#: cartridges/preferences.py:203 +msgid "Downloading covers…" +msgstr "" + +#: cartridges/preferences.py:222 +msgid "Covers updated" +msgstr "" + +#: cartridges/preferences.py:370 +msgid "Installation Not Found" +msgstr "" + +#: cartridges/preferences.py:371 +msgid "Select a valid directory" +msgstr "" + +#: cartridges/preferences.py:407 cartridges/importer/importer.py:318 +msgid "Warning" +msgstr "" + +#: cartridges/preferences.py:441 +msgid "Invalid Directory" +msgstr "" + +#: cartridges/preferences.py:447 msgid "Set Location" msgstr "" diff --git a/po/hu.po b/po/hu.po index 8cffe61..9675980 100644 --- a/po/hu.po +++ b/po/hu.po @@ -11,6 +11,8 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-25 21:54+0200\n" "PO-Revision-Date: 2024-03-23 19:56+0000\n" +"POT-Creation-Date: 2024-04-14 12:48+0200\n" +"PO-Revision-Date: 2024-10-22 10:56+0000\n" "Last-Translator: Balázs Meskó \n" "Language-Team: Hungarian \n" @@ -19,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.5-dev\n" +"X-Generator: Weblate 5.8-rc\n" #: data/page.kramo.Cartridges.desktop.in:3 #: data/page.kramo.Cartridges.metainfo.xml.in:9 @@ -264,7 +266,7 @@ msgstr "Kézileg hozzáadott játékok importálása" #: data/gtk/preferences.blp:179 cartridges/importer/bottles_source.py:86 msgid "Bottles" -msgstr "Palackok" +msgstr "Bottles" #: data/gtk/preferences.blp:206 cartridges/importer/itch_source.py:81 msgid "itch" diff --git a/po/ro.po b/po/ro.po index fe20946..6ab1d85 100644 --- a/po/ro.po +++ b/po/ro.po @@ -2,13 +2,14 @@ # Copyright (C) YEAR kramo # This file is distributed under the same license as the Cartridges package. # Matt C , 2023. +# Remus-Gabriel Chelu , 2024. msgid "" msgstr "" "Project-Id-Version: Cartridges\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-25 21:54+0200\n" -"PO-Revision-Date: 2023-04-04 17:12+0000\n" -"Last-Translator: Matt C \n" +"POT-Creation-Date: 2024-04-14 12:48+0200\n" +"PO-Revision-Date: 2024-10-14 00:15+0000\n" +"Last-Translator: Remus-Gabriel Chelu \n" "Language-Team: Romanian \n" "Language: ro\n" @@ -17,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" -"X-Generator: Weblate 4.17-dev\n" +"X-Generator: Weblate 5.8-dev\n" #: data/page.kramo.Cartridges.desktop.in:3 #: data/page.kramo.Cartridges.metainfo.xml.in:9 @@ -39,18 +40,20 @@ msgstr "Lansați toate jocurile dvs" msgid "" "gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;legendary;retroarch;" msgstr "" +"jocuri;lansator;gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;lege" +"ndary;retroarch;" #: data/page.kramo.Cartridges.metainfo.xml.in:12 -#, fuzzy msgid "" "Cartridges is a simple game launcher for all of your games. It has support " "for importing games from Steam, Lutris, Heroic and more with no login " "necessary. You can sort and hide games or download cover art from " "SteamGridDB." msgstr "" -"Cartridges este un simplu lansator de jocuri. Are suport pentru importarea " -"jocurilor dvs. din Steam, Heroic și Bottles cu funcții de organizare, cum ar " -"fi ascunderea și sortarea după data adăugată sau ultima dată jucată." +"Cartușe este un lansator de jocuri simplu pentru toate jocurile tale. Acesta " +"are suport pentru importul de jocuri de pe Steam, Lutris, Heroic și multe " +"altele, fără a fi necesară autentificarea. Puteți sorta și ascunde jocurile " +"sau descărca coperta jocului din SteamGridDB." #: data/page.kramo.Cartridges.metainfo.xml.in:44 data/gtk/window.blp:320 #: cartridges/details_dialog.py:77 @@ -69,55 +72,55 @@ msgstr "Preferințe" #: data/gtk/details-dialog.blp:15 msgid "Cancel" -msgstr "" +msgstr "Anulare" #: data/gtk/details-dialog.blp:45 msgid "New Cover" -msgstr "" +msgstr "Copertă nouă" #: data/gtk/details-dialog.blp:64 msgid "Delete Cover" -msgstr "" +msgstr "Șterge coperta" #: data/gtk/details-dialog.blp:92 data/gtk/game.blp:80 msgid "Title" -msgstr "" +msgstr "Titlu" #: data/gtk/details-dialog.blp:96 msgid "Developer (optional)" -msgstr "" +msgstr "Dezvoltator (opțional)" #: data/gtk/details-dialog.blp:102 msgid "Executable" -msgstr "" +msgstr "Executabil" #: data/gtk/details-dialog.blp:108 msgid "Select File" -msgstr "" +msgstr "Selectare fișier" #: data/gtk/details-dialog.blp:119 msgid "More Info" -msgstr "" +msgstr "Mai multe informații" #: data/gtk/game.blp:101 data/gtk/game.blp:109 data/gtk/window.blp:444 msgid "Edit" -msgstr "" +msgstr "Editare" #: data/gtk/game.blp:102 cartridges/window.py:359 msgid "Hide" -msgstr "" +msgstr "Ascunde" #: data/gtk/game.blp:103 data/gtk/game.blp:111 data/gtk/window.blp:464 msgid "Remove" -msgstr "" +msgstr "Elimină" #: data/gtk/game.blp:110 cartridges/window.py:361 msgid "Unhide" -msgstr "" +msgstr "Afișează" #: data/gtk/help-overlay.blp:11 data/gtk/preferences.blp:9 msgid "General" -msgstr "" +msgstr "General" #: data/gtk/help-overlay.blp:14 data/gtk/window.blp:207 data/gtk/window.blp:223 #: data/gtk/window.blp:274 data/gtk/window.blp:290 data/gtk/window.blp:475 @@ -126,20 +129,20 @@ msgstr "Căutare" #: data/gtk/help-overlay.blp:24 data/gtk/window.blp:544 msgid "Keyboard Shortcuts" -msgstr "" +msgstr "Taste de comenzi rapide" #: data/gtk/help-overlay.blp:29 cartridges/game.py:103 #: cartridges/preferences.py:136 cartridges/importer/importer.py:388 msgid "Undo" -msgstr "" +msgstr "Anulează" #: data/gtk/help-overlay.blp:34 msgid "Quit" -msgstr "" +msgstr "Ieșire" #: data/gtk/help-overlay.blp:39 data/gtk/window.blp:92 data/gtk/window.blp:187 msgid "Toggle Sidebar" -msgstr "" +msgstr "Afișează/ascunde bara laterală" #: data/gtk/help-overlay.blp:44 data/gtk/window.blp:200 data/gtk/window.blp:267 msgid "Main Menu" @@ -147,7 +150,7 @@ msgstr "Meniu principal" #: data/gtk/help-overlay.blp:50 msgid "Games" -msgstr "" +msgstr "Jocuri" #: data/gtk/help-overlay.blp:53 data/gtk/window.blp:193 data/gtk/window.blp:551 msgid "Add Game" @@ -156,54 +159,55 @@ msgstr "Adăugați joc" #: data/gtk/help-overlay.blp:58 data/gtk/preferences.blp:58 #: data/gtk/window.blp:27 data/gtk/window.blp:555 msgid "Import" -msgstr "" +msgstr "Import" #: data/gtk/help-overlay.blp:63 -#, fuzzy msgid "Show Hidden Games" -msgstr "Fără jocuri ascunse" +msgstr "Afișează jocurile ascunse" #: data/gtk/help-overlay.blp:68 -#, fuzzy msgid "Remove Game" -msgstr "Fără jocuri" +msgstr "Elimină jocul" #: data/gtk/preferences.blp:13 data/gtk/preferences.blp:62 #: data/gtk/preferences.blp:361 msgid "Behavior" -msgstr "" +msgstr "Comportament" #: data/gtk/preferences.blp:16 msgid "Exit After Launching Games" -msgstr "" +msgstr "Ieșire din program după lansarea jocurilor" #: data/gtk/preferences.blp:20 msgid "Cover Image Launches Game" -msgstr "" +msgstr "Imaginea de copertă lansează jocul" #: data/gtk/preferences.blp:21 msgid "Swaps the behavior of the cover image and the play button" msgstr "" +"Interschimbă comportamentul imaginii de copertă și al butonului de redare" #: data/gtk/preferences.blp:26 cartridges/details_dialog.py:91 msgid "Images" -msgstr "" +msgstr "Imagini" #: data/gtk/preferences.blp:29 msgid "High Quality Images" -msgstr "" +msgstr "Imagini de înaltă calitate" #: data/gtk/preferences.blp:30 msgid "Save game covers losslessly at the cost of storage" msgstr "" +"Salvează coperțile jocurilor fără pierderi, dar ocupă mai mult spațiu de " +"stocare" #: data/gtk/preferences.blp:35 msgid "Danger Zone" -msgstr "" +msgstr "Zonă periculoasă" #: data/gtk/preferences.blp:39 msgid "Remove All Games" -msgstr "" +msgstr "Elimină toate jocurile" #: data/gtk/preferences.blp:47 msgid "Reset App" @@ -211,135 +215,133 @@ msgstr "" #: data/gtk/preferences.blp:65 msgid "Remove Uninstalled Games" -msgstr "" +msgstr "Elimină jocurile dezinstalate" #: data/gtk/preferences.blp:70 msgid "Sources" -msgstr "" +msgstr "Surse" #: data/gtk/preferences.blp:74 cartridges/importer/steam_source.py:114 msgid "Steam" -msgstr "" +msgstr "Steam" #: data/gtk/preferences.blp:83 data/gtk/preferences.blp:110 #: data/gtk/preferences.blp:145 data/gtk/preferences.blp:188 #: data/gtk/preferences.blp:215 data/gtk/preferences.blp:242 #: data/gtk/preferences.blp:269 msgid "Install Location" -msgstr "" +msgstr "Locația de instalare" #: data/gtk/preferences.blp:101 data/gtk/window.blp:565 #: cartridges/importer/lutris_source.py:107 msgid "Lutris" -msgstr "" +msgstr "Lutris" #: data/gtk/preferences.blp:127 msgid "Import Steam Games" -msgstr "" +msgstr "Importă jocuri din Steam" #: data/gtk/preferences.blp:131 msgid "Import Flatpak Games" -msgstr "" +msgstr "Importă jocuri din Flatpak" #: data/gtk/preferences.blp:136 cartridges/importer/heroic_source.py:355 msgid "Heroic" -msgstr "" +msgstr "Heroic" #: data/gtk/preferences.blp:162 msgid "Import Epic Games" -msgstr "" +msgstr "Importă jocuri din Epic" #: data/gtk/preferences.blp:166 msgid "Import GOG Games" -msgstr "" +msgstr "Importă jocuri din GOG" -#: data/gtk/preferences.blp:170 -#, fuzzy +#: data/gtk/preferences.blp:224 msgid "Import Amazon Games" -msgstr "Lansator de jocuri" +msgstr "Importă jocuri din Amazon" #: data/gtk/preferences.blp:174 msgid "Import Sideloaded Games" -msgstr "" +msgstr "Importă jocuri descărcate manual" #: data/gtk/preferences.blp:179 cartridges/importer/bottles_source.py:86 msgid "Bottles" -msgstr "" +msgstr "Bottles" #: data/gtk/preferences.blp:206 cartridges/importer/itch_source.py:81 msgid "itch" -msgstr "" +msgstr "itch" #: data/gtk/preferences.blp:233 cartridges/importer/legendary_source.py:97 msgid "Legendary" -msgstr "" +msgstr "Legendary" #: data/gtk/preferences.blp:260 cartridges/importer/retroarch_source.py:142 msgid "RetroArch" -msgstr "" +msgstr "RetroArch" #: data/gtk/preferences.blp:287 cartridges/importer/flatpak_source.py:143 msgid "Flatpak" -msgstr "" +msgstr "Flatpak" #. The location of the system-wide data directory #: data/gtk/preferences.blp:297 msgid "System Location" -msgstr "" +msgstr "Locația directorului de date la nivel de sistem" #. The location of the user-specific data directory #: data/gtk/preferences.blp:315 msgid "User Location" -msgstr "" +msgstr "Locația directorului de date specific utilizatorului" -#: data/gtk/preferences.blp:332 -#, fuzzy +#: data/gtk/preferences.blp:386 msgid "Import Game Launchers" -msgstr "Lansator de jocuri" +msgstr "Importare lansatoare de jocuri" #: data/gtk/preferences.blp:337 cartridges/importer/desktop_source.py:215 msgid "Desktop Entries" -msgstr "" +msgstr "Elemente de acces direct, pe birou" #: data/gtk/preferences.blp:349 data/gtk/window.blp:563 msgid "SteamGridDB" -msgstr "" +msgstr "SteamGridDB" #: data/gtk/preferences.blp:353 msgid "Authentication" -msgstr "" +msgstr "Autentificare" #: data/gtk/preferences.blp:356 msgid "API Key" -msgstr "" +msgstr "Cheie API" #: data/gtk/preferences.blp:364 msgid "Use SteamGridDB" -msgstr "" +msgstr "Utilizează SteamGridDB" #: data/gtk/preferences.blp:365 msgid "Download images when adding or importing games" -msgstr "" +msgstr "Descarcă imagini atunci când se adaugă sau se importă jocuri" #: data/gtk/preferences.blp:369 msgid "Prefer Over Official Images" -msgstr "" +msgstr "Preferă mai mult decât imaginile oficiale" #: data/gtk/preferences.blp:373 msgid "Prefer Animated Images" -msgstr "" +msgstr "Preferă imaginile animate" #: data/gtk/preferences.blp:379 msgid "Update Covers" -msgstr "" +msgstr "Actualizare coperți" #: data/gtk/preferences.blp:380 msgid "Fetch covers for games already in your library" -msgstr "" +msgstr "Obține coperți pentru jocurile aflate deja în colecție" #: data/gtk/preferences.blp:385 msgid "Update" -msgstr "" +msgstr "Actualizare" #: data/gtk/window.blp:6 data/gtk/window.blp:14 msgid "No Games Found" @@ -365,18 +367,17 @@ msgstr "Fără jocuri ascunse" msgid "Games you hide will appear here" msgstr "Jocurile pe care le ascundeți vor apărea aici" -#: data/gtk/window.blp:76 data/gtk/window.blp:113 cartridges/main.py:249 -#, fuzzy +#: data/gtk/window.blp:76 data/gtk/window.blp:111 cartridges/main.py:228 msgid "All Games" -msgstr "Fără jocuri" +msgstr "Toate jocurile" #: data/gtk/window.blp:140 cartridges/main.py:251 msgid "Added" -msgstr "" +msgstr "Adăugat" #: data/gtk/window.blp:162 msgid "Imported" -msgstr "" +msgstr "Importat" #: data/gtk/window.blp:260 msgid "Hidden Games" @@ -392,107 +393,109 @@ msgstr "Joacă" #: data/gtk/window.blp:502 msgid "Sort" -msgstr "" +msgstr "Sortează" #: data/gtk/window.blp:505 msgid "A-Z" -msgstr "" +msgstr "A-Z" #: data/gtk/window.blp:511 msgid "Z-A" -msgstr "" +msgstr "Z-A" #: data/gtk/window.blp:517 msgid "Newest" -msgstr "" +msgstr "Cel mai noi" #: data/gtk/window.blp:523 msgid "Oldest" -msgstr "" +msgstr "Cel mai vechi" #: data/gtk/window.blp:529 msgid "Last Played" -msgstr "" +msgstr "Jucat ultima dată" #: data/gtk/window.blp:536 msgid "Show Hidden" -msgstr "" +msgstr "Afișează pe cele ascunse" #: data/gtk/window.blp:545 msgid "About Cartridges" -msgstr "" +msgstr "Despre Cartușe" #: data/gtk/window.blp:562 msgid "IGDB" -msgstr "" +msgstr "IGDB" #: data/gtk/window.blp:564 msgid "ProtonDB" -msgstr "" +msgstr "ProtonDB" #: data/gtk/window.blp:566 msgid "HowLongToBeat" -msgstr "" +msgstr "HowLongToBeat" #. The variable is the title of the game #: cartridges/main.py:226 cartridges/game.py:125 msgid "{} launched" -msgstr "" +msgstr "{} lansat" #. Translators: Replace this with Your Name, Your Name , or Your Name https://your-site.com for it to show up in the About dialog. #: cartridges/main.py:291 msgid "translator-credits" msgstr "" +"Matt C ,\n" +"Remus-Gabriel Chelu " #. The variable is the date when the game was added #: cartridges/window.py:382 msgid "Added: {}" -msgstr "" +msgstr "Adăugat: {}" #: cartridges/window.py:385 msgid "Never" -msgstr "" +msgstr "Niciodată" #. The variable is the date when the game was last played #: cartridges/window.py:389 msgid "Last played: {}" -msgstr "" +msgstr "Jucat ultima dată {}" #: cartridges/details_dialog.py:82 msgid "Apply" -msgstr "" +msgstr "Aplică" #: cartridges/details_dialog.py:88 msgid "Add New Game" -msgstr "" +msgstr "Adaugă un joc nou" #: cartridges/details_dialog.py:89 msgid "Add" -msgstr "" +msgstr "Adaugă" #: cartridges/details_dialog.py:99 msgid "Executables" -msgstr "" +msgstr "Executabili" #. Translate this string as you would translate "file" #: cartridges/details_dialog.py:114 msgid "file.txt" -msgstr "" +msgstr "fișier.txt" #. As in software #: cartridges/details_dialog.py:116 msgid "program" -msgstr "" +msgstr "program" #. Translate this string as you would translate "path to {}" #: cartridges/details_dialog.py:121 cartridges/details_dialog.py:123 msgid "C:\\path\\to\\{}" -msgstr "" +msgstr "C:\ruta\\către\\{}" #. Translate this string as you would translate "path to {}" #: cartridges/details_dialog.py:127 cartridges/details_dialog.py:129 msgid "/path/to/{}" -msgstr "" +msgstr "/ruta/către/{}" #: cartridges/details_dialog.py:134 msgid "" @@ -506,143 +509,152 @@ msgid "" "\n" "If the path contains spaces, make sure to wrap it in double quotes!" msgstr "" +"Pentru a lansa executabilul „{}”, utilizați comanda:\n" +"\n" +"„{}”\n" +"\n" +"Pentru a deschide fișierul „{}” cu aplicația implicită, utilizați:\n" +"\n" +"{} „{}”\n" +"\n" +"Dacă ruta conține spații, asigurați-vă că o includeți între ghilimele duble!" #: cartridges/details_dialog.py:176 cartridges/details_dialog.py:182 msgid "Couldn't Add Game" -msgstr "" +msgstr "Nu s-a putut adăuga jocul" #: cartridges/details_dialog.py:176 cartridges/details_dialog.py:218 msgid "Game title cannot be empty." -msgstr "" +msgstr "Titlul jocului nu poate fi gol." #: cartridges/details_dialog.py:182 cartridges/details_dialog.py:226 msgid "Executable cannot be empty." -msgstr "" +msgstr "Executabilul nu poate fi gol." #: cartridges/details_dialog.py:217 cartridges/details_dialog.py:225 msgid "Couldn't Apply Preferences" -msgstr "" +msgstr "Nu s-au putut aplica preferințele" #. The variable is the title of the game #: cartridges/game.py:139 msgid "{} hidden" -msgstr "" +msgstr "{} ascuns" #: cartridges/game.py:139 msgid "{} unhidden" -msgstr "" +msgstr "{} afișat" #. The variable is the title of the game #: cartridges/game.py:153 msgid "{} removed" -msgstr "" +msgstr "{} eliminat" #: cartridges/preferences.py:135 msgid "All games removed" -msgstr "" +msgstr "Toate jocurile au fost eliminate" #: cartridges/preferences.py:187 msgid "" "An API key is required to use SteamGridDB. You can generate one {}here{}." msgstr "" +"O cheie API este necesară pentru a utiliza SteamGridDB. Puteți genera una " +"{}aici{}." #: cartridges/preferences.py:202 msgid "Downloading covers…" -msgstr "" +msgstr "Se descarcă coperțile…" #: cartridges/preferences.py:221 msgid "Covers updated" -msgstr "" +msgstr "Coperți actualizate" #: cartridges/preferences.py:368 msgid "Installation Not Found" -msgstr "" +msgstr "Instalarea nu a fost găsită" #: cartridges/preferences.py:369 msgid "Select a valid directory" -msgstr "" +msgstr "Selectați un director valid" #: cartridges/preferences.py:405 cartridges/importer/importer.py:319 msgid "Warning" -msgstr "" +msgstr "Atenţie" #: cartridges/preferences.py:439 msgid "Invalid Directory" -msgstr "" +msgstr "Director nevalid" #: cartridges/preferences.py:445 msgid "Set Location" -msgstr "" +msgstr "Stabilește locația" #: cartridges/utils/create_dialog.py:33 cartridges/importer/importer.py:320 msgid "Dismiss" -msgstr "" +msgstr "Revocare" #: cartridges/importer/importer.py:145 -#, fuzzy msgid "Importing Games…" -msgstr "Lansator de jocuri" +msgstr "Se importă jocurile…" #: cartridges/importer/importer.py:339 msgid "The following errors occured during import:" -msgstr "" +msgstr "Au apărut următoarele erori în timpul importului:" #: cartridges/importer/importer.py:368 -#, fuzzy msgid "No new games found" -msgstr "Nu s-au găsit jocuri" +msgstr "Nu s-au găsit jocuri noi" #. The variable is the number of games imported #: cartridges/importer/importer.py:381 msgid "1 game imported" msgid_plural "{} games imported" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Un joc importat" +msgstr[1] "{} jocuri importate" +msgstr[2] "{} jocuri importate" #. The variable is the number of games removed #: cartridges/importer/importer.py:385 msgid "1 removed" msgid_plural "{} removed" -msgstr[0] "" +msgstr[0] "Un joc eliminat" msgstr[1] "" msgstr[2] "" #. The variable is the name of the source #: cartridges/importer/location.py:34 msgid "Select the {} cache directory." -msgstr "" +msgstr "Selectați directorul cache {}." #. The variable is the name of the source #: cartridges/importer/location.py:36 msgid "Select the {} configuration directory." -msgstr "" +msgstr "Selectați directorul de configurare {}." #. The variable is the name of the source #: cartridges/importer/location.py:38 msgid "Select the {} data directory." -msgstr "" +msgstr "Selectați directorul de date {}." #: cartridges/importer/retroarch_source.py:129 msgid "No RetroArch Core Selected" -msgstr "" +msgstr "Nu este selectat niciun nucleu 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 "" +msgstr "Următoarele liste de redare nu au un nucleu implicit:" #: cartridges/importer/retroarch_source.py:133 msgid "Games with no core selected were not imported" -msgstr "" +msgstr "Jocurile fără un nucleu selectat nu au fost importate" #: cartridges/store/managers/sgdb_manager.py:46 msgid "Couldn't Authenticate SteamGridDB" -msgstr "" +msgstr "Nu s-a putut autentifica SteamGridDB" #: cartridges/store/managers/sgdb_manager.py:47 msgid "Verify your API key in preferences" -msgstr "" +msgstr "Verificați cheia API în preferințe" #~ msgid "Library" #~ msgstr "Bibliotecă"