From e320e58ffcd78ba6de01406e2cd72f37b0afb065 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Mon, 3 Jul 2023 12:43:33 +0200 Subject: [PATCH 01/50] Fix Appstream ID --- data/hu.kramo.Cartridges.metainfo.xml.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/hu.kramo.Cartridges.metainfo.xml.in b/data/hu.kramo.Cartridges.metainfo.xml.in index 2828729..c6b57d4 100644 --- a/data/hu.kramo.Cartridges.metainfo.xml.in +++ b/data/hu.kramo.Cartridges.metainfo.xml.in @@ -1,6 +1,6 @@ - @APP_ID@.desktop + @APP_ID@ CC0-1.0 GPL-3.0-or-later Cartridges From e388623c0346adf7bdb51a501c4368b071b19fdd Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Mon, 3 Jul 2023 14:40:08 +0200 Subject: [PATCH 02/50] Make sure all measurements are divisible by 3 --- data/gtk/game.blp | 4 ++-- data/gtk/window.blp | 18 +++++++++--------- src/importer/importer.py | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/data/gtk/game.blp b/data/gtk/game.blp index 786db10..4c16db6 100644 --- a/data/gtk/game.blp +++ b/data/gtk/game.blp @@ -81,8 +81,8 @@ template $Game : Box { ellipsize: end; hexpand: true; halign: start; - margin-top: 14; - margin-bottom: 14; + margin-top: 15; + margin-bottom: 15; margin-start: 12; margin-end: 12; } diff --git a/data/gtk/window.blp b/data/gtk/window.blp index 46c90f2..e75ffa2 100644 --- a/data/gtk/window.blp +++ b/data/gtk/window.blp @@ -147,7 +147,7 @@ template $CartridgesWindow : Adw.ApplicationWindow { Box { orientation: horizontal; - margin-top: 16; + margin-top: 15; hexpand: true; halign: start; @@ -285,10 +285,10 @@ template $CartridgesWindow : Adw.ApplicationWindow { valign: start; column-spacing: 12; row-spacing: 12; - margin-top: 16; - margin-bottom: 16; - margin-start: 16; - margin-end: 16; + margin-top: 15; + margin-bottom: 15; + margin-start: 15; + margin-end: 15; selection-mode: none; } } @@ -351,10 +351,10 @@ template $CartridgesWindow : Adw.ApplicationWindow { valign: start; column-spacing: 12; row-spacing: 12; - margin-top: 16; - margin-bottom: 16; - margin-start: 16; - margin-end: 16; + margin-top: 15; + margin-bottom: 15; + margin-start: 15; + margin-end: 15; selection-mode: none; } } diff --git a/src/importer/importer.py b/src/importer/importer.py index 024283c..86ead2e 100644 --- a/src/importer/importer.py +++ b/src/importer/importer.py @@ -263,7 +263,7 @@ class Importer(ErrorProducer): list_box = Gtk.ListBox() list_box.set_selection_mode(Gtk.SelectionMode.NONE) list_box.set_css_classes(["boxed-list"]) - list_box.set_margin_top(8) + list_box.set_margin_top(9) for error in errors: row = Adw.ActionRow.new() row.set_title(error[0]) From 220c9a4bb7ee5f1d375ad68315e3b75a7b28ca64 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Mon, 3 Jul 2023 15:10:14 +0200 Subject: [PATCH 03/50] Fix update logic when hiding games --- flatpak/hu.kramo.Cartridges.Devel.json | 4 +++- src/game.py | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/flatpak/hu.kramo.Cartridges.Devel.json b/flatpak/hu.kramo.Cartridges.Devel.json index 1c2ecea..1acbf0b 100644 --- a/flatpak/hu.kramo.Cartridges.Devel.json +++ b/flatpak/hu.kramo.Cartridges.Devel.json @@ -28,7 +28,9 @@ "/share/man", "/share/pkgconfig", "*.la", - "*.a" + "*.a", + "*.pyc", + "__pycache__" ], "modules" : [ { diff --git a/src/game.py b/src/game.py index e4b7693..34dbf84 100644 --- a/src/game.py +++ b/src/game.py @@ -140,11 +140,12 @@ class Game(Gtk.Box): def toggle_hidden(self, toast=True): self.hidden = not self.hidden self.save() - self.update() if self.win.stack.get_visible_child() == self.win.details_view: self.win.on_go_back_action() + self.update() + if toast: self.create_toast( # The variable is the title of the game From a7d0842ebc08736f5a010f035f2150654ef66162 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Mon, 3 Jul 2023 17:16:15 +0200 Subject: [PATCH 04/50] Clean up Cartridges.iss --- flatpak/hu.kramo.Cartridges.Devel.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/flatpak/hu.kramo.Cartridges.Devel.json b/flatpak/hu.kramo.Cartridges.Devel.json index 1acbf0b..e070b14 100644 --- a/flatpak/hu.kramo.Cartridges.Devel.json +++ b/flatpak/hu.kramo.Cartridges.Devel.json @@ -30,7 +30,8 @@ "*.la", "*.a", "*.pyc", - "__pycache__" + "__pycache__", + "Cartridges.iss" ], "modules" : [ { From 3a20eb7399cccf397b74cfeb08ce3fc06275d88a Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Mon, 3 Jul 2023 17:52:33 +0200 Subject: [PATCH 05/50] Revert __pycache__ cleanup for now --- flatpak/hu.kramo.Cartridges.Devel.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/flatpak/hu.kramo.Cartridges.Devel.json b/flatpak/hu.kramo.Cartridges.Devel.json index e070b14..1c984ab 100644 --- a/flatpak/hu.kramo.Cartridges.Devel.json +++ b/flatpak/hu.kramo.Cartridges.Devel.json @@ -29,8 +29,6 @@ "/share/pkgconfig", "*.la", "*.a", - "*.pyc", - "__pycache__", "Cartridges.iss" ], "modules" : [ From 0efa05514c3e2bc003874592d8fe1ea4bf8b73fc Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Mon, 3 Jul 2023 22:24:44 +0200 Subject: [PATCH 06/50] Exclude devel Cartridges from Flatpak imports --- src/importer/sources/flatpak_source.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/importer/sources/flatpak_source.py b/src/importer/sources/flatpak_source.py index 726edaf..2050d52 100644 --- a/src/importer/sources/flatpak_source.py +++ b/src/importer/sources/flatpak_source.py @@ -40,10 +40,11 @@ class FlatpakSourceIterator(SourceIterator): icon_theme.add_search_path(str(self.source.data_location["icons"])) blacklist = ( - {"hu.kramo.Cartridges"} + {"hu.kramo.Cartridges", "hu.kramo.Cartridges.Devel"} if shared.schema.get_boolean("flatpak-import-launchers") else { "hu.kramo.Cartridges", + "hu.kramo.Cartridges.Devel", "com.valvesoftware.Steam", "net.lutris.Lutris", "com.heroicgameslauncher.hgl", From a2c77a5852fdafbbfcb570e26bdcfbc764caf93a Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Tue, 4 Jul 2023 19:29:18 +0200 Subject: [PATCH 07/50] Add SVG to supported image formats --- src/details_window.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/details_window.py b/src/details_window.py index 19eaa35..3b7ba4f 100644 --- a/src/details_window.py +++ b/src/details_window.py @@ -81,6 +81,7 @@ class DetailsWindow(Adw.Window): image_filter = Gtk.FileFilter(name=_("Images")) for extension in Image.registered_extensions(): image_filter.add_suffix(extension[1:]) + image_filter.add_suffix("svg") # Gdk.Texture supports .svg but PIL doesn't file_filters = Gio.ListStore.new(Gtk.FileFilter) file_filters.append(image_filter) From 0500b8ebe1f17966938ce892bf841cda3f4c82ba Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Wed, 5 Jul 2023 13:33:21 +0200 Subject: [PATCH 08/50] Fix Lutris source executable --- src/importer/sources/lutris_source.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/importer/sources/lutris_source.py b/src/importer/sources/lutris_source.py index ad0bc80..88c334c 100644 --- a/src/importer/sources/lutris_source.py +++ b/src/importer/sources/lutris_source.py @@ -72,7 +72,7 @@ class LutrisSourceIterator(SourceIterator): "game_id": self.source.game_id_format.format( game_id=row[2], game_internal_id=row[0] ), - "executable": self.source.executable_format.format(game_id=row[2]), + "executable": self.source.executable_format.format(game_id=row[0]), } game = Game(values) From da227510350302281cfce10bb0e7946e13e73232 Mon Sep 17 00:00:00 2001 From: GeoffreyCoulaud Date: Wed, 5 Jul 2023 13:39:45 +0200 Subject: [PATCH 09/50] Fix lutris ID --- src/importer/sources/lutris_source.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/importer/sources/lutris_source.py b/src/importer/sources/lutris_source.py index 88c334c..20f852a 100644 --- a/src/importer/sources/lutris_source.py +++ b/src/importer/sources/lutris_source.py @@ -70,7 +70,7 @@ class LutrisSourceIterator(SourceIterator): "name": row[1], "source": f"{self.source.id}_{row[3]}", "game_id": self.source.game_id_format.format( - game_id=row[2], game_internal_id=row[0] + runner=row[3], game_id=row[0] ), "executable": self.source.executable_format.format(game_id=row[0]), } @@ -123,4 +123,4 @@ class LutrisSource(URLExecutableSource): @property def game_id_format(self): - return super().game_id_format + "_{game_internal_id}" + return self.id + "_{runner}_{game_id}" From 253bef95071fd1b737217ae8a82ccdb25b370d44 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Wed, 5 Jul 2023 13:50:35 +0200 Subject: [PATCH 10/50] Fix Legendary location --- src/importer/sources/legendary_source.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/importer/sources/legendary_source.py b/src/importer/sources/legendary_source.py index 2882e92..2c215ca 100644 --- a/src/importer/sources/legendary_source.py +++ b/src/importer/sources/legendary_source.py @@ -51,7 +51,7 @@ class LegendarySourceIterator(SourceIterator): data = {} # Get additional metadata from file (optional) - metadata_file = self.source.data_location["metadata"] / f"{app_name}.json" + metadata_file = self.source.config_location["metadata"] / f"{app_name}.json" try: metadata = json.load(metadata_file.open()) values["developer"] = metadata["metadata"]["developer"] @@ -67,7 +67,7 @@ class LegendarySourceIterator(SourceIterator): def generator_builder(self) -> Generator[SourceIterationResult, None, None]: # Open library - file = self.source.data_location["installed.json"] + file = self.source.config_location["installed.json"] try: library: dict = json.load(file.open()) except (JSONDecodeError, OSError): From 9ed1f848790995bce11218904d1e85307a8571b6 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Wed, 5 Jul 2023 14:13:16 +0200 Subject: [PATCH 11/50] Fix animatied covers not updating in time --- src/game_cover.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/game_cover.py b/src/game_cover.py index 32a3b25..036a0df 100644 --- a/src/game_cover.py +++ b/src/game_cover.py @@ -61,8 +61,8 @@ class GameCover: if path: if path.suffix == ".gif": - task = Gio.Task.new() - task.run_in_thread(self.create_func(self.path)) + self.task = Gio.Task.new() + self.task.run_in_thread(self.create_func(self.path)) else: self.texture = Gdk.Texture.new_from_filename(str(path)) @@ -108,6 +108,8 @@ class GameCover: self.pictures.add(picture) if not self.animation: self.set_texture(self.texture) + else: + self.update_animation((self.task, self.animation)) def set_texture(self, texture): self.pictures.discard( From 2d324997fd2e911ae577476cedb7df8a844e54ce Mon Sep 17 00:00:00 2001 From: GeoffreyCoulaud Date: Wed, 5 Jul 2023 14:13:42 +0200 Subject: [PATCH 12/50] Fix heroic --- src/importer/sources/heroic_source.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/importer/sources/heroic_source.py b/src/importer/sources/heroic_source.py index 9048ca8..aba4310 100644 --- a/src/importer/sources/heroic_source.py +++ b/src/importer/sources/heroic_source.py @@ -84,7 +84,7 @@ class HeroicSourceIterator(SourceIterator): "source": self.source.id, "added": added_time, "name": entry["title"], - "developer": entry["developer"], + "developer": entry.get("developer", None), "game_id": self.source.game_id_format.format( service=service, game_id=app_name ), @@ -106,14 +106,16 @@ class HeroicSourceIterator(SourceIterator): def generator_builder(self) -> SourceIterationResult: """Generator method producing games from all the Heroic sub-sources""" - for sub_source in self.sub_sources.values(): + for sub_source_name, sub_source in self.sub_sources.items(): # Skip disabled sub-sources if not shared.schema.get_boolean("heroic-import-" + sub_source["service"]): continue # Load games from JSON file = self.source.config_location.root.joinpath(*sub_source["path"]) try: - library = json.load(file.open())["library"] + contents = json.load(file.open()) + key = "library" if sub_source_name == "legendary" else "games" + library = contents[key] except (JSONDecodeError, OSError, KeyError): # Invalid library.json file, skip it logging.warning("Couldn't open Heroic file: %s", str(file)) @@ -124,9 +126,11 @@ class HeroicSourceIterator(SourceIterator): for entry in library: try: result = self.game_from_library_entry(entry, added_time) - except KeyError: + except KeyError as error: # Skip invalid games - logging.warning("Invalid Heroic game skipped in %s", str(file)) + logging.warning( + "Invalid Heroic game skipped in %s", str(file), exc_info=error + ) continue yield result From 8524a891cf87ff930337d50d631101f670a61095 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Wed, 5 Jul 2023 14:16:54 +0200 Subject: [PATCH 13/50] Fix GLib screaming at me --- src/game_cover.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/game_cover.py b/src/game_cover.py index 036a0df..073f0c9 100644 --- a/src/game_cover.py +++ b/src/game_cover.py @@ -133,5 +133,3 @@ class GameCover: self.update_animation, data, ) - else: - data[0].return_value(False) From a4bebdd4a9a083defa2a62b6877250ce386e835c Mon Sep 17 00:00:00 2001 From: GeoffreyCoulaud Date: Wed, 5 Jul 2023 14:34:14 +0200 Subject: [PATCH 14/50] Changed invalid location textx --- src/preferences.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/preferences.py b/src/preferences.py index f090b4a..2feec84 100644 --- a/src/preferences.py +++ b/src/preferences.py @@ -345,14 +345,17 @@ class PreferencesWindow(Adw.PreferencesWindow): # Bad picked location, inform user else: - if location_name == "cache": - title = _("Invalid Directory") - # The variable is the name of the source - subtitle_format = _("Select the {} cache directory.") - else: - title = _("Invalid Directory") - # The variable is the name of the source - subtitle_format = _("Select the {} installation directory.") + title = _("Invalid Directory") + match location_name: + case "cache": + # The variable is the name of the source + subtitle_format = _("Select the {} cache directory.") + case "config": + # The variable is the name of the source + subtitle_format = _("Select the {} configuration directory.") + case "data": + # The variable is the name of the source + subtitle_format = _("Select the {} data directory.") dialog = create_dialog( self, title, From 2ad18635776fcccdd6fd35a4a10cdd27214c010e Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Wed, 5 Jul 2023 14:37:02 +0200 Subject: [PATCH 15/50] Update translations --- po/cartridges.pot | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/po/cartridges.pot b/po/cartridges.pot index 938ed16..1aa2a79 100644 --- a/po/cartridges.pot +++ b/po/cartridges.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Cartridges\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-07-01 13:45+0200\n" +"POT-Creation-Date: 2023-07-05 14:36+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -57,7 +57,7 @@ msgid "Game Details" msgstr "" #: data/hu.kramo.Cartridges.metainfo.xml.in:42 data/gtk/window.blp:416 -#: src/details_window.py:238 +#: src/details_window.py:239 msgid "Preferences" msgstr "" @@ -419,26 +419,26 @@ msgid "Confirm" msgstr "" #. Translate this string as you would translate "file" -#: src/details_window.py:91 +#: src/details_window.py:92 msgid "file.txt" msgstr "" #. As in software -#: src/details_window.py:93 +#: src/details_window.py:94 msgid "program" msgstr "" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:98 src/details_window.py:100 +#: src/details_window.py:99 src/details_window.py:101 msgid "C:\\path\\to\\{}" msgstr "" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:104 src/details_window.py:106 +#: src/details_window.py:105 src/details_window.py:107 msgid "/path/to/{}" msgstr "" -#: src/details_window.py:111 +#: src/details_window.py:112 msgid "" "To launch the executable \"{}\", use the command:\n" "\n" @@ -451,19 +451,19 @@ msgid "" "If the path contains spaces, make sure to wrap it in double quotes!" msgstr "" -#: src/details_window.py:146 src/details_window.py:152 +#: src/details_window.py:147 src/details_window.py:153 msgid "Couldn't Add Game" msgstr "" -#: src/details_window.py:146 src/details_window.py:180 +#: src/details_window.py:147 src/details_window.py:181 msgid "Game title cannot be empty." msgstr "" -#: src/details_window.py:152 src/details_window.py:188 +#: src/details_window.py:153 src/details_window.py:189 msgid "Executable cannot be empty." msgstr "" -#: src/details_window.py:179 src/details_window.py:187 +#: src/details_window.py:180 src/details_window.py:188 msgid "Couldn't Apply Preferences" msgstr "" @@ -473,15 +473,15 @@ msgid "{} launched" msgstr "" #. The variable is the title of the game -#: src/game.py:151 +#: src/game.py:152 msgid "{} hidden" msgstr "" -#: src/game.py:151 +#: src/game.py:152 msgid "{} unhidden" msgstr "" -#: src/game.py:168 +#: src/game.py:169 msgid "{} removed" msgstr "" @@ -502,21 +502,26 @@ msgstr "" msgid "Select a valid directory." msgstr "" -#: src/preferences.py:349 src/preferences.py:353 +#: src/preferences.py:348 msgid "Invalid Directory" msgstr "" #. The variable is the name of the source -#: src/preferences.py:351 +#: src/preferences.py:352 msgid "Select the {} cache directory." msgstr "" #. The variable is the name of the source #: src/preferences.py:355 -msgid "Select the {} installation directory." +msgid "Select the {} configuration directory." msgstr "" -#: src/preferences.py:361 +#. The variable is the name of the source +#: src/preferences.py:358 +msgid "Select the {} data directory." +msgstr "" + +#: src/preferences.py:364 msgid "Set Location" msgstr "" From 23aaabd425e0124e73a8eb2d590629ea833c8008 Mon Sep 17 00:00:00 2001 From: "Weblate (bot)" Date: Wed, 5 Jul 2023 15:13:26 +0200 Subject: [PATCH 16/50] Translations update from Hosted Weblate (#119) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Arabic) Currently translated at 100.0% (120 of 120 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Arabic) Currently translated at 100.0% (112 of 112 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Ali Aljishi Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ar/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Spanish) Currently translated at 100.0% (120 of 120 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Spanish) Currently translated at 100.0% (112 of 112 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Co-authored-by: gallegonovato Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/es/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Russian) Currently translated at 100.0% (120 of 120 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Russian) Currently translated at 100.0% (115 of 115 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Russian) Currently translated at 99.1% (116 of 117 strings) Translated using Weblate (Russian) Currently translated at 98.2% (115 of 117 strings) Co-authored-by: Hosted Weblate Co-authored-by: Сергей Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ru/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Dutch) Currently translated at 100.0% (120 of 120 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Co-authored-by: Philip Goto Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/nl/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Ukrainian) Currently translated at 100.0% (120 of 120 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Ukrainian) Currently translated at 100.0% (117 of 117 strings) Co-authored-by: Dan Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/uk/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Italian) Currently translated at 100.0% (120 of 120 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Co-authored-by: albanobattistella Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/it/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Tamil) Currently translated at 100.0% (112 of 112 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Co-authored-by: K.B.Dharun Krishna Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ta/ Translation: Cartridges/Cartridges * Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Swedish) Currently translated at 100.0% (120 of 120 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Swedish) Currently translated at 100.0% (118 of 118 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Swedish) Currently translated at 100.0% (112 of 112 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Co-authored-by: Luna Jernberg Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/sv/ Translation: Cartridges/Cartridges * Translated using Weblate (French) Currently translated at 100.0% (121 of 121 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (French) Currently translated at 100.0% (120 of 120 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Geoffrey Coulaud Co-authored-by: Hosted Weblate Co-authored-by: J. Lavoie Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/fr/ Translation: Cartridges/Cartridges * Translated using Weblate (Hungarian) Currently translated at 100.0% (121 of 121 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Hungarian) Currently translated at 100.0% (120 of 120 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Hungarian) Currently translated at 100.0% (118 of 118 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translated using Weblate (Hungarian) Currently translated at 100.0% (115 of 115 strings) Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Co-authored-by: kramo Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/hu/ Translation: Cartridges/Cartridges --------- Co-authored-by: Ali Aljishi Co-authored-by: gallegonovato Co-authored-by: Сергей Co-authored-by: Philip Goto Co-authored-by: Dan Co-authored-by: albanobattistella Co-authored-by: K.B.Dharun Krishna Co-authored-by: Luna Jernberg Co-authored-by: Geoffrey Coulaud Co-authored-by: J. Lavoie Co-authored-by: kramo --- po/ar.po | 191 +++++++++++++++++++++++++----------------------- po/de.po | 181 ++++++++++++++++++++++++++-------------------- po/el.po | 181 ++++++++++++++++++++++++++-------------------- po/es.po | 191 +++++++++++++++++++++++++----------------------- po/fa.po | 147 +++++++++++++++++++++---------------- po/fi.po | 167 ++++++++++++++++++++++++------------------ po/fr.po | 188 +++++++++++++++++++++++++----------------------- po/hu.po | 179 +++++++++++++++++++++++++-------------------- po/it.po | 191 +++++++++++++++++++++++++----------------------- po/ko.po | 147 +++++++++++++++++++++---------------- po/nb_NO.po | 181 ++++++++++++++++++++++++++-------------------- po/nl.po | 191 +++++++++++++++++++++++++----------------------- po/pl.po | 181 ++++++++++++++++++++++++++-------------------- po/pt.po | 181 ++++++++++++++++++++++++++-------------------- po/pt_BR.po | 181 ++++++++++++++++++++++++++-------------------- po/ro.po | 145 +++++++++++++++++++++---------------- po/ru.po | 200 ++++++++++++++++++++++++++++----------------------- po/sv.po | 194 ++++++++++++++++++++++++++----------------------- po/ta.po | 201 ++++++++++++++++++++++++++++----------------------- po/tr.po | 181 ++++++++++++++++++++++++++-------------------- po/uk.po | 204 +++++++++++++++++++++++++++++----------------------- 21 files changed, 2135 insertions(+), 1668 deletions(-) diff --git a/po/ar.po b/po/ar.po index ab0027a..3673eac 100644 --- a/po/ar.po +++ b/po/ar.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: cartridges\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-26 12:01+0200\n" -"PO-Revision-Date: 2023-05-26 18:10+0000\n" +"POT-Creation-Date: 2023-07-05 14:36+0200\n" +"PO-Revision-Date: 2023-07-04 17:29+0000\n" "Last-Translator: Ali Aljishi \n" "Language-Team: Arabic \n" @@ -18,11 +18,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 4.18-dev\n" +"X-Generator: Weblate 5.0-dev\n" #: data/hu.kramo.Cartridges.desktop.in:3 #: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47 -#: src/main.py:146 +#: src/main.py:162 msgid "Cartridges" msgstr "خراطيش" @@ -112,7 +112,7 @@ msgstr "معلومات أكثر" msgid "Edit" msgstr "حرِّر" -#: data/gtk/game.blp:107 src/window.py:169 +#: data/gtk/game.blp:107 src/window.py:171 msgid "Hide" msgstr "أخفِ" @@ -121,7 +121,7 @@ msgstr "أخفِ" msgid "Remove" msgstr "أزل" -#: data/gtk/game.blp:126 src/window.py:171 +#: data/gtk/game.blp:126 src/window.py:173 msgid "Unhide" msgstr "اكشف" @@ -146,7 +146,7 @@ msgstr "أظهر التفضيلات" msgid "Shortcuts" msgstr "الاختصارات" -#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103 +#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112 msgid "Undo" msgstr "تراجع" @@ -174,7 +174,7 @@ msgstr "أظهر الألعاب المخفية" msgid "Remove game" msgstr "أزل اللعبة" -#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236 +#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268 msgid "Behavior" msgstr "السلوك" @@ -223,80 +223,89 @@ msgid "Steam" msgstr "ستيم" #: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110 -#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183 -#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211 -#, fuzzy -#| msgid "itch Install Location" +#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192 +#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220 +#: data/gtk/preferences.blp:234 msgid "Install Location" -msgstr "موضع تثبيت إتش" +msgstr "موضع التثبيت" #: data/gtk/preferences.blp:106 msgid "Lutris" msgstr "لوترس" #: data/gtk/preferences.blp:119 -#, fuzzy -#| msgid "Lutris Cache Location" msgid "Cache Location" -msgstr "موضع ذكرة لوترس المؤقَّتة" +msgstr "موضع الذاكرة المؤقتة" #: data/gtk/preferences.blp:128 msgid "Import Steam Games" msgstr "استورد ألعابًا من ستيم" -#: data/gtk/preferences.blp:138 +#: data/gtk/preferences.blp:137 +msgid "Import Flatpak Games" +msgstr "استورد ألعاب فلاتباك" + +#: data/gtk/preferences.blp:147 msgid "Heroic" msgstr "هِرُوِك" -#: data/gtk/preferences.blp:151 +#: data/gtk/preferences.blp:160 msgid "Import Epic Games" msgstr "استورد ألعاب أَبِك" -#: data/gtk/preferences.blp:160 +#: data/gtk/preferences.blp:169 msgid "Import GOG Games" msgstr "استورد ألعاب جي‌أو‌جي" -#: data/gtk/preferences.blp:169 +#: data/gtk/preferences.blp:178 msgid "Import Sideloaded Games" msgstr "استورد ألعابًا مثبَّتةً بغير متجر" -#: data/gtk/preferences.blp:179 +#: data/gtk/preferences.blp:188 msgid "Bottles" msgstr "قوارير" -#: data/gtk/preferences.blp:193 +#: data/gtk/preferences.blp:202 msgid "itch" msgstr "إتش" -#: data/gtk/preferences.blp:207 +#: data/gtk/preferences.blp:216 msgid "Legendary" -msgstr "" +msgstr "لجندري" -#: data/gtk/preferences.blp:224 +#: data/gtk/preferences.blp:230 +msgid "Flatpak" +msgstr "فلاتباك" + +#: data/gtk/preferences.blp:243 +msgid "Import Game Launchers" +msgstr "استورد مشغِّلات ألعاب" + +#: data/gtk/preferences.blp:256 msgid "SteamGridDB" msgstr "SteamGridDB" -#: data/gtk/preferences.blp:228 +#: data/gtk/preferences.blp:260 msgid "Authentication" msgstr "الاستيثاق" -#: data/gtk/preferences.blp:231 +#: data/gtk/preferences.blp:263 msgid "API Key" msgstr "مفتاح واجهة البرمجة" -#: data/gtk/preferences.blp:239 +#: data/gtk/preferences.blp:271 msgid "Use SteamGridDB" msgstr "استخدم SteamGridDB" -#: data/gtk/preferences.blp:240 +#: data/gtk/preferences.blp:272 msgid "Download images when adding or importing games" msgstr "نزِّل الصور حينما تنزِّل أو تستورد الألعاب" -#: data/gtk/preferences.blp:249 +#: data/gtk/preferences.blp:281 msgid "Prefer Over Official Images" msgstr "فضِّلها على الصور الرسمية" -#: data/gtk/preferences.blp:258 +#: data/gtk/preferences.blp:290 msgid "Prefer Animated Images" msgstr "فضِّل الصور المتحرِّكة" @@ -385,21 +394,21 @@ msgid "About Cartridges" msgstr "عن «خراطيش»" #. Translators: Replace this with your name for it to show up in the about window -#: src/main.py:164 +#: src/main.py:180 msgid "translator_credits" msgstr "Ali Aljishi " #. The variable is the date when the game was added -#: src/window.py:192 +#: src/window.py:194 msgid "Added: {}" msgstr "أضيفت في: {}" -#: src/window.py:195 +#: src/window.py:197 msgid "Never" msgstr "أبدًا" #. The variable is the date when the game was last played -#: src/window.py:199 +#: src/window.py:201 msgid "Last played: {}" msgstr "لُعبت آخر مرَّة في: {}" @@ -416,26 +425,26 @@ msgid "Confirm" msgstr "أكِّد" #. Translate this string as you would translate "file" -#: src/details_window.py:91 +#: src/details_window.py:92 msgid "file.txt" msgstr "ملف.txt" #. As in software -#: src/details_window.py:93 +#: src/details_window.py:94 msgid "program" msgstr "البرنامج" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:98 src/details_window.py:100 +#: src/details_window.py:99 src/details_window.py:101 msgid "C:\\path\\to\\{}" msgstr "C:\\المسار\\إلى\\{}" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:104 src/details_window.py:106 +#: src/details_window.py:105 src/details_window.py:107 msgid "/path/to/{}" msgstr "/المسار/إلى/{}" -#: src/details_window.py:111 +#: src/details_window.py:112 msgid "" "To launch the executable \"{}\", use the command:\n" "\n" @@ -457,15 +466,15 @@ msgstr "" "\n" "ولا تنسَ إحاطة المسار بعلامتي تنصيص مزدوجتين حالما تضمَّن مسافات!" -#: src/details_window.py:146 src/details_window.py:152 +#: src/details_window.py:147 src/details_window.py:153 msgid "Couldn't Add Game" msgstr "تعذَّرت إضافة اللعبة" -#: src/details_window.py:146 src/details_window.py:181 +#: src/details_window.py:147 src/details_window.py:181 msgid "Game title cannot be empty." msgstr "لا يجوز كون عنوان اللعبة فارغًا." -#: src/details_window.py:152 src/details_window.py:189 +#: src/details_window.py:153 src/details_window.py:189 msgid "Executable cannot be empty." msgstr "لا يجوز كون ملفِّ التنفيذ فارغًا." @@ -474,34 +483,65 @@ msgid "Couldn't Apply Preferences" msgstr "تعذَّر تطبيق التفضيلات" #. The variable is the title of the game -#: src/game.py:141 +#: src/game.py:138 msgid "{} launched" msgstr "بُدئت {}" #. The variable is the title of the game -#: src/game.py:154 +#: src/game.py:152 msgid "{} hidden" msgstr "أٌخفيت {}" -#: src/game.py:154 +#: src/game.py:152 msgid "{} unhidden" msgstr "أٌظهرت {}" -#: src/game.py:171 +#: src/game.py:169 msgid "{} removed" msgstr "أزيلت {}" -#: src/preferences.py:102 +#: src/preferences.py:111 msgid "All games removed" msgstr "أُزيلت كلُّ الألعاب" -#: src/preferences.py:149 +#: src/preferences.py:159 msgid "" "An API key is required to use SteamGridDB. You can generate one {}here{}." msgstr "" "تحتاج مفتاح واجهة برمجة حال ما أردت استخدام SteamGridDB، {}هنا تولِّده{}." -#: src/preferences.py:289 +#: src/preferences.py:284 +msgid "Installation Not Found" +msgstr "لم يُعثر على التثبيت" + +#: src/preferences.py:286 +msgid "Select a valid directory." +msgstr "حدِّد مجلَّدًا صالحًا." + +#: src/preferences.py:348 +msgid "Invalid Directory" +msgstr "مجلَّد غير صالح" + +#. The variable is the name of the source +#: src/preferences.py:352 +msgid "Select the {} cache directory." +msgstr "حدِّد مجلَّد ذاكرة {} المؤقتة." + +#. The variable is the name of the source +#: src/preferences.py:355 +#, fuzzy +#| msgid "Select the {} installation directory." +msgid "Select the {} configuration directory." +msgstr "حدِّد مجلَّد تثبيت {}." + +#. The variable is the name of the source +#: src/preferences.py:358 +#, fuzzy +#| msgid "Select the {} cache directory." +msgid "Select the {} data directory." +msgstr "حدِّد مجلَّد ذاكرة {} المؤقتة." + +#: src/preferences.py:364 msgid "Set Location" msgstr "عيِّن الموضع" @@ -509,38 +549,23 @@ msgstr "عيِّن الموضع" msgid "Dismiss" msgstr "تجاهل" -#: src/importer/sources/source.py:106 -msgid "Data" -msgstr "" - -#: src/importer/sources/source.py:107 -msgid "Cache" -msgstr "" - -#: src/importer/sources/source.py:108 -#, fuzzy -#| msgid "Confirm" -msgid "Configuration" -msgstr "أكِّد" - -#. The variables are the type of location (eg. cache) and the source's name (eg. Steam) -#: src/importer/sources/source.py:119 -msgid "Invalid {} Location for {{}}" -msgstr "" - -#: src/importer/sources/source.py:120 -msgid "Pick a new one or disable the source in preferences" -msgstr "" - #: src/store/managers/sgdb_manager.py:47 -#, fuzzy -#| msgid "Couldn't Connect to SteamGridDB" msgid "Couldn't Authenticate SteamGridDB" -msgstr "تعذَّر الاتصال ب‍ SteamGridDB" +msgstr "تعذَّر استيثاق SteamGridDB" #: src/store/managers/sgdb_manager.py:48 msgid "Verify your API key in preferences" -msgstr "" +msgstr "أكِّد مفتاح واجهة البرمجة في التفضيلات" + +#, fuzzy +#~| msgid "The Steam directory cannot be found." +#~ msgid "Directory not Valid" +#~ msgstr "تعذَّر العثور على مجلَّد ستيم." + +#, fuzzy +#~| msgid "Confirm" +#~ msgid "Configuration" +#~ msgstr "أكِّد" #~ msgid "Steam Install Location" #~ msgstr "موضع تثبيت ستيم" @@ -566,15 +591,6 @@ msgstr "" #~ msgid "Select the Lutris cache directory." #~ msgstr "حدِّد مجلَّد ذاكرة لوترس المؤقَّتة." -#~ msgid "Installation Not Found" -#~ msgstr "لم يُعثر على التثبيت" - -#~ msgid "Select the {} configuration directory." -#~ msgstr "حدِّد مجلَّد ضبط {}." - -#~ msgid "Select the {} data directory." -#~ msgstr "حدِّد مجلَّد بيانات {}." - #~ msgid "Importing Games…" #~ msgstr "تُستورد الألعاب…" @@ -695,9 +711,6 @@ msgstr "" #~ msgid "No new games were found in the Steam library." #~ msgstr "لم يُعثر على ألعاب جديدة في مكتبة ستيم." -#~ msgid "The Steam directory cannot be found." -#~ msgstr "تعذَّر العثور على مجلَّد ستيم." - #~ msgid "Talking to Steam" #~ msgstr "يُتواصل مع ستيم" diff --git a/po/de.po b/po/de.po index 19a17c5..15f3df3 100644 --- a/po/de.po +++ b/po/de.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Cartridges\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-26 12:01+0200\n" +"POT-Creation-Date: 2023-07-05 14:36+0200\n" "PO-Revision-Date: 2023-04-17 17:20+0000\n" "Last-Translator: Ettore Atalan \n" "Language-Team: German \n" "Language-Team: Greek \n" "Language-Team: Spanish \n" @@ -18,11 +18,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.18-dev\n" +"X-Generator: Weblate 5.0-dev\n" #: data/hu.kramo.Cartridges.desktop.in:3 #: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47 -#: src/main.py:146 +#: src/main.py:162 msgid "Cartridges" msgstr "Cartuchos" @@ -113,7 +113,7 @@ msgstr "Más información" msgid "Edit" msgstr "Editar" -#: data/gtk/game.blp:107 src/window.py:169 +#: data/gtk/game.blp:107 src/window.py:171 msgid "Hide" msgstr "Ocultar" @@ -122,7 +122,7 @@ msgstr "Ocultar" msgid "Remove" msgstr "Eliminar" -#: data/gtk/game.blp:126 src/window.py:171 +#: data/gtk/game.blp:126 src/window.py:173 msgid "Unhide" msgstr "Mostrar" @@ -147,7 +147,7 @@ msgstr "Mostrar preferencias" msgid "Shortcuts" msgstr "Atajos" -#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103 +#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112 msgid "Undo" msgstr "Deshacer" @@ -175,7 +175,7 @@ msgstr "Mostrar juegos ocultos" msgid "Remove game" msgstr "Eliminar juego" -#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236 +#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268 msgid "Behavior" msgstr "Conducta" @@ -225,80 +225,89 @@ msgid "Steam" msgstr "Steam" #: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110 -#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183 -#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211 -#, fuzzy -#| msgid "itch Install Location" +#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192 +#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220 +#: data/gtk/preferences.blp:234 msgid "Install Location" -msgstr "Ubicación de la instalación de itch" +msgstr "Lugar de la instalación" #: data/gtk/preferences.blp:106 msgid "Lutris" msgstr "Lutris" #: data/gtk/preferences.blp:119 -#, fuzzy -#| msgid "Lutris Cache Location" msgid "Cache Location" -msgstr "Ubicación de la caché de Lutris" +msgstr "Localización de la caché" #: data/gtk/preferences.blp:128 msgid "Import Steam Games" msgstr "Importar juegos de Steam" -#: data/gtk/preferences.blp:138 +#: data/gtk/preferences.blp:137 +msgid "Import Flatpak Games" +msgstr "Importar los juegos Flatpak" + +#: data/gtk/preferences.blp:147 msgid "Heroic" msgstr "Heroic" -#: data/gtk/preferences.blp:151 +#: data/gtk/preferences.blp:160 msgid "Import Epic Games" msgstr "Importar juegos de Epic" -#: data/gtk/preferences.blp:160 +#: data/gtk/preferences.blp:169 msgid "Import GOG Games" msgstr "Importar juegos de GOG" -#: data/gtk/preferences.blp:169 +#: data/gtk/preferences.blp:178 msgid "Import Sideloaded Games" msgstr "Importar juegos descargados" -#: data/gtk/preferences.blp:179 +#: data/gtk/preferences.blp:188 msgid "Bottles" msgstr "Bottles" -#: data/gtk/preferences.blp:193 +#: data/gtk/preferences.blp:202 msgid "itch" msgstr "itch" -#: data/gtk/preferences.blp:207 +#: data/gtk/preferences.blp:216 msgid "Legendary" -msgstr "" +msgstr "Legendario" -#: data/gtk/preferences.blp:224 +#: data/gtk/preferences.blp:230 +msgid "Flatpak" +msgstr "Flatpak" + +#: data/gtk/preferences.blp:243 +msgid "Import Game Launchers" +msgstr "Importar lanzadores de juegos" + +#: data/gtk/preferences.blp:256 msgid "SteamGridDB" msgstr "SteamGridDB" -#: data/gtk/preferences.blp:228 +#: data/gtk/preferences.blp:260 msgid "Authentication" msgstr "Autentificación" -#: data/gtk/preferences.blp:231 +#: data/gtk/preferences.blp:263 msgid "API Key" msgstr "Código API" -#: data/gtk/preferences.blp:239 +#: data/gtk/preferences.blp:271 msgid "Use SteamGridDB" msgstr "Utiliza SteamGridDB" -#: data/gtk/preferences.blp:240 +#: data/gtk/preferences.blp:272 msgid "Download images when adding or importing games" msgstr "Descargar las imágenes al añadir o importar juegos" -#: data/gtk/preferences.blp:249 +#: data/gtk/preferences.blp:281 msgid "Prefer Over Official Images" msgstr "Preferir las imágenes oficiales" -#: data/gtk/preferences.blp:258 +#: data/gtk/preferences.blp:290 msgid "Prefer Animated Images" msgstr "Prefiero las imágenes animadas" @@ -387,21 +396,21 @@ msgid "About Cartridges" msgstr "Acerca de Cartuchos" #. Translators: Replace this with your name for it to show up in the about window -#: src/main.py:164 +#: src/main.py:180 msgid "translator_credits" msgstr "Óscar Fernández Díaz " #. The variable is the date when the game was added -#: src/window.py:192 +#: src/window.py:194 msgid "Added: {}" msgstr "Añadido: {}" -#: src/window.py:195 +#: src/window.py:197 msgid "Never" msgstr "Nunca" #. The variable is the date when the game was last played -#: src/window.py:199 +#: src/window.py:201 msgid "Last played: {}" msgstr "Último jugado: {}" @@ -418,26 +427,26 @@ msgid "Confirm" msgstr "Confirmar" #. Translate this string as you would translate "file" -#: src/details_window.py:91 +#: src/details_window.py:92 msgid "file.txt" msgstr "archivo.txt" #. As in software -#: src/details_window.py:93 +#: src/details_window.py:94 msgid "program" msgstr "programa" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:98 src/details_window.py:100 +#: src/details_window.py:99 src/details_window.py:101 msgid "C:\\path\\to\\{}" msgstr "C:\\ruta\\hasta\\{}" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:104 src/details_window.py:106 +#: src/details_window.py:105 src/details_window.py:107 msgid "/path/to/{}" msgstr "/ruta/hasta/{}" -#: src/details_window.py:111 +#: src/details_window.py:112 msgid "" "To launch the executable \"{}\", use the command:\n" "\n" @@ -459,15 +468,15 @@ msgstr "" "\n" "Si la ruta contiene espacios, ¡asegúrese de entrecomillarla!" -#: src/details_window.py:146 src/details_window.py:152 +#: src/details_window.py:147 src/details_window.py:153 msgid "Couldn't Add Game" msgstr "No se puede añadir el juego" -#: src/details_window.py:146 src/details_window.py:181 +#: src/details_window.py:147 src/details_window.py:181 msgid "Game title cannot be empty." msgstr "El título del juego no puede estar vacío." -#: src/details_window.py:152 src/details_window.py:189 +#: src/details_window.py:153 src/details_window.py:189 msgid "Executable cannot be empty." msgstr "El ejecutable no puede estar vacío." @@ -476,35 +485,66 @@ msgid "Couldn't Apply Preferences" msgstr "No se pudieron aplicar las preferencias" #. The variable is the title of the game -#: src/game.py:141 +#: src/game.py:138 msgid "{} launched" msgstr "{} comenzó" #. The variable is the title of the game -#: src/game.py:154 +#: src/game.py:152 msgid "{} hidden" msgstr "{} oculto" -#: src/game.py:154 +#: src/game.py:152 msgid "{} unhidden" msgstr "{} visible" -#: src/game.py:171 +#: src/game.py:169 msgid "{} removed" msgstr "{} eliminado" -#: src/preferences.py:102 +#: src/preferences.py:111 msgid "All games removed" msgstr "Todos los juegos eliminados" -#: src/preferences.py:149 +#: src/preferences.py:159 msgid "" "An API key is required to use SteamGridDB. You can generate one {}here{}." msgstr "" "Se necesita una clave API para utilizar SteamGridDB. Puedes generar una {}" "aquí{}." -#: src/preferences.py:289 +#: src/preferences.py:284 +msgid "Installation Not Found" +msgstr "Instalación no encontrada" + +#: src/preferences.py:286 +msgid "Select a valid directory." +msgstr "Selecciona un directorio válido." + +#: src/preferences.py:348 +msgid "Invalid Directory" +msgstr "Directorio incorrecto" + +#. The variable is the name of the source +#: src/preferences.py:352 +msgid "Select the {} cache directory." +msgstr "Seleccione el directorio de la caché {}." + +#. The variable is the name of the source +#: src/preferences.py:355 +#, fuzzy +#| msgid "Select the {} installation directory." +msgid "Select the {} configuration directory." +msgstr "Selecciona el directorio de la instalación {}." + +#. The variable is the name of the source +#: src/preferences.py:358 +#, fuzzy +#| msgid "Select the {} cache directory." +msgid "Select the {} data directory." +msgstr "Seleccione el directorio de la caché {}." + +#: src/preferences.py:364 msgid "Set Location" msgstr "Escoger la ubicación" @@ -512,38 +552,23 @@ msgstr "Escoger la ubicación" msgid "Dismiss" msgstr "Descartar" -#: src/importer/sources/source.py:106 -msgid "Data" -msgstr "" - -#: src/importer/sources/source.py:107 -msgid "Cache" -msgstr "" - -#: src/importer/sources/source.py:108 -#, fuzzy -#| msgid "Confirm" -msgid "Configuration" -msgstr "Confirmar" - -#. The variables are the type of location (eg. cache) and the source's name (eg. Steam) -#: src/importer/sources/source.py:119 -msgid "Invalid {} Location for {{}}" -msgstr "" - -#: src/importer/sources/source.py:120 -msgid "Pick a new one or disable the source in preferences" -msgstr "" - #: src/store/managers/sgdb_manager.py:47 -#, fuzzy -#| msgid "Couldn't Connect to SteamGridDB" msgid "Couldn't Authenticate SteamGridDB" -msgstr "No se puede conectar a SteamGridDB" +msgstr "No se ha podido autenticar SteamGridDB" #: src/store/managers/sgdb_manager.py:48 msgid "Verify your API key in preferences" -msgstr "" +msgstr "Verifica tu clave API en las preferencias" + +#, fuzzy +#~| msgid "The Steam directory cannot be found." +#~ msgid "Directory not Valid" +#~ msgstr "No se encuentra el directorio de Steam." + +#, fuzzy +#~| msgid "Confirm" +#~ msgid "Configuration" +#~ msgstr "Confirmar" #~ msgid "Steam Install Location" #~ msgstr "Ubicación de la instalación de Steam" @@ -569,15 +594,6 @@ msgstr "" #~ msgid "Select the Lutris cache directory." #~ msgstr "Selecciona el directorio de la caché de Lutris." -#~ msgid "Installation Not Found" -#~ msgstr "No se encuentra la instalación" - -#~ msgid "Select the {} configuration directory." -#~ msgstr "Selecciona el directorio de la configuración {}." - -#~ msgid "Select the {} data directory." -#~ msgstr "Selecciona el directorio de los datos {}." - #~ msgid "Importing Games…" #~ msgstr "Importando juegos…" @@ -703,8 +719,5 @@ msgstr "" #~ msgid "No new games were found in the Steam library." #~ msgstr "No se han encontrado juegos nuevos en la biblioteca de Steam." -#~ msgid "The Steam directory cannot be found." -#~ msgstr "No se encuentra el directorio de Steam." - #~ msgid "Talking to Steam" #~ msgstr "Hablando con Steam" diff --git a/po/fa.po b/po/fa.po index 987fe38..da0494e 100644 --- a/po/fa.po +++ b/po/fa.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Cartridges\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-26 12:01+0200\n" +"POT-Creation-Date: 2023-07-05 14:36+0200\n" "PO-Revision-Date: 2023-04-22 10:48+0000\n" "Last-Translator: سید حسین موسوی فرد \n" "Language-Team: Persian \n" "Language-Team: Finnish , 2023. # John Donne , 2023. # "Yannick A." , 2023. +# Geoffrey Coulaud , 2023. msgid "" msgstr "" "Project-Id-Version: cartridges\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-26 12:01+0200\n" -"PO-Revision-Date: 2023-05-28 10:11+0000\n" -"Last-Translator: rene-coty \n" +"POT-Creation-Date: 2023-07-05 14:36+0200\n" +"PO-Revision-Date: 2023-07-05 13:13+0000\n" +"Last-Translator: Geoffrey Coulaud \n" "Language-Team: French \n" "Language: fr\n" @@ -20,11 +21,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.18-dev\n" +"X-Generator: Weblate 5.0-dev\n" #: data/hu.kramo.Cartridges.desktop.in:3 #: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47 -#: src/main.py:146 +#: src/main.py:162 msgid "Cartridges" msgstr "Cartridges" @@ -115,7 +116,7 @@ msgstr "Plus d’informations" msgid "Edit" msgstr "Modifier" -#: data/gtk/game.blp:107 src/window.py:169 +#: data/gtk/game.blp:107 src/window.py:171 msgid "Hide" msgstr "Masquer" @@ -124,7 +125,7 @@ msgstr "Masquer" msgid "Remove" msgstr "Supprimer" -#: data/gtk/game.blp:126 src/window.py:171 +#: data/gtk/game.blp:126 src/window.py:173 msgid "Unhide" msgstr "Ne plus masquer" @@ -149,7 +150,7 @@ msgstr "Afficher les préférences" msgid "Shortcuts" msgstr "Raccourcis" -#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103 +#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112 msgid "Undo" msgstr "Annuler" @@ -177,7 +178,7 @@ msgstr "Afficher les jeux masqués" msgid "Remove game" msgstr "Supprimer le jeu" -#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236 +#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268 msgid "Behavior" msgstr "Comportement" @@ -229,80 +230,89 @@ msgid "Steam" msgstr "Steam" #: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110 -#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183 -#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211 -#, fuzzy -#| msgid "itch Install Location" +#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192 +#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220 +#: data/gtk/preferences.blp:234 msgid "Install Location" -msgstr "Emplacement d’installation de Itch" +msgstr "Emplacement d'installation" #: data/gtk/preferences.blp:106 msgid "Lutris" msgstr "Lutris" #: data/gtk/preferences.blp:119 -#, fuzzy -#| msgid "Lutris Cache Location" msgid "Cache Location" -msgstr "Emplacement du cache de Lutris" +msgstr "Emplacement du cache" #: data/gtk/preferences.blp:128 msgid "Import Steam Games" msgstr "Importer les jeux de Steam" -#: data/gtk/preferences.blp:138 +#: data/gtk/preferences.blp:137 +msgid "Import Flatpak Games" +msgstr "Importer des jeux Flatpak" + +#: data/gtk/preferences.blp:147 msgid "Heroic" msgstr "Heroic" -#: data/gtk/preferences.blp:151 +#: data/gtk/preferences.blp:160 msgid "Import Epic Games" msgstr "Importer les jeux d'Epic Games" -#: data/gtk/preferences.blp:160 +#: data/gtk/preferences.blp:169 msgid "Import GOG Games" msgstr "Importer les jeux de GOG" -#: data/gtk/preferences.blp:169 +#: data/gtk/preferences.blp:178 msgid "Import Sideloaded Games" msgstr "Importer des jeux Sideloaded" -#: data/gtk/preferences.blp:179 +#: data/gtk/preferences.blp:188 msgid "Bottles" msgstr "Bottles" -#: data/gtk/preferences.blp:193 +#: data/gtk/preferences.blp:202 msgid "itch" msgstr "itch" -#: data/gtk/preferences.blp:207 +#: data/gtk/preferences.blp:216 msgid "Legendary" -msgstr "" +msgstr "Légendaire" -#: data/gtk/preferences.blp:224 +#: data/gtk/preferences.blp:230 +msgid "Flatpak" +msgstr "Flatpak" + +#: data/gtk/preferences.blp:243 +msgid "Import Game Launchers" +msgstr "Importer des lanceurs de jeux" + +#: data/gtk/preferences.blp:256 msgid "SteamGridDB" msgstr "SteamGridDB" -#: data/gtk/preferences.blp:228 +#: data/gtk/preferences.blp:260 msgid "Authentication" msgstr "Authentification" -#: data/gtk/preferences.blp:231 +#: data/gtk/preferences.blp:263 msgid "API Key" msgstr "Clé API" -#: data/gtk/preferences.blp:239 +#: data/gtk/preferences.blp:271 msgid "Use SteamGridDB" msgstr "Utiliser SteamGridDB" -#: data/gtk/preferences.blp:240 +#: data/gtk/preferences.blp:272 msgid "Download images when adding or importing games" msgstr "Télécharger les images lors de l’ajout ou de l’importation de jeux" -#: data/gtk/preferences.blp:249 +#: data/gtk/preferences.blp:281 msgid "Prefer Over Official Images" msgstr "Préférer à la place des images officielles" -#: data/gtk/preferences.blp:258 +#: data/gtk/preferences.blp:290 msgid "Prefer Animated Images" msgstr "Préférer les images animées" @@ -391,21 +401,21 @@ msgid "About Cartridges" msgstr "À propos de Cartridges" #. Translators: Replace this with your name for it to show up in the about window -#: src/main.py:164 +#: src/main.py:180 msgid "translator_credits" msgstr "Irénée Thirion" #. The variable is the date when the game was added -#: src/window.py:192 +#: src/window.py:194 msgid "Added: {}" msgstr "Ajouté : {}" -#: src/window.py:195 +#: src/window.py:197 msgid "Never" msgstr "Jamais" #. The variable is the date when the game was last played -#: src/window.py:199 +#: src/window.py:201 msgid "Last played: {}" msgstr "Dernière session : {}" @@ -422,26 +432,26 @@ msgid "Confirm" msgstr "Confirmer" #. Translate this string as you would translate "file" -#: src/details_window.py:91 +#: src/details_window.py:92 msgid "file.txt" msgstr "fichier.txt" #. As in software -#: src/details_window.py:93 +#: src/details_window.py:94 msgid "program" msgstr "programme" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:98 src/details_window.py:100 +#: src/details_window.py:99 src/details_window.py:101 msgid "C:\\path\\to\\{}" msgstr "C:\\chemin\\vers\\{}" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:104 src/details_window.py:106 +#: src/details_window.py:105 src/details_window.py:107 msgid "/path/to/{}" msgstr "/chemin/vers/{}" -#: src/details_window.py:111 +#: src/details_window.py:112 msgid "" "To launch the executable \"{}\", use the command:\n" "\n" @@ -465,15 +475,15 @@ msgstr "" "Si le chemin d'accès contient des espaces, veillez à le mettre entre " "guillemets !" -#: src/details_window.py:146 src/details_window.py:152 +#: src/details_window.py:147 src/details_window.py:153 msgid "Couldn't Add Game" msgstr "Impossible d’ajouter le jeu" -#: src/details_window.py:146 src/details_window.py:181 +#: src/details_window.py:147 src/details_window.py:181 msgid "Game title cannot be empty." msgstr "Le titre du jeu ne peut pas être vide." -#: src/details_window.py:152 src/details_window.py:189 +#: src/details_window.py:153 src/details_window.py:189 msgid "Executable cannot be empty." msgstr "L’exécutable ne peut pas être vide." @@ -482,35 +492,62 @@ msgid "Couldn't Apply Preferences" msgstr "Impossible d’appliquer les préférences" #. The variable is the title of the game -#: src/game.py:141 +#: src/game.py:138 msgid "{} launched" msgstr "{} lancé" #. The variable is the title of the game -#: src/game.py:154 +#: src/game.py:152 msgid "{} hidden" msgstr "{} masqué" -#: src/game.py:154 +#: src/game.py:152 msgid "{} unhidden" msgstr "{} affiché" -#: src/game.py:171 +#: src/game.py:169 msgid "{} removed" msgstr "{} retiré" -#: src/preferences.py:102 +#: src/preferences.py:111 msgid "All games removed" msgstr "Tous les jeux ont été supprimés" -#: src/preferences.py:149 +#: src/preferences.py:159 msgid "" "An API key is required to use SteamGridDB. You can generate one {}here{}." msgstr "" "Une clé API est requise pour utiliser SteamGridDB. Vous pouvez en générer " "une {}ici{}." -#: src/preferences.py:289 +#: src/preferences.py:284 +msgid "Installation Not Found" +msgstr "Installation introuvable" + +#: src/preferences.py:286 +msgid "Select a valid directory." +msgstr "Sélectionnez un répertoire valide." + +#: src/preferences.py:348 +msgid "Invalid Directory" +msgstr "Répertoire invalide" + +#. The variable is the name of the source +#: src/preferences.py:352 +msgid "Select the {} cache directory." +msgstr "Sélectionnez le répertoire de cache de {}." + +#. The variable is the name of the source +#: src/preferences.py:355 +msgid "Select the {} configuration directory." +msgstr "Sélectionnez le répertoire de configuration de {}." + +#. The variable is the name of the source +#: src/preferences.py:358 +msgid "Select the {} data directory." +msgstr "Sélectionnez le répertoire de données de {}." + +#: src/preferences.py:364 msgid "Set Location" msgstr "Définir l’emplacement" @@ -518,38 +555,23 @@ msgstr "Définir l’emplacement" msgid "Dismiss" msgstr "Fermer" -#: src/importer/sources/source.py:106 -msgid "Data" -msgstr "" - -#: src/importer/sources/source.py:107 -msgid "Cache" -msgstr "" - -#: src/importer/sources/source.py:108 -#, fuzzy -#| msgid "Confirm" -msgid "Configuration" -msgstr "Confirmer" - -#. The variables are the type of location (eg. cache) and the source's name (eg. Steam) -#: src/importer/sources/source.py:119 -msgid "Invalid {} Location for {{}}" -msgstr "" - -#: src/importer/sources/source.py:120 -msgid "Pick a new one or disable the source in preferences" -msgstr "" - #: src/store/managers/sgdb_manager.py:47 -#, fuzzy -#| msgid "Couldn't Connect to SteamGridDB" msgid "Couldn't Authenticate SteamGridDB" msgstr "Impossible de se connecter à SteamGridDB" #: src/store/managers/sgdb_manager.py:48 msgid "Verify your API key in preferences" -msgstr "" +msgstr "Vérifiez votre clé API dans les préférences" + +#, fuzzy +#~| msgid "The Steam directory cannot be found." +#~ msgid "Directory not Valid" +#~ msgstr "Le répertoire Steam est introuvable." + +#, fuzzy +#~| msgid "Confirm" +#~ msgid "Configuration" +#~ msgstr "Confirmer" #~ msgid "Steam Install Location" #~ msgstr "Emplacement de l’installation de Steam" @@ -575,15 +597,6 @@ msgstr "" #~ msgid "Select the Lutris cache directory." #~ msgstr "Sélectionnez le répertoire du cache de Lutris." -#~ msgid "Installation Not Found" -#~ msgstr "Installation introuvable" - -#~ msgid "Select the {} configuration directory." -#~ msgstr "Sélectionnez le répertoire de configuration de {}." - -#~ msgid "Select the {} data directory." -#~ msgstr "Sélectionnez le répertoire de données de {}." - #~ msgid "Importing Games…" #~ msgstr "Importation des jeux…" @@ -710,9 +723,6 @@ msgstr "" #~ msgid "No new games were found in the Steam library." #~ msgstr "Aucun nouveau jeu n'a été trouvé dans la bibliothèque Steam." -#~ msgid "The Steam directory cannot be found." -#~ msgstr "Le répertoire Steam est introuvable." - #~ msgid "Talking to Steam" #~ msgstr "Parler à Steam" diff --git a/po/hu.po b/po/hu.po index f54c721..ce46c6a 100644 --- a/po/hu.po +++ b/po/hu.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-26 12:01+0200\n" -"PO-Revision-Date: 2023-06-26 10:05+0000\n" +"POT-Creation-Date: 2023-07-05 14:36+0200\n" +"PO-Revision-Date: 2023-07-05 13:13+0000\n" "Last-Translator: kramo \n" "Language-Team: Hungarian \n" @@ -18,11 +18,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.18.1\n" +"X-Generator: Weblate 5.0-dev\n" #: data/hu.kramo.Cartridges.desktop.in:3 #: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47 -#: src/main.py:146 +#: src/main.py:162 msgid "Cartridges" msgstr "Kazetták" @@ -112,7 +112,7 @@ msgstr "Több infó" msgid "Edit" msgstr "Szerkesztés" -#: data/gtk/game.blp:107 src/window.py:169 +#: data/gtk/game.blp:107 src/window.py:171 msgid "Hide" msgstr "Elrejtés" @@ -121,7 +121,7 @@ msgstr "Elrejtés" msgid "Remove" msgstr "Eltávolítás" -#: data/gtk/game.blp:126 src/window.py:171 +#: data/gtk/game.blp:126 src/window.py:173 msgid "Unhide" msgstr "Elrejtés visszavonása" @@ -146,7 +146,7 @@ msgstr "Beállítások megjelenítése" msgid "Shortcuts" msgstr "Gyorsbillentyűk" -#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103 +#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112 msgid "Undo" msgstr "Visszavonás" @@ -174,7 +174,7 @@ msgstr "Rejtett játékok megjelenítése" msgid "Remove game" msgstr "Játék eltávolítása" -#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236 +#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268 msgid "Behavior" msgstr "Működés" @@ -223,8 +223,9 @@ msgid "Steam" msgstr "Steam" #: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110 -#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183 -#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211 +#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192 +#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220 +#: data/gtk/preferences.blp:234 msgid "Install Location" msgstr "Telepítés helye" @@ -240,59 +241,71 @@ msgstr "Gyorsítótár helye" msgid "Import Steam Games" msgstr "Steam játékok importálása" -#: data/gtk/preferences.blp:138 +#: data/gtk/preferences.blp:137 +msgid "Import Flatpak Games" +msgstr "Flatpak játékok importálása" + +#: data/gtk/preferences.blp:147 msgid "Heroic" msgstr "Heroic" -#: data/gtk/preferences.blp:151 +#: data/gtk/preferences.blp:160 msgid "Import Epic Games" msgstr "Epic Games játékok importálása" -#: data/gtk/preferences.blp:160 +#: data/gtk/preferences.blp:169 msgid "Import GOG Games" msgstr "GOG játékok importálása" -#: data/gtk/preferences.blp:169 +#: data/gtk/preferences.blp:178 msgid "Import Sideloaded Games" msgstr "Manuálisan hozzáadott játékok importálása" -#: data/gtk/preferences.blp:179 +#: data/gtk/preferences.blp:188 msgid "Bottles" msgstr "Palackok" -#: data/gtk/preferences.blp:193 +#: data/gtk/preferences.blp:202 msgid "itch" msgstr "itch" -#: data/gtk/preferences.blp:207 +#: data/gtk/preferences.blp:216 msgid "Legendary" msgstr "Legendary" -#: data/gtk/preferences.blp:224 +#: data/gtk/preferences.blp:230 +msgid "Flatpak" +msgstr "Flatpak" + +#: data/gtk/preferences.blp:243 +msgid "Import Game Launchers" +msgstr "Játékindítók importálása" + +#: data/gtk/preferences.blp:256 msgid "SteamGridDB" msgstr "SteamGridDB" -#: data/gtk/preferences.blp:228 +#: data/gtk/preferences.blp:260 msgid "Authentication" msgstr "Hitelesítés" -#: data/gtk/preferences.blp:231 +#: data/gtk/preferences.blp:263 msgid "API Key" msgstr "API kulcs" -#: data/gtk/preferences.blp:239 +#: data/gtk/preferences.blp:271 msgid "Use SteamGridDB" msgstr "SteamGridDB használata" -#: data/gtk/preferences.blp:240 +#: data/gtk/preferences.blp:272 msgid "Download images when adding or importing games" msgstr "Képek letöltése játékok hozzáadásakor és importálásakor" -#: data/gtk/preferences.blp:249 +#: data/gtk/preferences.blp:281 msgid "Prefer Over Official Images" msgstr "SteamGridDB képek előnyben részesítése" -#: data/gtk/preferences.blp:258 +#: data/gtk/preferences.blp:290 msgid "Prefer Animated Images" msgstr "Animált képek előnyben részesítése" @@ -381,21 +394,21 @@ msgid "About Cartridges" msgstr "A Kazetták névjegye" #. Translators: Replace this with your name for it to show up in the about window -#: src/main.py:164 +#: src/main.py:180 msgid "translator_credits" msgstr "kramo https://kramo.hu" #. The variable is the date when the game was added -#: src/window.py:192 +#: src/window.py:194 msgid "Added: {}" msgstr "Hozzáadva: {}" -#: src/window.py:195 +#: src/window.py:197 msgid "Never" msgstr "Soha" #. The variable is the date when the game was last played -#: src/window.py:199 +#: src/window.py:201 msgid "Last played: {}" msgstr "Legutóbbi játékmenet: {}" @@ -412,26 +425,26 @@ msgid "Confirm" msgstr "Megerősítés" #. Translate this string as you would translate "file" -#: src/details_window.py:91 +#: src/details_window.py:92 msgid "file.txt" msgstr "fájl.txt" #. As in software -#: src/details_window.py:93 +#: src/details_window.py:94 msgid "program" msgstr "program" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:98 src/details_window.py:100 +#: src/details_window.py:99 src/details_window.py:101 msgid "C:\\path\\to\\{}" msgstr "C:\\útvonal\\ide\\{}" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:104 src/details_window.py:106 +#: src/details_window.py:105 src/details_window.py:107 msgid "/path/to/{}" msgstr "/útvonal/ide/{}" -#: src/details_window.py:111 +#: src/details_window.py:112 msgid "" "To launch the executable \"{}\", use the command:\n" "\n" @@ -454,15 +467,15 @@ msgstr "" "\n" "Ha az elérési útvonalban szóközök vannak, rakja az útvonalat idézőjelek közé!" -#: src/details_window.py:146 src/details_window.py:152 +#: src/details_window.py:147 src/details_window.py:153 msgid "Couldn't Add Game" msgstr "Nem lehet hozzáadni a játékot" -#: src/details_window.py:146 src/details_window.py:181 +#: src/details_window.py:147 src/details_window.py:181 msgid "Game title cannot be empty." msgstr "A cím nem lehet üres." -#: src/details_window.py:152 src/details_window.py:189 +#: src/details_window.py:153 src/details_window.py:189 msgid "Executable cannot be empty." msgstr "A program nem lehet üres." @@ -471,35 +484,62 @@ msgid "Couldn't Apply Preferences" msgstr "Nem lehet menteni a beállításokat" #. The variable is the title of the game -#: src/game.py:141 +#: src/game.py:138 msgid "{} launched" msgstr "{} elindítva" #. The variable is the title of the game -#: src/game.py:154 +#: src/game.py:152 msgid "{} hidden" msgstr "{} elrejtve" -#: src/game.py:154 +#: src/game.py:152 msgid "{} unhidden" msgstr "{} elrejtése visszavonva" -#: src/game.py:171 +#: src/game.py:169 msgid "{} removed" msgstr "{} eltávolítva" -#: src/preferences.py:102 +#: src/preferences.py:111 msgid "All games removed" msgstr "Az összes játék eltávolítva" -#: src/preferences.py:149 +#: src/preferences.py:159 msgid "" "An API key is required to use SteamGridDB. You can generate one {}here{}." msgstr "" "Egy API kulcs szükséges a SteamGridDB használatához. {}Itt{} generálhat " "egyet." -#: src/preferences.py:289 +#: src/preferences.py:284 +msgid "Installation Not Found" +msgstr "A telepítés nem található" + +#: src/preferences.py:286 +msgid "Select a valid directory." +msgstr "Válasszon ki egy érvényes mappát." + +#: src/preferences.py:348 +msgid "Invalid Directory" +msgstr "Érvénytelen mappa" + +#. The variable is the name of the source +#: src/preferences.py:352 +msgid "Select the {} cache directory." +msgstr "Válassza ki {} gyorsítótár mappáját." + +#. The variable is the name of the source +#: src/preferences.py:355 +msgid "Select the {} configuration directory." +msgstr "Válassza ki {} konfigurációs mappáját." + +#. The variable is the name of the source +#: src/preferences.py:358 +msgid "Select the {} data directory." +msgstr "Válassza ki {} adatok mappáját." + +#: src/preferences.py:364 msgid "Set Location" msgstr "Mappa kiválasztása" @@ -507,27 +547,6 @@ msgstr "Mappa kiválasztása" msgid "Dismiss" msgstr "Rendben" -#: src/importer/sources/source.py:106 -msgid "Data" -msgstr "Adatok" - -#: src/importer/sources/source.py:107 -msgid "Cache" -msgstr "Gyorsítótár" - -#: src/importer/sources/source.py:108 -msgid "Configuration" -msgstr "Konfigurációk" - -#. The variables are the type of location (eg. cache) and the source's name (eg. Steam) -#: src/importer/sources/source.py:119 -msgid "Invalid {} Location for {{}}" -msgstr "Érvénytelen {} mappa ennek a forrásnak: {{}}" - -#: src/importer/sources/source.py:120 -msgid "Pick a new one or disable the source in preferences" -msgstr "Válasszon egy újat, vagy kapcsolja ki a forrást a beállításokban" - #: src/store/managers/sgdb_manager.py:47 msgid "Couldn't Authenticate SteamGridDB" msgstr "Nem lehet hitelesíteni SteamGridDB-t" @@ -536,6 +555,26 @@ msgstr "Nem lehet hitelesíteni SteamGridDB-t" msgid "Verify your API key in preferences" msgstr "Ellenőrizze az API kulcsát a beállításokban" +#, fuzzy +#~| msgid "The Steam directory cannot be found." +#~ msgid "Directory not Valid" +#~ msgstr "A Steam mappa nem található." + +#~ msgid "Data" +#~ msgstr "Adatok" + +#~ msgid "Cache" +#~ msgstr "Gyorsítótár" + +#~ msgid "Configuration" +#~ msgstr "Konfigurációk" + +#~ msgid "Invalid {} Location for {{}}" +#~ msgstr "Érvénytelen {} mappa ennek a forrásnak: {{}}" + +#~ msgid "Pick a new one or disable the source in preferences" +#~ msgstr "Válasszon egy újat, vagy kapcsolja ki a forrást a beállításokban" + #~ msgid "Steam Install Location" #~ msgstr "Steam telepítés helye" @@ -560,15 +599,6 @@ msgstr "Ellenőrizze az API kulcsát a beállításokban" #~ msgid "Select the Lutris cache directory." #~ msgstr "Válassza ki Lutris gyorsítótár mappáját." -#~ msgid "Installation Not Found" -#~ msgstr "Telepítés nem található" - -#~ msgid "Select the {} configuration directory." -#~ msgstr "Válassza ki {} konfigurációs mappáját." - -#~ msgid "Select the {} data directory." -#~ msgstr "Válassza ki {} adatainak mappáját." - #~ msgid "Importing Games…" #~ msgstr "Játékok importálása folyamatban…" @@ -688,9 +718,6 @@ msgstr "Ellenőrizze az API kulcsát a beállításokban" #~ msgid "No new games were found in the Steam library." #~ msgstr "Nem találhatóak új játékok a Steam könyvtárban." -#~ msgid "The Steam directory cannot be found." -#~ msgstr "A Steam mappa nem található." - #~ msgid "Talking to Steam" #~ msgstr "Adatok lekérése a Steam-ből" diff --git a/po/it.po b/po/it.po index 4de190e..8368a72 100644 --- a/po/it.po +++ b/po/it.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: cartridges\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-26 12:01+0200\n" -"PO-Revision-Date: 2023-05-26 18:10+0000\n" +"POT-Creation-Date: 2023-07-05 14:36+0200\n" +"PO-Revision-Date: 2023-07-01 15:10+0000\n" "Last-Translator: albanobattistella \n" "Language-Team: Italian \n" @@ -18,11 +18,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.18-dev\n" +"X-Generator: Weblate 5.0-dev\n" #: data/hu.kramo.Cartridges.desktop.in:3 #: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47 -#: src/main.py:146 +#: src/main.py:162 msgid "Cartridges" msgstr "Cartucce" @@ -113,7 +113,7 @@ msgstr "Altre informazioni" msgid "Edit" msgstr "Modifica" -#: data/gtk/game.blp:107 src/window.py:169 +#: data/gtk/game.blp:107 src/window.py:171 msgid "Hide" msgstr "Nascondi" @@ -122,7 +122,7 @@ msgstr "Nascondi" msgid "Remove" msgstr "Rimuovi" -#: data/gtk/game.blp:126 src/window.py:171 +#: data/gtk/game.blp:126 src/window.py:173 msgid "Unhide" msgstr "Mostra" @@ -147,7 +147,7 @@ msgstr "Mostra preferenze" msgid "Shortcuts" msgstr "Scorciatoie da tastiera" -#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103 +#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112 msgid "Undo" msgstr "Annulla" @@ -175,7 +175,7 @@ msgstr "Mostra giochi nascosti" msgid "Remove game" msgstr "Rimuovi gioco" -#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236 +#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268 msgid "Behavior" msgstr "Comportamento" @@ -225,80 +225,89 @@ msgid "Steam" msgstr "Steam" #: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110 -#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183 -#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211 -#, fuzzy -#| msgid "itch Install Location" +#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192 +#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220 +#: data/gtk/preferences.blp:234 msgid "Install Location" -msgstr "itch Posizione di installazione" +msgstr "Posizione di installazione" #: data/gtk/preferences.blp:106 msgid "Lutris" msgstr "Lutris" #: data/gtk/preferences.blp:119 -#, fuzzy -#| msgid "Lutris Cache Location" msgid "Cache Location" -msgstr "Posizione della cache di Lutris" +msgstr "Posizione della cache" #: data/gtk/preferences.blp:128 msgid "Import Steam Games" msgstr "Importa giochi da Steam" -#: data/gtk/preferences.blp:138 +#: data/gtk/preferences.blp:137 +msgid "Import Flatpak Games" +msgstr "Importa giochi da Flatpak" + +#: data/gtk/preferences.blp:147 msgid "Heroic" msgstr "Heroic" -#: data/gtk/preferences.blp:151 +#: data/gtk/preferences.blp:160 msgid "Import Epic Games" msgstr "Importa giochi da Epic Games" -#: data/gtk/preferences.blp:160 +#: data/gtk/preferences.blp:169 msgid "Import GOG Games" msgstr "Importa giochi da GOG" -#: data/gtk/preferences.blp:169 +#: data/gtk/preferences.blp:178 msgid "Import Sideloaded Games" msgstr "Importa giochi da aggiunti manualmente" -#: data/gtk/preferences.blp:179 +#: data/gtk/preferences.blp:188 msgid "Bottles" msgstr "Bottles" -#: data/gtk/preferences.blp:193 +#: data/gtk/preferences.blp:202 msgid "itch" msgstr "itch" -#: data/gtk/preferences.blp:207 +#: data/gtk/preferences.blp:216 msgid "Legendary" -msgstr "" +msgstr "Leggendari" -#: data/gtk/preferences.blp:224 +#: data/gtk/preferences.blp:230 +msgid "Flatpak" +msgstr "Flatpak" + +#: data/gtk/preferences.blp:243 +msgid "Import Game Launchers" +msgstr "Importa lanciatori di giochi" + +#: data/gtk/preferences.blp:256 msgid "SteamGridDB" msgstr "SteamGridDB" -#: data/gtk/preferences.blp:228 +#: data/gtk/preferences.blp:260 msgid "Authentication" msgstr "Autenticazione" -#: data/gtk/preferences.blp:231 +#: data/gtk/preferences.blp:263 msgid "API Key" msgstr "Chiave API" -#: data/gtk/preferences.blp:239 +#: data/gtk/preferences.blp:271 msgid "Use SteamGridDB" msgstr "Usa SteamGridDB" -#: data/gtk/preferences.blp:240 +#: data/gtk/preferences.blp:272 msgid "Download images when adding or importing games" msgstr "Scarica immagini durante l'aggiunta o l'import di giochi" -#: data/gtk/preferences.blp:249 +#: data/gtk/preferences.blp:281 msgid "Prefer Over Official Images" msgstr "Preferisci alle immagini ufficiali" -#: data/gtk/preferences.blp:258 +#: data/gtk/preferences.blp:290 msgid "Prefer Animated Images" msgstr "Preferisci immagini animate" @@ -387,21 +396,21 @@ msgid "About Cartridges" msgstr "Informazioni su Cartucce" #. Translators: Replace this with your name for it to show up in the about window -#: src/main.py:164 +#: src/main.py:180 msgid "translator_credits" msgstr "Alessandro Iepure https://ale.iepure.me" #. The variable is the date when the game was added -#: src/window.py:192 +#: src/window.py:194 msgid "Added: {}" msgstr "Aggiunto il: {}" -#: src/window.py:195 +#: src/window.py:197 msgid "Never" msgstr "Mai" #. The variable is the date when the game was last played -#: src/window.py:199 +#: src/window.py:201 msgid "Last played: {}" msgstr "Ultima riproduzione: {}" @@ -418,26 +427,26 @@ msgid "Confirm" msgstr "Conferma" #. Translate this string as you would translate "file" -#: src/details_window.py:91 +#: src/details_window.py:92 msgid "file.txt" msgstr "file.txt" #. As in software -#: src/details_window.py:93 +#: src/details_window.py:94 msgid "program" msgstr "programma" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:98 src/details_window.py:100 +#: src/details_window.py:99 src/details_window.py:101 msgid "C:\\path\\to\\{}" msgstr "C:\\path\\to{}" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:104 src/details_window.py:106 +#: src/details_window.py:105 src/details_window.py:107 msgid "/path/to/{}" msgstr "/percorso/to/{}" -#: src/details_window.py:111 +#: src/details_window.py:112 msgid "" "To launch the executable \"{}\", use the command:\n" "\n" @@ -459,15 +468,15 @@ msgstr "" "\n" "Se il percorso contiene spazi, assicurarsi di avvolgerlo in doppi apici!" -#: src/details_window.py:146 src/details_window.py:152 +#: src/details_window.py:147 src/details_window.py:153 msgid "Couldn't Add Game" msgstr "Impossibile aggiungere il gioco" -#: src/details_window.py:146 src/details_window.py:181 +#: src/details_window.py:147 src/details_window.py:181 msgid "Game title cannot be empty." msgstr "Il titolo del gioco non può essere vuoto." -#: src/details_window.py:152 src/details_window.py:189 +#: src/details_window.py:153 src/details_window.py:189 msgid "Executable cannot be empty." msgstr "L'eseguibile non può essere vuoto." @@ -476,35 +485,66 @@ msgid "Couldn't Apply Preferences" msgstr "Impossibile applicare le preferenze" #. The variable is the title of the game -#: src/game.py:141 +#: src/game.py:138 msgid "{} launched" msgstr "{} avviato" #. The variable is the title of the game -#: src/game.py:154 +#: src/game.py:152 msgid "{} hidden" msgstr "{} nascosto" -#: src/game.py:154 +#: src/game.py:152 msgid "{} unhidden" msgstr "{} visibile" -#: src/game.py:171 +#: src/game.py:169 msgid "{} removed" msgstr "{} rimosso" -#: src/preferences.py:102 +#: src/preferences.py:111 msgid "All games removed" msgstr "Tutti i giochi sono stati rimossi" -#: src/preferences.py:149 +#: src/preferences.py:159 msgid "" "An API key is required to use SteamGridDB. You can generate one {}here{}." msgstr "" "Per utilizzare SteamGridDB è necessaria una chiave API. Puoi generarne una {}" "qui{}." -#: src/preferences.py:289 +#: src/preferences.py:284 +msgid "Installation Not Found" +msgstr "Installazione non trovata" + +#: src/preferences.py:286 +msgid "Select a valid directory." +msgstr "Seleziona una directory valida." + +#: src/preferences.py:348 +msgid "Invalid Directory" +msgstr "Directory non valida" + +#. The variable is the name of the source +#: src/preferences.py:352 +msgid "Select the {} cache directory." +msgstr "Seleziona la directory della cache {}." + +#. The variable is the name of the source +#: src/preferences.py:355 +#, fuzzy +#| msgid "Select the {} installation directory." +msgid "Select the {} configuration directory." +msgstr "Selezionare la directory di installazione {}." + +#. The variable is the name of the source +#: src/preferences.py:358 +#, fuzzy +#| msgid "Select the {} cache directory." +msgid "Select the {} data directory." +msgstr "Seleziona la directory della cache {}." + +#: src/preferences.py:364 msgid "Set Location" msgstr "Imposta percorso" @@ -512,38 +552,23 @@ msgstr "Imposta percorso" msgid "Dismiss" msgstr "Chiudi" -#: src/importer/sources/source.py:106 -msgid "Data" -msgstr "" - -#: src/importer/sources/source.py:107 -msgid "Cache" -msgstr "" - -#: src/importer/sources/source.py:108 -#, fuzzy -#| msgid "Confirm" -msgid "Configuration" -msgstr "Conferma" - -#. The variables are the type of location (eg. cache) and the source's name (eg. Steam) -#: src/importer/sources/source.py:119 -msgid "Invalid {} Location for {{}}" -msgstr "" - -#: src/importer/sources/source.py:120 -msgid "Pick a new one or disable the source in preferences" -msgstr "" - #: src/store/managers/sgdb_manager.py:47 -#, fuzzy -#| msgid "Couldn't Connect to SteamGridDB" msgid "Couldn't Authenticate SteamGridDB" -msgstr "Impossibile connettersi a SteamGridDB" +msgstr "Impossibile eseguire l'autenticazione su SteamGridDB" #: src/store/managers/sgdb_manager.py:48 msgid "Verify your API key in preferences" -msgstr "" +msgstr "Verifica la tua chiave API nelle preferenze" + +#, fuzzy +#~| msgid "The Steam directory cannot be found." +#~ msgid "Directory not Valid" +#~ msgstr "Non è possibile trovare il percorso per Steam." + +#, fuzzy +#~| msgid "Confirm" +#~ msgid "Configuration" +#~ msgstr "Conferma" #~ msgid "Steam Install Location" #~ msgstr "Percorso Installazione Steam" @@ -569,15 +594,6 @@ msgstr "" #~ msgid "Select the Lutris cache directory." #~ msgstr "Selezionare la directory della cache di Lutris." -#~ msgid "Installation Not Found" -#~ msgstr "Installazione non trovata" - -#~ msgid "Select the {} configuration directory." -#~ msgstr "Selezionare la directory di configurazione {}." - -#~ msgid "Select the {} data directory." -#~ msgstr "Selezionare la directory dei dati {}." - #~ msgid "Importing Games…" #~ msgstr "Import dei giochi in corso…" @@ -702,9 +718,6 @@ msgstr "" #~ msgid "No new games were found in the Steam library." #~ msgstr "Nessun nuovo gioco trovato nella libreria di Steam." -#~ msgid "The Steam directory cannot be found." -#~ msgstr "Non è possibile trovare il percorso per Steam." - #~ msgid "Talking to Steam" #~ msgstr "Parlando con Steam" diff --git a/po/ko.po b/po/ko.po index cb7fbbd..a6c170e 100644 --- a/po/ko.po +++ b/po/ko.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Cartridges\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-26 12:01+0200\n" +"POT-Creation-Date: 2023-07-05 14:36+0200\n" "PO-Revision-Date: 2023-03-28 22:23+0000\n" "Last-Translator: MJKim \n" "Language-Team: Korean \n" "Language-Team: Norwegian Bokmål " #. The variable is the date when the game was added -#: src/window.py:192 +#: src/window.py:194 msgid "Added: {}" msgstr "Tillagt: {}" -#: src/window.py:195 +#: src/window.py:197 msgid "Never" msgstr "Aldri" #. The variable is the date when the game was last played -#: src/window.py:199 +#: src/window.py:201 msgid "Last played: {}" msgstr "Sist spilt: {}" @@ -428,26 +445,26 @@ msgid "Confirm" msgstr "Bekreft" #. Translate this string as you would translate "file" -#: src/details_window.py:91 +#: src/details_window.py:92 msgid "file.txt" msgstr "fil.txt" #. As in software -#: src/details_window.py:93 +#: src/details_window.py:94 msgid "program" msgstr "program" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:98 src/details_window.py:100 +#: src/details_window.py:99 src/details_window.py:101 msgid "C:\\path\\to\\{}" msgstr "C:\\sti\\til\\{}" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:104 src/details_window.py:106 +#: src/details_window.py:105 src/details_window.py:107 msgid "/path/to/{}" msgstr "/sti/til/{}" -#: src/details_window.py:111 +#: src/details_window.py:112 msgid "" "To launch the executable \"{}\", use the command:\n" "\n" @@ -470,15 +487,15 @@ msgstr "" "Hvis stien inneholder mellomrom må du pakke den inn i doble engelske " "sitattegn." -#: src/details_window.py:146 src/details_window.py:152 +#: src/details_window.py:147 src/details_window.py:153 msgid "Couldn't Add Game" msgstr "Kunne ikke legge til spill" -#: src/details_window.py:146 src/details_window.py:181 +#: src/details_window.py:147 src/details_window.py:181 msgid "Game title cannot be empty." msgstr "Spillnavnet kan ikke være tomt." -#: src/details_window.py:152 src/details_window.py:189 +#: src/details_window.py:153 src/details_window.py:189 msgid "Executable cannot be empty." msgstr "Kjørbar fil må angis." @@ -487,36 +504,73 @@ msgid "Couldn't Apply Preferences" msgstr "Kunne ikke ta i bruk endringer" #. The variable is the title of the game -#: src/game.py:141 +#: src/game.py:138 msgid "{} launched" msgstr "{} startet" #. The variable is the title of the game -#: src/game.py:154 +#: src/game.py:152 #, fuzzy #| msgid "Show Hidden" msgid "{} hidden" msgstr "{} skjult" -#: src/game.py:154 +#: src/game.py:152 msgid "{} unhidden" msgstr "{} synlig" -#: src/game.py:171 +#: src/game.py:169 msgid "{} removed" msgstr "{} fjernet" -#: src/preferences.py:102 +#: src/preferences.py:111 msgid "All games removed" msgstr "Alle spill fjernet" -#: src/preferences.py:149 +#: src/preferences.py:159 msgid "" "An API key is required to use SteamGridDB. You can generate one {}here{}." msgstr "" "En API-nøkkel kreves for å bruke SteamGridDB. Du kan generere en {}her{}." -#: src/preferences.py:289 +#: src/preferences.py:284 +#, fuzzy +#| msgid "Installation Not Found" +msgid "Installation Not Found" +msgstr "Fant ikke installasjonen" + +#: src/preferences.py:286 +#, fuzzy +#| msgid "Select the {} data directory." +msgid "Select a valid directory." +msgstr "Velg {}-datamappen." + +#: src/preferences.py:348 +msgid "Invalid Directory" +msgstr "" + +#. The variable is the name of the source +#: src/preferences.py:352 +#, fuzzy +#| msgid "Select the {} data directory." +msgid "Select the {} cache directory." +msgstr "Velg {}-datamappen." + +#. The variable is the name of the source +#: src/preferences.py:355 +#, fuzzy +#| msgid "Select the {} configuration directory." +msgid "Select the {} configuration directory." +msgstr "Velg {}-oppsettsmappen." + +#. The variable is the name of the source +#: src/preferences.py:358 +#, fuzzy +#| msgid "Select the {} data directory." +msgid "Select the {} data directory." +msgstr "Velg {}-datamappen." + +#: src/preferences.py:364 #, fuzzy #| msgid "Set Steam Location" msgid "Set Location" @@ -526,29 +580,6 @@ msgstr "Velg mappe" msgid "Dismiss" msgstr "Forkast" -#: src/importer/sources/source.py:106 -msgid "Data" -msgstr "" - -#: src/importer/sources/source.py:107 -msgid "Cache" -msgstr "" - -#: src/importer/sources/source.py:108 -#, fuzzy -#| msgid "Confirm" -msgid "Configuration" -msgstr "Bekreft" - -#. The variables are the type of location (eg. cache) and the source's name (eg. Steam) -#: src/importer/sources/source.py:119 -msgid "Invalid {} Location for {{}}" -msgstr "" - -#: src/importer/sources/source.py:120 -msgid "Pick a new one or disable the source in preferences" -msgstr "" - #: src/store/managers/sgdb_manager.py:47 #, fuzzy msgid "Couldn't Authenticate SteamGridDB" @@ -558,6 +589,16 @@ msgstr "Kunne ikke koble til SteamGridDB" msgid "Verify your API key in preferences" msgstr "" +#, fuzzy +#~| msgid "The Steam directory cannot be found." +#~ msgid "Directory not Valid" +#~ msgstr "Kunne ikke finne Steam-mappen." + +#, fuzzy +#~| msgid "Confirm" +#~ msgid "Configuration" +#~ msgstr "Bekreft" + #~ msgid "Steam Install Location" #~ msgstr "Installasjonssted for Steam" @@ -584,15 +625,6 @@ msgstr "" #~ msgid "Select the Lutris cache directory." #~ msgstr "Velg {name}-datamappen." -#~ msgid "Installation Not Found" -#~ msgstr "Fant ikke installasjonen" - -#~ msgid "Select the {} configuration directory." -#~ msgstr "Velg {}-oppsettsmappen." - -#~ msgid "Select the {} data directory." -#~ msgstr "Velg {}-datamappen." - #~ msgid "Importing Games…" #~ msgstr "Importerer spill …" @@ -728,9 +760,6 @@ msgstr "" #~ msgid "No new games were found in the Steam library." #~ msgstr "Fant ingen nye spill i Steam-biblioteket." -#~ msgid "The Steam directory cannot be found." -#~ msgstr "Kunne ikke finne Steam-mappen." - #, fuzzy #~ msgid "Talking to Steam" #~ msgstr "Snakker med Steam" diff --git a/po/nl.po b/po/nl.po index 4dcf030..1a57d79 100644 --- a/po/nl.po +++ b/po/nl.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: cartridges\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-26 12:01+0200\n" -"PO-Revision-Date: 2023-05-29 18:48+0000\n" +"POT-Creation-Date: 2023-07-05 14:36+0200\n" +"PO-Revision-Date: 2023-07-04 17:29+0000\n" "Last-Translator: Philip Goto \n" "Language-Team: Dutch \n" @@ -17,11 +17,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.18-dev\n" +"X-Generator: Weblate 5.0-dev\n" #: data/hu.kramo.Cartridges.desktop.in:3 #: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47 -#: src/main.py:146 +#: src/main.py:162 msgid "Cartridges" msgstr "Cartridges" @@ -115,7 +115,7 @@ msgstr "Meer info" msgid "Edit" msgstr "Bewerken" -#: data/gtk/game.blp:107 src/window.py:169 +#: data/gtk/game.blp:107 src/window.py:171 msgid "Hide" msgstr "Verbergen" @@ -124,7 +124,7 @@ msgstr "Verbergen" msgid "Remove" msgstr "Verwijderen" -#: data/gtk/game.blp:126 src/window.py:171 +#: data/gtk/game.blp:126 src/window.py:173 msgid "Unhide" msgstr "Niet meer verbergen" @@ -149,7 +149,7 @@ msgstr "Voorkeuren tonen" msgid "Shortcuts" msgstr "Sneltoetsen" -#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103 +#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112 msgid "Undo" msgstr "Ongedaan maken" @@ -177,7 +177,7 @@ msgstr "Verborgen games tonen" msgid "Remove game" msgstr "Game verwijderen" -#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236 +#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268 msgid "Behavior" msgstr "Gedrag" @@ -227,80 +227,89 @@ msgid "Steam" msgstr "Steam" #: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110 -#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183 -#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211 -#, fuzzy -#| msgid "itch Install Location" +#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192 +#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220 +#: data/gtk/preferences.blp:234 msgid "Install Location" -msgstr "Installatielocatie van itch" +msgstr "Installatielocatie" #: data/gtk/preferences.blp:106 msgid "Lutris" msgstr "Lutris" #: data/gtk/preferences.blp:119 -#, fuzzy -#| msgid "Lutris Cache Location" msgid "Cache Location" -msgstr "Cache-locatie van Lutris" +msgstr "Cache-locatie" #: data/gtk/preferences.blp:128 msgid "Import Steam Games" msgstr "Steam-games importeren" -#: data/gtk/preferences.blp:138 +#: data/gtk/preferences.blp:137 +msgid "Import Flatpak Games" +msgstr "Flatpak-games importeren" + +#: data/gtk/preferences.blp:147 msgid "Heroic" msgstr "Heroic" -#: data/gtk/preferences.blp:151 +#: data/gtk/preferences.blp:160 msgid "Import Epic Games" msgstr "Epic-games importeren" -#: data/gtk/preferences.blp:160 +#: data/gtk/preferences.blp:169 msgid "Import GOG Games" msgstr "GOG-games importeren" -#: data/gtk/preferences.blp:169 +#: data/gtk/preferences.blp:178 msgid "Import Sideloaded Games" msgstr "Gesideloade games importeren" -#: data/gtk/preferences.blp:179 +#: data/gtk/preferences.blp:188 msgid "Bottles" msgstr "Bottles" -#: data/gtk/preferences.blp:193 +#: data/gtk/preferences.blp:202 msgid "itch" msgstr "itch" -#: data/gtk/preferences.blp:207 +#: data/gtk/preferences.blp:216 msgid "Legendary" -msgstr "" +msgstr "Legendary" -#: data/gtk/preferences.blp:224 +#: data/gtk/preferences.blp:230 +msgid "Flatpak" +msgstr "Flatpak" + +#: data/gtk/preferences.blp:243 +msgid "Import Game Launchers" +msgstr "Game-launchers importeren" + +#: data/gtk/preferences.blp:256 msgid "SteamGridDB" msgstr "SteamGridDB" -#: data/gtk/preferences.blp:228 +#: data/gtk/preferences.blp:260 msgid "Authentication" msgstr "Authenticatie" -#: data/gtk/preferences.blp:231 +#: data/gtk/preferences.blp:263 msgid "API Key" msgstr "API-sleutel" -#: data/gtk/preferences.blp:239 +#: data/gtk/preferences.blp:271 msgid "Use SteamGridDB" msgstr "SteamGridDB gebruiken" -#: data/gtk/preferences.blp:240 +#: data/gtk/preferences.blp:272 msgid "Download images when adding or importing games" msgstr "Afbeeldingen downloaden bij het toevoegen of importeren van games" -#: data/gtk/preferences.blp:249 +#: data/gtk/preferences.blp:281 msgid "Prefer Over Official Images" msgstr "Voorkeur geven boven officiële afbeeldingen" -#: data/gtk/preferences.blp:258 +#: data/gtk/preferences.blp:290 msgid "Prefer Animated Images" msgstr "Voorkeur geven aan geanimeerde afbeeldingen" @@ -389,21 +398,21 @@ msgid "About Cartridges" msgstr "Over Cartridges" #. Translators: Replace this with your name for it to show up in the about window -#: src/main.py:164 +#: src/main.py:180 msgid "translator_credits" msgstr "Philip Goto https://flipflop97.github.io/" #. The variable is the date when the game was added -#: src/window.py:192 +#: src/window.py:194 msgid "Added: {}" msgstr "Toegevoegd op {}" -#: src/window.py:195 +#: src/window.py:197 msgid "Never" msgstr "Nooit" #. The variable is the date when the game was last played -#: src/window.py:199 +#: src/window.py:201 msgid "Last played: {}" msgstr "Laatst gespeeld: {}" @@ -420,26 +429,26 @@ msgid "Confirm" msgstr "Bevestigen" #. Translate this string as you would translate "file" -#: src/details_window.py:91 +#: src/details_window.py:92 msgid "file.txt" msgstr "bestand.txt" #. As in software -#: src/details_window.py:93 +#: src/details_window.py:94 msgid "program" msgstr "programma" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:98 src/details_window.py:100 +#: src/details_window.py:99 src/details_window.py:101 msgid "C:\\path\\to\\{}" msgstr "C:\\pad\\naar\\{}" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:104 src/details_window.py:106 +#: src/details_window.py:105 src/details_window.py:107 msgid "/path/to/{}" msgstr "/pad/naar/{}" -#: src/details_window.py:111 +#: src/details_window.py:112 msgid "" "To launch the executable \"{}\", use the command:\n" "\n" @@ -463,15 +472,15 @@ msgstr "" "Indien het pad spaties bevat, zorg er dan voor dat er dubbele " "aanhalingstekens omheen staan!" -#: src/details_window.py:146 src/details_window.py:152 +#: src/details_window.py:147 src/details_window.py:153 msgid "Couldn't Add Game" msgstr "Kon game niet toevoegen" -#: src/details_window.py:146 src/details_window.py:181 +#: src/details_window.py:147 src/details_window.py:181 msgid "Game title cannot be empty." msgstr "Game-titel mag niet leeg zijn" -#: src/details_window.py:152 src/details_window.py:189 +#: src/details_window.py:153 src/details_window.py:189 msgid "Executable cannot be empty." msgstr "Programmabestand mag niet leeg zijn" @@ -480,35 +489,66 @@ msgid "Couldn't Apply Preferences" msgstr "Kon voorkeuren niet toepassen" #. The variable is the title of the game -#: src/game.py:141 +#: src/game.py:138 msgid "{} launched" msgstr "{} gestart" #. The variable is the title of the game -#: src/game.py:154 +#: src/game.py:152 msgid "{} hidden" msgstr "{} verborgen" -#: src/game.py:154 +#: src/game.py:152 msgid "{} unhidden" msgstr "{} hersteld" -#: src/game.py:171 +#: src/game.py:169 msgid "{} removed" msgstr "{} verwijderd" -#: src/preferences.py:102 +#: src/preferences.py:111 msgid "All games removed" msgstr "Alle games verwijderd" -#: src/preferences.py:149 +#: src/preferences.py:159 msgid "" "An API key is required to use SteamGridDB. You can generate one {}here{}." msgstr "" "Een API-sleutel is vereist om SteamGridDB te gebruiken. U kunt er {}hier{} " "één genereren." -#: src/preferences.py:289 +#: src/preferences.py:284 +msgid "Installation Not Found" +msgstr "Installatie niet gevonden" + +#: src/preferences.py:286 +msgid "Select a valid directory." +msgstr "Selecteer een geldige map" + +#: src/preferences.py:348 +msgid "Invalid Directory" +msgstr "Ongeldige map" + +#. The variable is the name of the source +#: src/preferences.py:352 +msgid "Select the {} cache directory." +msgstr "Selecteer de cache-map van {}" + +#. The variable is the name of the source +#: src/preferences.py:355 +#, fuzzy +#| msgid "Select the {} installation directory." +msgid "Select the {} configuration directory." +msgstr "Selecteer de installatiemap van {}" + +#. The variable is the name of the source +#: src/preferences.py:358 +#, fuzzy +#| msgid "Select the {} cache directory." +msgid "Select the {} data directory." +msgstr "Selecteer de cache-map van {}" + +#: src/preferences.py:364 msgid "Set Location" msgstr "Locatie instellen" @@ -516,38 +556,23 @@ msgstr "Locatie instellen" msgid "Dismiss" msgstr "Sluiten" -#: src/importer/sources/source.py:106 -msgid "Data" -msgstr "" - -#: src/importer/sources/source.py:107 -msgid "Cache" -msgstr "" - -#: src/importer/sources/source.py:108 -#, fuzzy -#| msgid "Confirm" -msgid "Configuration" -msgstr "Bevestigen" - -#. The variables are the type of location (eg. cache) and the source's name (eg. Steam) -#: src/importer/sources/source.py:119 -msgid "Invalid {} Location for {{}}" -msgstr "" - -#: src/importer/sources/source.py:120 -msgid "Pick a new one or disable the source in preferences" -msgstr "" - #: src/store/managers/sgdb_manager.py:47 -#, fuzzy -#| msgid "Couldn't Connect to SteamGridDB" msgid "Couldn't Authenticate SteamGridDB" -msgstr "Kan geen verbinding maken met SteamGridDB" +msgstr "Kan SteamGridDB niet authenticeren" #: src/store/managers/sgdb_manager.py:48 msgid "Verify your API key in preferences" -msgstr "" +msgstr "Verifieer uw API-sleutel onder voorkeuren" + +#, fuzzy +#~| msgid "The Steam directory cannot be found." +#~ msgid "Directory not Valid" +#~ msgstr "Steam-map kan niet worden gevonden" + +#, fuzzy +#~| msgid "Confirm" +#~ msgid "Configuration" +#~ msgstr "Bevestigen" #~ msgid "Steam Install Location" #~ msgstr "Installatielocatie van Steam" @@ -573,15 +598,6 @@ msgstr "" #~ msgid "Select the Lutris cache directory." #~ msgstr "Selecteer de cache-map van Lutris" -#~ msgid "Installation Not Found" -#~ msgstr "Installatie niet gevonden" - -#~ msgid "Select the {} configuration directory." -#~ msgstr "Selecteer de configuratiemap van {}" - -#~ msgid "Select the {} data directory." -#~ msgstr "Selecteer de gegevensmap van {}" - #~ msgid "Importing Games…" #~ msgstr "Games importeren…" @@ -704,9 +720,6 @@ msgstr "" #~ msgid "No new games were found in the Steam library." #~ msgstr "Geen nieuwe games gevonden in de Steam-bibliotheek" -#~ msgid "The Steam directory cannot be found." -#~ msgstr "Steam-map kan niet worden gevonden" - #~ msgid "Talking to Steam" #~ msgstr "Steam-bibliotheek aan het ophalen" diff --git a/po/pl.po b/po/pl.po index 1144657..e60ff11 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Cartridges\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-26 12:01+0200\n" +"POT-Creation-Date: 2023-07-05 14:36+0200\n" "PO-Revision-Date: 2023-06-10 16:48+0000\n" "Last-Translator: Kshyso \n" "Language-Team: Polish \n" "Language-Team: Portuguese \n" "Language-Team: Portuguese (Brazil) \n" "Language-Team: Romanian \n" "Language-Team: Russian \n" @@ -18,11 +18,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.18.1\n" +"X-Generator: Weblate 5.0-dev\n" #: data/hu.kramo.Cartridges.desktop.in:3 #: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47 -#: src/main.py:146 +#: src/main.py:162 msgid "Cartridges" msgstr "Картриджи" @@ -113,7 +113,7 @@ msgstr "Дополнительная информация" msgid "Edit" msgstr "Редактировать" -#: data/gtk/game.blp:107 src/window.py:169 +#: data/gtk/game.blp:107 src/window.py:171 msgid "Hide" msgstr "Скрыть" @@ -122,7 +122,7 @@ msgstr "Скрыть" msgid "Remove" msgstr "Удалить" -#: data/gtk/game.blp:126 src/window.py:171 +#: data/gtk/game.blp:126 src/window.py:173 msgid "Unhide" msgstr "Показать" @@ -147,7 +147,7 @@ msgstr "Показать параметры" msgid "Shortcuts" msgstr "Комбинации клавиш" -#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103 +#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112 msgid "Undo" msgstr "Вернуть" @@ -175,7 +175,7 @@ msgstr "Показать скрытые игры" msgid "Remove game" msgstr "Удалить игру" -#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236 +#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268 msgid "Behavior" msgstr "Поведение" @@ -224,80 +224,89 @@ msgid "Steam" msgstr "Steam" #: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110 -#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183 -#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211 -#, fuzzy -#| msgid "itch Install Location" +#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192 +#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220 +#: data/gtk/preferences.blp:234 msgid "Install Location" -msgstr "Место установки itch" +msgstr "Место установки" #: data/gtk/preferences.blp:106 msgid "Lutris" msgstr "Lutris" #: data/gtk/preferences.blp:119 -#, fuzzy -#| msgid "Lutris Cache Location" msgid "Cache Location" -msgstr "Расположение кэша Lutris" +msgstr "Расположение кэша" #: data/gtk/preferences.blp:128 msgid "Import Steam Games" msgstr "Импорт игр Steam" -#: data/gtk/preferences.blp:138 +#: data/gtk/preferences.blp:137 +msgid "Import Flatpak Games" +msgstr "Импорт игр Flatpak" + +#: data/gtk/preferences.blp:147 msgid "Heroic" msgstr "Heroic" -#: data/gtk/preferences.blp:151 +#: data/gtk/preferences.blp:160 msgid "Import Epic Games" msgstr "Импорт игр Epic" -#: data/gtk/preferences.blp:160 +#: data/gtk/preferences.blp:169 msgid "Import GOG Games" msgstr "Импорт игр GOG" -#: data/gtk/preferences.blp:169 +#: data/gtk/preferences.blp:178 msgid "Import Sideloaded Games" msgstr "Импорт сторонних игр" -#: data/gtk/preferences.blp:179 +#: data/gtk/preferences.blp:188 msgid "Bottles" msgstr "Bottles" -#: data/gtk/preferences.blp:193 +#: data/gtk/preferences.blp:202 msgid "itch" msgstr "itch" -#: data/gtk/preferences.blp:207 +#: data/gtk/preferences.blp:216 msgid "Legendary" -msgstr "" +msgstr "Legendary" -#: data/gtk/preferences.blp:224 +#: data/gtk/preferences.blp:230 +msgid "Flatpak" +msgstr "Flatpak" + +#: data/gtk/preferences.blp:243 +msgid "Import Game Launchers" +msgstr "Импорт средств запуска игр" + +#: data/gtk/preferences.blp:256 msgid "SteamGridDB" msgstr "SteamGridDB" -#: data/gtk/preferences.blp:228 +#: data/gtk/preferences.blp:260 msgid "Authentication" msgstr "Аутентификация" -#: data/gtk/preferences.blp:231 +#: data/gtk/preferences.blp:263 msgid "API Key" msgstr "API-ключ" -#: data/gtk/preferences.blp:239 +#: data/gtk/preferences.blp:271 msgid "Use SteamGridDB" msgstr "Использовать SteamGridDB" -#: data/gtk/preferences.blp:240 +#: data/gtk/preferences.blp:272 msgid "Download images when adding or importing games" msgstr "Загрузка изображений при добавлении или импорте игр" -#: data/gtk/preferences.blp:249 +#: data/gtk/preferences.blp:281 msgid "Prefer Over Official Images" msgstr "Отдавать предпочтение официальным изображениям" -#: data/gtk/preferences.blp:258 +#: data/gtk/preferences.blp:290 msgid "Prefer Animated Images" msgstr "Отдавать предпочтение анимированным изображениям" @@ -386,23 +395,23 @@ msgid "About Cartridges" msgstr "О приложении" #. Translators: Replace this with your name for it to show up in the about window -#: src/main.py:164 +#: src/main.py:180 msgid "translator_credits" msgstr "Ser82-png" #. The variable is the date when the game was added -#: src/window.py:192 +#: src/window.py:194 msgid "Added: {}" msgstr "Добавлено: {}" -#: src/window.py:195 +#: src/window.py:197 msgid "Never" msgstr "Никогда" #. The variable is the date when the game was last played -#: src/window.py:199 +#: src/window.py:201 msgid "Last played: {}" -msgstr "Последняя игра: {}" +msgstr "Последний раз запускалась: {}" #: src/details_window.py:72 msgid "Apply" @@ -417,26 +426,26 @@ msgid "Confirm" msgstr "Подтвердить" #. Translate this string as you would translate "file" -#: src/details_window.py:91 +#: src/details_window.py:92 msgid "file.txt" msgstr "file.txt" #. As in software -#: src/details_window.py:93 +#: src/details_window.py:94 msgid "program" msgstr "программа" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:98 src/details_window.py:100 +#: src/details_window.py:99 src/details_window.py:101 msgid "C:\\path\\to\\{}" msgstr "C:\\путь\\к\\{}" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:104 src/details_window.py:106 +#: src/details_window.py:105 src/details_window.py:107 msgid "/path/to/{}" msgstr "/путь/к/{}" -#: src/details_window.py:111 +#: src/details_window.py:112 msgid "" "To launch the executable \"{}\", use the command:\n" "\n" @@ -458,15 +467,15 @@ msgstr "" "\n" "Если путь содержит пробелы, обязательно заключите его в двойные кавычки!" -#: src/details_window.py:146 src/details_window.py:152 +#: src/details_window.py:147 src/details_window.py:153 msgid "Couldn't Add Game" msgstr "Не удалось добавить игру" -#: src/details_window.py:146 src/details_window.py:181 +#: src/details_window.py:147 src/details_window.py:181 msgid "Game title cannot be empty." msgstr "Название игры не может быть пустым." -#: src/details_window.py:152 src/details_window.py:189 +#: src/details_window.py:153 src/details_window.py:189 msgid "Executable cannot be empty." msgstr "Исполняемый файл не может быть пустым." @@ -475,35 +484,66 @@ msgid "Couldn't Apply Preferences" msgstr "Не удалось применить параметры" #. The variable is the title of the game -#: src/game.py:141 +#: src/game.py:138 msgid "{} launched" msgstr "{} - запущена" #. The variable is the title of the game -#: src/game.py:154 +#: src/game.py:152 msgid "{} hidden" msgstr "{} - скрытая" -#: src/game.py:154 +#: src/game.py:152 msgid "{} unhidden" msgstr "{} - не скрыта" -#: src/game.py:171 +#: src/game.py:169 msgid "{} removed" msgstr "{} удалена" -#: src/preferences.py:102 +#: src/preferences.py:111 msgid "All games removed" msgstr "Все игры удалены" -#: src/preferences.py:149 +#: src/preferences.py:159 msgid "" "An API key is required to use SteamGridDB. You can generate one {}here{}." msgstr "" "Для использования SteamGridDB требуется ключ API. Вы можете сгенерировать " "его {}здесь{}." -#: src/preferences.py:289 +#: src/preferences.py:284 +msgid "Installation Not Found" +msgstr "Установка не найдена" + +#: src/preferences.py:286 +msgid "Select a valid directory." +msgstr "Выберите действующий каталог." + +#: src/preferences.py:348 +msgid "Invalid Directory" +msgstr "Неверный каталог" + +#. The variable is the name of the source +#: src/preferences.py:352 +msgid "Select the {} cache directory." +msgstr "Выберите каталог кэша {}." + +#. The variable is the name of the source +#: src/preferences.py:355 +#, fuzzy +#| msgid "Select the {} installation directory." +msgid "Select the {} configuration directory." +msgstr "Выберите каталог установки {}." + +#. The variable is the name of the source +#: src/preferences.py:358 +#, fuzzy +#| msgid "Select the {} cache directory." +msgid "Select the {} data directory." +msgstr "Выберите каталог кэша {}." + +#: src/preferences.py:364 msgid "Set Location" msgstr "Установить расположение" @@ -511,38 +551,30 @@ msgstr "Установить расположение" msgid "Dismiss" msgstr "Отклонить" -#: src/importer/sources/source.py:106 -msgid "Data" -msgstr "" - -#: src/importer/sources/source.py:107 -msgid "Cache" -msgstr "" - -#: src/importer/sources/source.py:108 -#, fuzzy -#| msgid "Confirm" -msgid "Configuration" -msgstr "Подтвердить" - -#. The variables are the type of location (eg. cache) and the source's name (eg. Steam) -#: src/importer/sources/source.py:119 -msgid "Invalid {} Location for {{}}" -msgstr "" - -#: src/importer/sources/source.py:120 -msgid "Pick a new one or disable the source in preferences" -msgstr "" - #: src/store/managers/sgdb_manager.py:47 -#, fuzzy -#| msgid "Couldn't Connect to SteamGridDB" msgid "Couldn't Authenticate SteamGridDB" -msgstr "Не удалось подключиться к SteamGridDB" +msgstr "Не удалось пройти аутентификацию SteamGridDB" #: src/store/managers/sgdb_manager.py:48 msgid "Verify your API key in preferences" -msgstr "" +msgstr "Проверьте ключ API-ключ в параметрах" + +#, fuzzy +#~| msgid "The Steam directory cannot be found." +#~ msgid "Directory not Valid" +#~ msgstr "Не удалось найти каталог Steam." + +#~ msgid "Cache" +#~ msgstr "Кэш" + +#~ msgid "Configuration" +#~ msgstr "Конфигурация" + +#~ msgid "Invalid {} Location for {{}}" +#~ msgstr "Неверное расположение {} для {{}}" + +#~ msgid "Pick a new one or disable the source in preferences" +#~ msgstr "Выберите новый или отключите имеющийся источник в параметрах" #~ msgid "Steam Install Location" #~ msgstr "Место установки Steam" @@ -568,15 +600,6 @@ msgstr "" #~ msgid "Select the Lutris cache directory." #~ msgstr "Выберите каталог кэша Lutris." -#~ msgid "Installation Not Found" -#~ msgstr "Установка не найдена" - -#~ msgid "Select the {} configuration directory." -#~ msgstr "Выберите каталог конфигурации {}." - -#~ msgid "Select the {} data directory." -#~ msgstr "Выберите каталог данных {}." - #~ msgid "Importing Games…" #~ msgstr "Импорт игр…" @@ -701,8 +724,5 @@ msgstr "" #~ msgid "No new games were found in the Steam library." #~ msgstr "В библиотеке Steam новых игр не найдено." -#~ msgid "The Steam directory cannot be found." -#~ msgstr "Не удалось найти каталог Steam." - #~ msgid "Talking to Steam" #~ msgstr "Общение со Steam" diff --git a/po/sv.po b/po/sv.po index 07f37af..3fb3b99 100644 --- a/po/sv.po +++ b/po/sv.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the Cartridges package. # micke , 2023. # micke , 2023. +# Luna Jernberg , 2023. msgid "" msgstr "" "Project-Id-Version: Cartridges\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-26 12:01+0200\n" -"PO-Revision-Date: 2023-06-02 15:40+0000\n" -"Last-Translator: micke \n" +"POT-Creation-Date: 2023-07-05 14:36+0200\n" +"PO-Revision-Date: 2023-07-01 22:51+0000\n" +"Last-Translator: Luna Jernberg \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -17,11 +18,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.18-dev\n" +"X-Generator: Weblate 5.0-dev\n" #: data/hu.kramo.Cartridges.desktop.in:3 #: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47 -#: src/main.py:146 +#: src/main.py:162 msgid "Cartridges" msgstr "Cartridges" @@ -111,7 +112,7 @@ msgstr "Mer info" msgid "Edit" msgstr "Redigera" -#: data/gtk/game.blp:107 src/window.py:169 +#: data/gtk/game.blp:107 src/window.py:171 msgid "Hide" msgstr "Dölj" @@ -120,7 +121,7 @@ msgstr "Dölj" msgid "Remove" msgstr "Ta bort" -#: data/gtk/game.blp:126 src/window.py:171 +#: data/gtk/game.blp:126 src/window.py:173 msgid "Unhide" msgstr "Visa" @@ -145,7 +146,7 @@ msgstr "Visa inställningar" msgid "Shortcuts" msgstr "Genvägar" -#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103 +#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112 msgid "Undo" msgstr "Ångra" @@ -173,7 +174,7 @@ msgstr "Visa dolda spel" msgid "Remove game" msgstr "Ta bort spel" -#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236 +#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268 msgid "Behavior" msgstr "Beteende" @@ -223,80 +224,89 @@ msgid "Steam" msgstr "Steam" #: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110 -#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183 -#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211 -#, fuzzy -#| msgid "itch Install Location" +#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192 +#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220 +#: data/gtk/preferences.blp:234 msgid "Install Location" -msgstr "itch-installationsplats" +msgstr "Plats för installation" #: data/gtk/preferences.blp:106 msgid "Lutris" msgstr "Lutris" #: data/gtk/preferences.blp:119 -#, fuzzy -#| msgid "Lutris Cache Location" msgid "Cache Location" -msgstr "Plats för Lutris cache" +msgstr "Plats för cacheminne" #: data/gtk/preferences.blp:128 msgid "Import Steam Games" msgstr "Importera Steam-spel" -#: data/gtk/preferences.blp:138 +#: data/gtk/preferences.blp:137 +msgid "Import Flatpak Games" +msgstr "Importera Flatpak-spel" + +#: data/gtk/preferences.blp:147 msgid "Heroic" msgstr "Heroic" -#: data/gtk/preferences.blp:151 +#: data/gtk/preferences.blp:160 msgid "Import Epic Games" msgstr "Importera Epic Games" -#: data/gtk/preferences.blp:160 +#: data/gtk/preferences.blp:169 msgid "Import GOG Games" msgstr "Importera GOG-spel" -#: data/gtk/preferences.blp:169 +#: data/gtk/preferences.blp:178 msgid "Import Sideloaded Games" msgstr "Importera sidoladdade spel" -#: data/gtk/preferences.blp:179 +#: data/gtk/preferences.blp:188 msgid "Bottles" msgstr "Bottles" -#: data/gtk/preferences.blp:193 +#: data/gtk/preferences.blp:202 msgid "itch" msgstr "itch" -#: data/gtk/preferences.blp:207 +#: data/gtk/preferences.blp:216 msgid "Legendary" -msgstr "" +msgstr "Legendary" -#: data/gtk/preferences.blp:224 +#: data/gtk/preferences.blp:230 +msgid "Flatpak" +msgstr "Flatpak" + +#: data/gtk/preferences.blp:243 +msgid "Import Game Launchers" +msgstr "Importera spelstartare" + +#: data/gtk/preferences.blp:256 msgid "SteamGridDB" msgstr "SteamGridDB" -#: data/gtk/preferences.blp:228 +#: data/gtk/preferences.blp:260 msgid "Authentication" msgstr "Autentisering" -#: data/gtk/preferences.blp:231 +#: data/gtk/preferences.blp:263 msgid "API Key" msgstr "API-nyckel" -#: data/gtk/preferences.blp:239 +#: data/gtk/preferences.blp:271 msgid "Use SteamGridDB" msgstr "Använd SteamGridDB" -#: data/gtk/preferences.blp:240 +#: data/gtk/preferences.blp:272 msgid "Download images when adding or importing games" msgstr "Ladda ner bilder när spel läggs till eller importeras" -#: data/gtk/preferences.blp:249 +#: data/gtk/preferences.blp:281 msgid "Prefer Over Official Images" msgstr "Föredra framför officiella bilder" -#: data/gtk/preferences.blp:258 +#: data/gtk/preferences.blp:290 msgid "Prefer Animated Images" msgstr "Föredra animerade bilder" @@ -385,21 +395,21 @@ msgid "About Cartridges" msgstr "Om Cartridges" #. Translators: Replace this with your name for it to show up in the about window -#: src/main.py:164 +#: src/main.py:180 msgid "translator_credits" msgstr "Micke" #. The variable is the date when the game was added -#: src/window.py:192 +#: src/window.py:194 msgid "Added: {}" msgstr "Tillagt: {}" -#: src/window.py:195 +#: src/window.py:197 msgid "Never" msgstr "Aldrig" #. The variable is the date when the game was last played -#: src/window.py:199 +#: src/window.py:201 msgid "Last played: {}" msgstr "Senast spelat: {}" @@ -416,26 +426,26 @@ msgid "Confirm" msgstr "Bekräfta" #. Translate this string as you would translate "file" -#: src/details_window.py:91 +#: src/details_window.py:92 msgid "file.txt" msgstr "fil.txt" #. As in software -#: src/details_window.py:93 +#: src/details_window.py:94 msgid "program" msgstr "program" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:98 src/details_window.py:100 +#: src/details_window.py:99 src/details_window.py:101 msgid "C:\\path\\to\\{}" msgstr "C:\\sökväg\\till\\{}" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:104 src/details_window.py:106 +#: src/details_window.py:105 src/details_window.py:107 msgid "/path/to/{}" msgstr "/sökväg/till/{}" -#: src/details_window.py:111 +#: src/details_window.py:112 msgid "" "To launch the executable \"{}\", use the command:\n" "\n" @@ -458,15 +468,15 @@ msgstr "" "Om sökvägen innehåller mellanslag, se till att den omsluts av dubbla " "citationstecken!" -#: src/details_window.py:146 src/details_window.py:152 +#: src/details_window.py:147 src/details_window.py:153 msgid "Couldn't Add Game" msgstr "Kunde inte lägga till spelet" -#: src/details_window.py:146 src/details_window.py:181 +#: src/details_window.py:147 src/details_window.py:181 msgid "Game title cannot be empty." msgstr "Spelets titel kan inte vara tom." -#: src/details_window.py:152 src/details_window.py:189 +#: src/details_window.py:153 src/details_window.py:189 msgid "Executable cannot be empty." msgstr "Den körbara filen kan inte vara tom." @@ -475,34 +485,65 @@ msgid "Couldn't Apply Preferences" msgstr "Kunde inte tillämpa inställningar" #. The variable is the title of the game -#: src/game.py:141 +#: src/game.py:138 msgid "{} launched" msgstr "{} startat" #. The variable is the title of the game -#: src/game.py:154 +#: src/game.py:152 msgid "{} hidden" msgstr "{} dolt" -#: src/game.py:154 +#: src/game.py:152 msgid "{} unhidden" msgstr "{} synlig" -#: src/game.py:171 +#: src/game.py:169 msgid "{} removed" msgstr "{} borttaget" -#: src/preferences.py:102 +#: src/preferences.py:111 msgid "All games removed" msgstr "Alla spel togs bort" -#: src/preferences.py:149 +#: src/preferences.py:159 msgid "" "An API key is required to use SteamGridDB. You can generate one {}here{}." msgstr "" "En API-nyckel krävs för att använda SteamGridDB. Du kan generera en {}här{}." -#: src/preferences.py:289 +#: src/preferences.py:284 +msgid "Installation Not Found" +msgstr "Installation hittades inte" + +#: src/preferences.py:286 +msgid "Select a valid directory." +msgstr "Välj en giltig katalog." + +#: src/preferences.py:348 +msgid "Invalid Directory" +msgstr "Ogiltig katalog" + +#. The variable is the name of the source +#: src/preferences.py:352 +msgid "Select the {} cache directory." +msgstr "Välj {} cachekatalog." + +#. The variable is the name of the source +#: src/preferences.py:355 +#, fuzzy +#| msgid "Select the {} installation directory." +msgid "Select the {} configuration directory." +msgstr "Välj {} installationskatalog." + +#. The variable is the name of the source +#: src/preferences.py:358 +#, fuzzy +#| msgid "Select the {} cache directory." +msgid "Select the {} data directory." +msgstr "Välj {} cachekatalog." + +#: src/preferences.py:364 msgid "Set Location" msgstr "Ange plats" @@ -510,38 +551,23 @@ msgstr "Ange plats" msgid "Dismiss" msgstr "Avvisa" -#: src/importer/sources/source.py:106 -msgid "Data" -msgstr "" - -#: src/importer/sources/source.py:107 -msgid "Cache" -msgstr "" - -#: src/importer/sources/source.py:108 -#, fuzzy -#| msgid "Confirm" -msgid "Configuration" -msgstr "Bekräfta" - -#. The variables are the type of location (eg. cache) and the source's name (eg. Steam) -#: src/importer/sources/source.py:119 -msgid "Invalid {} Location for {{}}" -msgstr "" - -#: src/importer/sources/source.py:120 -msgid "Pick a new one or disable the source in preferences" -msgstr "" - #: src/store/managers/sgdb_manager.py:47 -#, fuzzy -#| msgid "Couldn't Connect to SteamGridDB" msgid "Couldn't Authenticate SteamGridDB" -msgstr "Kunde inte ansluta till SteamGridDB" +msgstr "Kunde inte autentisera SteamGridDB" #: src/store/managers/sgdb_manager.py:48 msgid "Verify your API key in preferences" -msgstr "" +msgstr "Verifiera din API-nyckel i inställningar" + +#, fuzzy +#~| msgid "Cache Not Found" +#~ msgid "Directory not Valid" +#~ msgstr "Cache inte hittad" + +#, fuzzy +#~| msgid "Confirm" +#~ msgid "Configuration" +#~ msgstr "Bekräfta" #~ msgid "Steam Install Location" #~ msgstr "Steam-installationsplats" @@ -561,21 +587,9 @@ msgstr "" #~ msgid "Yesterday" #~ msgstr "Igår" -#~ msgid "Cache Not Found" -#~ msgstr "Cache inte hittad" - #~ msgid "Select the Lutris cache directory." #~ msgstr "Välj Lutris cache-mapp." -#~ msgid "Installation Not Found" -#~ msgstr "Installationen hittades inte" - -#~ msgid "Select the {} configuration directory." -#~ msgstr "Välj konfigurationsmappen {}." - -#~ msgid "Select the {} data directory." -#~ msgstr "Välj datamappen {}." - #~ msgid "Importing Games…" #~ msgstr "Importerar spel…" diff --git a/po/ta.po b/po/ta.po index 5b9e591..d062757 100644 --- a/po/ta.po +++ b/po/ta.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Cartridges\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-26 12:01+0200\n" -"PO-Revision-Date: 2023-05-29 18:48+0000\n" +"POT-Creation-Date: 2023-07-05 14:36+0200\n" +"PO-Revision-Date: 2023-06-28 20:19+0000\n" "Last-Translator: \"K.B.Dharun Krishna\" \n" "Language-Team: Tamil \n" @@ -18,11 +18,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.18-dev\n" +"X-Generator: Weblate 4.18.1\n" #: data/hu.kramo.Cartridges.desktop.in:3 #: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47 -#: src/main.py:146 +#: src/main.py:162 msgid "Cartridges" msgstr "கார்ட்ரிட்ஜ்கள்" @@ -114,7 +114,7 @@ msgstr "மேலும் தகவல்" msgid "Edit" msgstr "தொகு" -#: data/gtk/game.blp:107 src/window.py:169 +#: data/gtk/game.blp:107 src/window.py:171 msgid "Hide" msgstr "மறை" @@ -123,7 +123,7 @@ msgstr "மறை" msgid "Remove" msgstr "அகற்று" -#: data/gtk/game.blp:126 src/window.py:171 +#: data/gtk/game.blp:126 src/window.py:173 msgid "Unhide" msgstr "மறை காட்டு" @@ -148,7 +148,7 @@ msgstr "விருப்பங்களைக் காட்டு" msgid "Shortcuts" msgstr "குறுக்குவழிகள்" -#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103 +#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112 msgid "Undo" msgstr "செயல்தவிர்" @@ -176,7 +176,7 @@ msgstr "மறைக்கப்பட்ட விளையாட்டுக msgid "Remove game" msgstr "விளையாட்டை அகற்று" -#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236 +#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268 msgid "Behavior" msgstr "நடத்தை" @@ -225,81 +225,94 @@ msgid "Steam" msgstr "Steam (ஸ்டீம்)" #: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110 -#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183 -#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211 -#, fuzzy -#| msgid "itch Install Location" +#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192 +#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220 +#: data/gtk/preferences.blp:234 msgid "Install Location" -msgstr "அரிப்பு (itch) நிறுவல் இடம்" +msgstr "நிறுவல் இடம்" #: data/gtk/preferences.blp:106 msgid "Lutris" msgstr "லூட்ரிஸ்" #: data/gtk/preferences.blp:119 -#, fuzzy -#| msgid "Lutris Cache Location" msgid "Cache Location" -msgstr "லுட்ரிஸ் தற்காலிக சேமிப்பு இடம்" +msgstr "தற்காலிக சேமிப்பு இடம்" #: data/gtk/preferences.blp:128 msgid "Import Steam Games" msgstr "ஸ்டீம் (Steam) விளையாட்டுகளை இறக்குமதி செய்யவும்" -#: data/gtk/preferences.blp:138 +#: data/gtk/preferences.blp:137 +#, fuzzy +#| msgid "Import Steam Games" +msgid "Import Flatpak Games" +msgstr "ஸ்டீம் (Steam) விளையாட்டுகளை இறக்குமதி செய்யவும்" + +#: data/gtk/preferences.blp:147 msgid "Heroic" msgstr "Heroic (ஹீரோயிக்)" -#: data/gtk/preferences.blp:151 +#: data/gtk/preferences.blp:160 msgid "Import Epic Games" msgstr "Epic விளையாட்டுகளை இறக்குமதி செய்" -#: data/gtk/preferences.blp:160 +#: data/gtk/preferences.blp:169 msgid "Import GOG Games" msgstr "GOG விளையாட்டுகளை இறக்குமதி செய்யவும்" -#: data/gtk/preferences.blp:169 +#: data/gtk/preferences.blp:178 msgid "Import Sideloaded Games" msgstr "பக்க ஏற்றப்பட்ட விளையாட்டுகளை இறக்குமதி செய்யவும்" -#: data/gtk/preferences.blp:179 +#: data/gtk/preferences.blp:188 msgid "Bottles" msgstr "Bottles (பாட்டில்கள்)" -#: data/gtk/preferences.blp:193 +#: data/gtk/preferences.blp:202 msgid "itch" msgstr "அரிப்பு (itch)" -#: data/gtk/preferences.blp:207 +#: data/gtk/preferences.blp:216 msgid "Legendary" +msgstr "பழம்பெரும்" + +#: data/gtk/preferences.blp:230 +msgid "Flatpak" msgstr "" -#: data/gtk/preferences.blp:224 +#: data/gtk/preferences.blp:243 +#, fuzzy +#| msgid "Game Launcher" +msgid "Import Game Launchers" +msgstr "விளையாட்டு துவக்கி" + +#: data/gtk/preferences.blp:256 msgid "SteamGridDB" msgstr "ஸ்டீம்கிரிட் டிபி (SteamGridDB)" -#: data/gtk/preferences.blp:228 +#: data/gtk/preferences.blp:260 msgid "Authentication" msgstr "அங்கீகாரம்" -#: data/gtk/preferences.blp:231 +#: data/gtk/preferences.blp:263 msgid "API Key" msgstr "API விசை" -#: data/gtk/preferences.blp:239 +#: data/gtk/preferences.blp:271 msgid "Use SteamGridDB" msgstr "ஸ்டீம்கிரிட் டிபி (SteamGridDB) ஐப் பயன்படுத்தவும்" -#: data/gtk/preferences.blp:240 +#: data/gtk/preferences.blp:272 msgid "Download images when adding or importing games" msgstr "" "விளையாட்டுகளைச் சேர்க்கும் போது அல்லது இறக்குமதி செய்யும் போது படங்களைப் பதிவிறக்கவும்" -#: data/gtk/preferences.blp:249 +#: data/gtk/preferences.blp:281 msgid "Prefer Over Official Images" msgstr "அதிகாரப்பூர்வ படங்களை விட முன்னுரிமை" -#: data/gtk/preferences.blp:258 +#: data/gtk/preferences.blp:290 msgid "Prefer Animated Images" msgstr "இயங்குபடம் செய்யப்பட்ட படங்களுக்கு முன்னுரிமை கொடுங்கள்" @@ -388,21 +401,21 @@ msgid "About Cartridges" msgstr "கார்ட்ரிட்ஜ்கள் பற்றி" #. Translators: Replace this with your name for it to show up in the about window -#: src/main.py:164 +#: src/main.py:180 msgid "translator_credits" msgstr "K.B.Dharun Krishna " #. The variable is the date when the game was added -#: src/window.py:192 +#: src/window.py:194 msgid "Added: {}" msgstr "சேர்க்கப்பட்டது: {}" -#: src/window.py:195 +#: src/window.py:197 msgid "Never" msgstr "ஒருபோதும் இல்லை" #. The variable is the date when the game was last played -#: src/window.py:199 +#: src/window.py:201 msgid "Last played: {}" msgstr "கடைசியாக விளையாடியது: {}" @@ -419,26 +432,26 @@ msgid "Confirm" msgstr "உறுதிப்படுத்தவும்" #. Translate this string as you would translate "file" -#: src/details_window.py:91 +#: src/details_window.py:92 msgid "file.txt" msgstr "கோப்பு.txt" #. As in software -#: src/details_window.py:93 +#: src/details_window.py:94 msgid "program" msgstr "பயன்பாடு" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:98 src/details_window.py:100 +#: src/details_window.py:99 src/details_window.py:101 msgid "C:\\path\\to\\{}" msgstr "C:\\பாதை\\டு \\{}" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:104 src/details_window.py:106 +#: src/details_window.py:105 src/details_window.py:107 msgid "/path/to/{}" msgstr "/பாதை/டு/ {}" -#: src/details_window.py:111 +#: src/details_window.py:112 msgid "" "To launch the executable \"{}\", use the command:\n" "\n" @@ -460,52 +473,89 @@ msgstr "" "\n" "பாதையில் இடைவெளிகள் இருந்தால், அதை இரட்டை மேற்கோள்களில் போர்த்துவதை உறுதிசெய்யவும்!" -#: src/details_window.py:146 src/details_window.py:152 +#: src/details_window.py:147 src/details_window.py:153 msgid "Couldn't Add Game" msgstr "விளையாட்டைச் சேர்க்க முடியவில்லை" -#: src/details_window.py:146 src/details_window.py:181 +#: src/details_window.py:147 src/details_window.py:181 msgid "Game title cannot be empty." msgstr "விளையாட்டு தலைப்பு காலியாக இருக்கக்கூடாது." -#: src/details_window.py:152 src/details_window.py:189 +#: src/details_window.py:153 src/details_window.py:189 msgid "Executable cannot be empty." msgstr "இயங்கக்கூடியது காலியாக இருக்க முடியாது." #: src/details_window.py:180 src/details_window.py:188 msgid "Couldn't Apply Preferences" -msgstr "விருப்பத்தேர்வுகளைப் பயன்படுத்த முடியவில்லை" +msgstr "விருப்பங்களைப் பயன்படுத்த முடியவில்லை" #. The variable is the title of the game -#: src/game.py:141 +#: src/game.py:138 msgid "{} launched" msgstr "{} தொடங்கப்பட்டது" #. The variable is the title of the game -#: src/game.py:154 +#: src/game.py:152 msgid "{} hidden" msgstr "{} மறைக்கப்பட்டுள்ளது" -#: src/game.py:154 +#: src/game.py:152 msgid "{} unhidden" msgstr "{} மறைக்கப்படாதது" -#: src/game.py:171 +#: src/game.py:169 msgid "{} removed" msgstr "{} அகற்றப்பட்டது" -#: src/preferences.py:102 +#: src/preferences.py:111 msgid "All games removed" msgstr "அனைத்து விளையாட்டுகளும் அகற்றப்பட்டன" -#: src/preferences.py:149 +#: src/preferences.py:159 msgid "" "An API key is required to use SteamGridDB. You can generate one {}here{}." msgstr "" "ஸ்டீம்கிரிட் டிபி (SteamGridDB) ஐப் பயன்படுத்த API விசை தேவை. நீங்கள் ஒன்றை {}இங்கே{} " "உருவாக்கலாம்." -#: src/preferences.py:289 +#: src/preferences.py:284 +#, fuzzy +#| msgid "Installation Not Found" +msgid "Installation Not Found" +msgstr "நிறுவல் கிடைக்கவில்லை" + +#: src/preferences.py:286 +#, fuzzy +#| msgid "Select the {} data directory." +msgid "Select a valid directory." +msgstr "{} தரவு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்." + +#: src/preferences.py:348 +msgid "Invalid Directory" +msgstr "" + +#. The variable is the name of the source +#: src/preferences.py:352 +#, fuzzy +#| msgid "Select the {} data directory." +msgid "Select the {} cache directory." +msgstr "{} தரவு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்." + +#. The variable is the name of the source +#: src/preferences.py:355 +#, fuzzy +#| msgid "Select the {} configuration directory." +msgid "Select the {} configuration directory." +msgstr "{} உள்ளமைவு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்." + +#. The variable is the name of the source +#: src/preferences.py:358 +#, fuzzy +#| msgid "Select the {} data directory." +msgid "Select the {} data directory." +msgstr "{} தரவு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்." + +#: src/preferences.py:364 msgid "Set Location" msgstr "இருப்பிடத்தை அமைக்கவும்" @@ -513,38 +563,23 @@ msgstr "இருப்பிடத்தை அமைக்கவும்" msgid "Dismiss" msgstr "நிராகரி" -#: src/importer/sources/source.py:106 -msgid "Data" -msgstr "" - -#: src/importer/sources/source.py:107 -msgid "Cache" -msgstr "" - -#: src/importer/sources/source.py:108 -#, fuzzy -#| msgid "Confirm" -msgid "Configuration" -msgstr "உறுதிப்படுத்தவும்" - -#. The variables are the type of location (eg. cache) and the source's name (eg. Steam) -#: src/importer/sources/source.py:119 -msgid "Invalid {} Location for {{}}" -msgstr "" - -#: src/importer/sources/source.py:120 -msgid "Pick a new one or disable the source in preferences" -msgstr "" - #: src/store/managers/sgdb_manager.py:47 -#, fuzzy -#| msgid "Couldn't Connect to SteamGridDB" msgid "Couldn't Authenticate SteamGridDB" -msgstr "ஸ்டீம்கிரிட் டிபி (SteamGridDB) உடன் இணைக்க முடியவில்லை" +msgstr "ஸ்டீம்கிரிட் டிபி (SteamGridDB) ஐ அங்கீகரிக்க முடியவில்லை" #: src/store/managers/sgdb_manager.py:48 msgid "Verify your API key in preferences" -msgstr "" +msgstr "உங்கள் API விசையை விருப்பங்களில் சரிபார்க்கவும்" + +#, fuzzy +#~| msgid "The Steam directory cannot be found." +#~ msgid "Directory not Valid" +#~ msgstr "Steam (ஸ்டீம்) கோப்பகத்தைக் கண்டறிய முடியவில்லை." + +#, fuzzy +#~| msgid "Confirm" +#~ msgid "Configuration" +#~ msgstr "உறுதிப்படுத்தவும்" #~ msgid "Steam Install Location" #~ msgstr "Steam (ஸ்டீம்) நிறுவல் இடம்" @@ -570,15 +605,6 @@ msgstr "" #~ msgid "Select the Lutris cache directory." #~ msgstr "லூட்ரிஸ் தற்காலிக சேமிப்பு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்." -#~ msgid "Installation Not Found" -#~ msgstr "நிறுவல் கிடைக்கவில்லை" - -#~ msgid "Select the {} configuration directory." -#~ msgstr "{} உள்ளமைவு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்." - -#~ msgid "Select the {} data directory." -#~ msgstr "{} தரவு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்." - #~ msgid "Importing Games…" #~ msgstr "விளையாட்டுகளை இறக்குமதி செய்கிறது…" @@ -704,9 +730,6 @@ msgstr "" #~ msgid "No new games were found in the Steam library." #~ msgstr "Steam (ஸ்டீம்) நூலகத்தில் புதிய விளையாட்டுகள் எதுவும் இல்லை." -#~ msgid "The Steam directory cannot be found." -#~ msgstr "Steam (ஸ்டீம்) கோப்பகத்தைக் கண்டறிய முடியவில்லை." - #~ msgid "Talking to Steam" #~ msgstr "ஸ்டிமுடன் (Steam) பேசுகிறேன்" diff --git a/po/tr.po b/po/tr.po index 0e0a9cd..be3970c 100644 --- a/po/tr.po +++ b/po/tr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Cartridges\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-26 12:01+0200\n" +"POT-Creation-Date: 2023-07-05 14:36+0200\n" "PO-Revision-Date: 2023-05-26 18:10+0000\n" "Last-Translator: Sabri Ünal \n" "Language-Team: Turkish " #. The variable is the date when the game was added -#: src/window.py:192 +#: src/window.py:194 msgid "Added: {}" msgstr "Eklendi: {}" -#: src/window.py:195 +#: src/window.py:197 msgid "Never" msgstr "Asla" #. The variable is the date when the game was last played -#: src/window.py:199 +#: src/window.py:201 msgid "Last played: {}" msgstr "Son oynanma: {}" @@ -417,26 +434,26 @@ msgid "Confirm" msgstr "Doğrula" #. Translate this string as you would translate "file" -#: src/details_window.py:91 +#: src/details_window.py:92 msgid "file.txt" msgstr "dosya.txt" #. As in software -#: src/details_window.py:93 +#: src/details_window.py:94 msgid "program" msgstr "program" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:98 src/details_window.py:100 +#: src/details_window.py:99 src/details_window.py:101 msgid "C:\\path\\to\\{}" msgstr "C:\\yol\\klasör\\{}" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:104 src/details_window.py:106 +#: src/details_window.py:105 src/details_window.py:107 msgid "/path/to/{}" msgstr "/yol/klasör/{}" -#: src/details_window.py:111 +#: src/details_window.py:112 msgid "" "To launch the executable \"{}\", use the command:\n" "\n" @@ -458,15 +475,15 @@ msgstr "" "\n" "Yol boşluk içeriyorsa, çift tırnak içine aldığınızdan emin olun!" -#: src/details_window.py:146 src/details_window.py:152 +#: src/details_window.py:147 src/details_window.py:153 msgid "Couldn't Add Game" msgstr "Oyun Eklenemedi" -#: src/details_window.py:146 src/details_window.py:181 +#: src/details_window.py:147 src/details_window.py:181 msgid "Game title cannot be empty." msgstr "Oyun başlığı boş olamaz." -#: src/details_window.py:152 src/details_window.py:189 +#: src/details_window.py:153 src/details_window.py:189 msgid "Executable cannot be empty." msgstr "Çalıştırılabilir boş olamaz." @@ -475,35 +492,72 @@ msgid "Couldn't Apply Preferences" msgstr "Tercihler Uygulanamadı" #. The variable is the title of the game -#: src/game.py:141 +#: src/game.py:138 msgid "{} launched" msgstr "{} başlatıldı" #. The variable is the title of the game -#: src/game.py:154 +#: src/game.py:152 msgid "{} hidden" msgstr "{} gizli" -#: src/game.py:154 +#: src/game.py:152 msgid "{} unhidden" msgstr "{} görünür" -#: src/game.py:171 +#: src/game.py:169 msgid "{} removed" msgstr "{} kaldırıldı" -#: src/preferences.py:102 +#: src/preferences.py:111 msgid "All games removed" msgstr "Tüm oyunlar kaldırıldı" -#: src/preferences.py:149 +#: src/preferences.py:159 msgid "" "An API key is required to use SteamGridDB. You can generate one {}here{}." msgstr "" "SteamGridDBʼyi kullanmak için API anahtarı gereklidir. {}Buradan{} bir tane " "oluşturabilirsiniz." -#: src/preferences.py:289 +#: src/preferences.py:284 +#, fuzzy +#| msgid "Installation Not Found" +msgid "Installation Not Found" +msgstr "Kurulum Bulunamadı" + +#: src/preferences.py:286 +#, fuzzy +#| msgid "Select the {} data directory." +msgid "Select a valid directory." +msgstr "{} veri dizinini seç." + +#: src/preferences.py:348 +msgid "Invalid Directory" +msgstr "" + +#. The variable is the name of the source +#: src/preferences.py:352 +#, fuzzy +#| msgid "Select the {} data directory." +msgid "Select the {} cache directory." +msgstr "{} veri dizinini seç." + +#. The variable is the name of the source +#: src/preferences.py:355 +#, fuzzy +#| msgid "Select the {} configuration directory." +msgid "Select the {} configuration directory." +msgstr "{} yapılandırma dizinini seç." + +#. The variable is the name of the source +#: src/preferences.py:358 +#, fuzzy +#| msgid "Select the {} data directory." +msgid "Select the {} data directory." +msgstr "{} veri dizinini seç." + +#: src/preferences.py:364 msgid "Set Location" msgstr "Konum Ayarla" @@ -511,29 +565,6 @@ msgstr "Konum Ayarla" msgid "Dismiss" msgstr "Vazgeç" -#: src/importer/sources/source.py:106 -msgid "Data" -msgstr "" - -#: src/importer/sources/source.py:107 -msgid "Cache" -msgstr "" - -#: src/importer/sources/source.py:108 -#, fuzzy -#| msgid "Confirm" -msgid "Configuration" -msgstr "Doğrula" - -#. The variables are the type of location (eg. cache) and the source's name (eg. Steam) -#: src/importer/sources/source.py:119 -msgid "Invalid {} Location for {{}}" -msgstr "" - -#: src/importer/sources/source.py:120 -msgid "Pick a new one or disable the source in preferences" -msgstr "" - #: src/store/managers/sgdb_manager.py:47 #, fuzzy #| msgid "Couldn't Connect to SteamGridDB" @@ -544,6 +575,16 @@ msgstr "SteamGridDBʼye bağlanılamadı" msgid "Verify your API key in preferences" msgstr "" +#, fuzzy +#~| msgid "Cache Not Found" +#~ msgid "Directory not Valid" +#~ msgstr "Önbellek Bulunamadı" + +#, fuzzy +#~| msgid "Confirm" +#~ msgid "Configuration" +#~ msgstr "Doğrula" + #~ msgid "Steam Install Location" #~ msgstr "Steam Kurulu Konumu" @@ -562,21 +603,9 @@ msgstr "" #~ msgid "Yesterday" #~ msgstr "Dün" -#~ msgid "Cache Not Found" -#~ msgstr "Önbellek Bulunamadı" - #~ msgid "Select the Lutris cache directory." #~ msgstr "Lutris önbellek dizinini seç." -#~ msgid "Installation Not Found" -#~ msgstr "Kurulum Bulunamadı" - -#~ msgid "Select the {} configuration directory." -#~ msgstr "{} yapılandırma dizinini seç." - -#~ msgid "Select the {} data directory." -#~ msgstr "{} veri dizinini seç." - #~ msgid "Importing Games…" #~ msgstr "Oyunlar İçe Aktarılıyor…" diff --git a/po/uk.po b/po/uk.po index 2a7e5fe..87d8aa5 100644 --- a/po/uk.po +++ b/po/uk.po @@ -4,13 +4,14 @@ # kramo , 2023. # Dan , 2023. # Вова Смірнов , 2023. +# Dan , 2023. msgid "" msgstr "" "Project-Id-Version: cartridges\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-26 12:01+0200\n" -"PO-Revision-Date: 2023-06-03 18:51+0000\n" -"Last-Translator: Вова Смірнов \n" +"POT-Creation-Date: 2023-07-05 14:36+0200\n" +"PO-Revision-Date: 2023-07-01 22:51+0000\n" +"Last-Translator: Dan \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -19,11 +20,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.18-dev\n" +"X-Generator: Weblate 5.0-dev\n" #: data/hu.kramo.Cartridges.desktop.in:3 #: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47 -#: src/main.py:146 +#: src/main.py:162 msgid "Cartridges" msgstr "Картриджі" @@ -114,7 +115,7 @@ msgstr "Більше інформації" msgid "Edit" msgstr "Редагувати" -#: data/gtk/game.blp:107 src/window.py:169 +#: data/gtk/game.blp:107 src/window.py:171 msgid "Hide" msgstr "Приховати" @@ -123,7 +124,7 @@ msgstr "Приховати" msgid "Remove" msgstr "Видалити" -#: data/gtk/game.blp:126 src/window.py:171 +#: data/gtk/game.blp:126 src/window.py:173 msgid "Unhide" msgstr "Показати" @@ -148,7 +149,7 @@ msgstr "Показати параметри" msgid "Shortcuts" msgstr "Ярлики" -#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103 +#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112 msgid "Undo" msgstr "Відмінити" @@ -176,7 +177,7 @@ msgstr "Показати приховані ігри" msgid "Remove game" msgstr "Видалити гру" -#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236 +#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268 msgid "Behavior" msgstr "Поведінка" @@ -225,80 +226,89 @@ msgid "Steam" msgstr "Steam" #: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110 -#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183 -#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211 -#, fuzzy -#| msgid "itch Install Location" +#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192 +#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220 +#: data/gtk/preferences.blp:234 msgid "Install Location" -msgstr "Місце встановлення itch" +msgstr "Місце встановлення" #: data/gtk/preferences.blp:106 msgid "Lutris" msgstr "Lutris" #: data/gtk/preferences.blp:119 -#, fuzzy -#| msgid "Lutris Cache Location" msgid "Cache Location" -msgstr "Розташування сховища Lutris" +msgstr "Розташування кешу" #: data/gtk/preferences.blp:128 msgid "Import Steam Games" msgstr "Імпорт ігор Steam" -#: data/gtk/preferences.blp:138 +#: data/gtk/preferences.blp:137 +msgid "Import Flatpak Games" +msgstr "Імпортувати ігри Flatpak" + +#: data/gtk/preferences.blp:147 msgid "Heroic" msgstr "Heroic" -#: data/gtk/preferences.blp:151 +#: data/gtk/preferences.blp:160 msgid "Import Epic Games" msgstr "Імпорт Epic Games" -#: data/gtk/preferences.blp:160 +#: data/gtk/preferences.blp:169 msgid "Import GOG Games" msgstr "Імпорт ігор GOG" -#: data/gtk/preferences.blp:169 +#: data/gtk/preferences.blp:178 msgid "Import Sideloaded Games" msgstr "Імпорт сторонніх ігор" -#: data/gtk/preferences.blp:179 +#: data/gtk/preferences.blp:188 msgid "Bottles" msgstr "Bottles" -#: data/gtk/preferences.blp:193 +#: data/gtk/preferences.blp:202 msgid "itch" msgstr "itch" -#: data/gtk/preferences.blp:207 +#: data/gtk/preferences.blp:216 msgid "Legendary" -msgstr "" +msgstr "Легендарний" -#: data/gtk/preferences.blp:224 +#: data/gtk/preferences.blp:230 +msgid "Flatpak" +msgstr "Flatpak" + +#: data/gtk/preferences.blp:243 +msgid "Import Game Launchers" +msgstr "Імпортувати ігрові лаунчери" + +#: data/gtk/preferences.blp:256 msgid "SteamGridDB" msgstr "SteamGridDB" -#: data/gtk/preferences.blp:228 +#: data/gtk/preferences.blp:260 msgid "Authentication" msgstr "Аутентифікація" -#: data/gtk/preferences.blp:231 +#: data/gtk/preferences.blp:263 msgid "API Key" msgstr "Ключ API" -#: data/gtk/preferences.blp:239 +#: data/gtk/preferences.blp:271 msgid "Use SteamGridDB" msgstr "Використовувати SteamGridDB" -#: data/gtk/preferences.blp:240 +#: data/gtk/preferences.blp:272 msgid "Download images when adding or importing games" msgstr "Завантаження зображень під час додавання або імпорту ігор" -#: data/gtk/preferences.blp:249 +#: data/gtk/preferences.blp:281 msgid "Prefer Over Official Images" msgstr "Надавати перевагу офіційним зображенням" -#: data/gtk/preferences.blp:258 +#: data/gtk/preferences.blp:290 msgid "Prefer Animated Images" msgstr "Надавати перевагу анімованим зображенням" @@ -387,21 +397,21 @@ msgid "About Cartridges" msgstr "Про Картриджі" #. Translators: Replace this with your name for it to show up in the about window -#: src/main.py:164 +#: src/main.py:180 msgid "translator_credits" msgstr "kefir2105" #. The variable is the date when the game was added -#: src/window.py:192 +#: src/window.py:194 msgid "Added: {}" msgstr "Додано: {}" -#: src/window.py:195 +#: src/window.py:197 msgid "Never" msgstr "Ніколи" #. The variable is the date when the game was last played -#: src/window.py:199 +#: src/window.py:201 msgid "Last played: {}" msgstr "Востаннє грали: {}" @@ -418,26 +428,26 @@ msgid "Confirm" msgstr "Підтвердити" #. Translate this string as you would translate "file" -#: src/details_window.py:91 +#: src/details_window.py:92 msgid "file.txt" msgstr "file.txt" #. As in software -#: src/details_window.py:93 +#: src/details_window.py:94 msgid "program" msgstr "програма" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:98 src/details_window.py:100 +#: src/details_window.py:99 src/details_window.py:101 msgid "C:\\path\\to\\{}" msgstr "C:\\шлях\\до\\{}" #. Translate this string as you would translate "path to {}" -#: src/details_window.py:104 src/details_window.py:106 +#: src/details_window.py:105 src/details_window.py:107 msgid "/path/to/{}" msgstr "/path/to/{}" -#: src/details_window.py:111 +#: src/details_window.py:112 msgid "" "To launch the executable \"{}\", use the command:\n" "\n" @@ -460,15 +470,15 @@ msgstr "" "\n" "Якщо шлях містить пробіли, обов'язково візьміть його в подвійні лапки!" -#: src/details_window.py:146 src/details_window.py:152 +#: src/details_window.py:147 src/details_window.py:153 msgid "Couldn't Add Game" msgstr "Не вдалося додати гру" -#: src/details_window.py:146 src/details_window.py:181 +#: src/details_window.py:147 src/details_window.py:181 msgid "Game title cannot be empty." msgstr "Назва гри не може бути порожньою." -#: src/details_window.py:152 src/details_window.py:189 +#: src/details_window.py:153 src/details_window.py:189 msgid "Executable cannot be empty." msgstr "Виконуваний файл не може бути порожнім." @@ -477,35 +487,66 @@ msgid "Couldn't Apply Preferences" msgstr "Не вдалося застосувати параметри" #. The variable is the title of the game -#: src/game.py:141 +#: src/game.py:138 msgid "{} launched" msgstr "{} запущено" #. The variable is the title of the game -#: src/game.py:154 +#: src/game.py:152 msgid "{} hidden" msgstr "{} приховано" -#: src/game.py:154 +#: src/game.py:152 msgid "{} unhidden" msgstr "{} показано" -#: src/game.py:171 +#: src/game.py:169 msgid "{} removed" msgstr "{} видалено" -#: src/preferences.py:102 +#: src/preferences.py:111 msgid "All games removed" msgstr "Всі ігри видалено" -#: src/preferences.py:149 +#: src/preferences.py:159 msgid "" "An API key is required to use SteamGridDB. You can generate one {}here{}." msgstr "" "Для використання SteamGridDB потрібен ключ API. Ви можете згенерувати його {}" "тут{}." -#: src/preferences.py:289 +#: src/preferences.py:284 +msgid "Installation Not Found" +msgstr "Встановлення не знайдено" + +#: src/preferences.py:286 +msgid "Select a valid directory." +msgstr "Виберіть правильний каталог." + +#: src/preferences.py:348 +msgid "Invalid Directory" +msgstr "Неправильний каталог" + +#. The variable is the name of the source +#: src/preferences.py:352 +msgid "Select the {} cache directory." +msgstr "Виберіть каталог кешу {}." + +#. The variable is the name of the source +#: src/preferences.py:355 +#, fuzzy +#| msgid "Select the {} installation directory." +msgid "Select the {} configuration directory." +msgstr "Виберіть каталог встановлення {}." + +#. The variable is the name of the source +#: src/preferences.py:358 +#, fuzzy +#| msgid "Select the {} cache directory." +msgid "Select the {} data directory." +msgstr "Виберіть каталог кешу {}." + +#: src/preferences.py:364 msgid "Set Location" msgstr "Встановити місцезнаходження" @@ -513,38 +554,33 @@ msgstr "Встановити місцезнаходження" msgid "Dismiss" msgstr "Відхилити" -#: src/importer/sources/source.py:106 -msgid "Data" -msgstr "" - -#: src/importer/sources/source.py:107 -msgid "Cache" -msgstr "" - -#: src/importer/sources/source.py:108 -#, fuzzy -#| msgid "Confirm" -msgid "Configuration" -msgstr "Підтвердити" - -#. The variables are the type of location (eg. cache) and the source's name (eg. Steam) -#: src/importer/sources/source.py:119 -msgid "Invalid {} Location for {{}}" -msgstr "" - -#: src/importer/sources/source.py:120 -msgid "Pick a new one or disable the source in preferences" -msgstr "" - #: src/store/managers/sgdb_manager.py:47 -#, fuzzy -#| msgid "Couldn't Connect to SteamGridDB" msgid "Couldn't Authenticate SteamGridDB" -msgstr "Не вдалося підключитися до SteamGridDB" +msgstr "Не вдалося автентифікувати SteamGridDB" #: src/store/managers/sgdb_manager.py:48 msgid "Verify your API key in preferences" -msgstr "" +msgstr "Перевірте свій API-ключ у параметрах" + +#, fuzzy +#~| msgid "The Steam directory cannot be found." +#~ msgid "Directory not Valid" +#~ msgstr "Каталог Steam знайти неможливо." + +#~ msgid "Data" +#~ msgstr "Дані" + +#~ msgid "Cache" +#~ msgstr "Кеш" + +#~ msgid "Configuration" +#~ msgstr "Конфігурація" + +#~ msgid "Invalid {} Location for {{}}" +#~ msgstr "Недійсний {} Місце для {{}}" + +#~ msgid "Pick a new one or disable the source in preferences" +#~ msgstr "Виберіть новий або вимкніть джерело у параметрах" #~ msgid "Steam Install Location" #~ msgstr "Місце встановлення Steam" @@ -570,15 +606,6 @@ msgstr "" #~ msgid "Select the Lutris cache directory." #~ msgstr "Виберіть каталог кешу Lutris." -#~ msgid "Installation Not Found" -#~ msgstr "Встановлення не знайдено" - -#~ msgid "Select the {} configuration directory." -#~ msgstr "Виберіть каталог конфігурації {}." - -#~ msgid "Select the {} data directory." -#~ msgstr "Виберіть каталог даних {}." - #~ msgid "Importing Games…" #~ msgstr "Імпорт ігор…" @@ -703,9 +730,6 @@ msgstr "" #~ msgid "No new games were found in the Steam library." #~ msgstr "У бібліотеці Steam не знайдено жодної нової гри." -#~ msgid "The Steam directory cannot be found." -#~ msgstr "Каталог Steam знайти неможливо." - #~ msgid "Talking to Steam" #~ msgstr "Спілкування зі Steam" From 0100e7176cd33a7ffa81856361c24f98fff11c9a Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Wed, 5 Jul 2023 15:14:35 +0200 Subject: [PATCH 17/50] v2.0 --- .github/ISSUE_TEMPLATE/bug_report.md | 3 +++ cartridges.doap | 24 ++++++++++++++++++++++++ data/hu.kramo.Cartridges.metainfo.xml.in | 10 ++++++++-- meson.build | 2 +- 4 files changed, 36 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index a69d48d..363d9d2 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -23,6 +23,9 @@ A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. +**Logs** +If applicable, attatch your logs from `Main Menu > About Cartridges > Troubleshooting > Debugging Information` to the issue. + **System (please complete the following information):** - OS: [e.g. Fedora Linux] - Installation method [e.g. Flatpak] diff --git a/cartridges.doap b/cartridges.doap index db4c6da..6ccc9f0 100644 --- a/cartridges.doap +++ b/cartridges.doap @@ -29,6 +29,30 @@ Cartridges is a simple game launcher for all of your games. It has support for i kra-mo + + + + kramo + + + + + + + Geoffrey Coulaud + + + + + GeoffreyCoulaud + + + + + + GeoffreyCoulaud + + diff --git a/data/hu.kramo.Cartridges.metainfo.xml.in b/data/hu.kramo.Cartridges.metainfo.xml.in index c6b57d4..6073e11 100644 --- a/data/hu.kramo.Cartridges.metainfo.xml.in +++ b/data/hu.kramo.Cartridges.metainfo.xml.in @@ -44,12 +44,18 @@ - + +

After months of work, Cartridges 2.0 is here:

    -
  • Fixes an issue with importing Bottles games without covers
  • +
  • New import source: Legendary
  • +
  • New import source: Flatpak
  • +
  • Importing games should be much quicker
  • +
  • Error handling has been improved
  • +
  • Various UX improvements
  • Translations since 1.5
+

Thanks to the new import backend, adding new sources is much easier and a lot more are coming soon!

diff --git a/meson.build b/meson.build index 6899eb2..832c807 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('cartridges', - version: '1.5.6', + version: '2.0', meson_version: '>= 0.59.0', default_options: [ 'warning_level=2', 'werror=false', ], ) From dc0d7304f131d836ea46cbb9fca6d2aa942ed0ea Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Wed, 5 Jul 2023 15:54:12 +0200 Subject: [PATCH 18/50] Don't allow multiple imports at once --- src/importer/importer.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/importer/importer.py b/src/importer/importer.py index 86ead2e..8b30c6b 100644 --- a/src/importer/importer.py +++ b/src/importer/importer.py @@ -91,6 +91,8 @@ class Importer(ErrorProducer): def run(self): """Use several Gio.Task to import games from added sources""" + shared.win.get_application().lookup_action("import").set_enabled(False) + self.create_dialog() # Collect all errors and reset the cancellables for the managers @@ -221,6 +223,7 @@ class Importer(ErrorProducer): self.import_dialog.close() self.summary_toast = self.create_summary_toast() self.create_error_dialog() + shared.win.get_application().lookup_action("import").set_enabled(True) def create_error_dialog(self): """Dialog containing all errors raised by importers""" From 560d1cd273e0a158e9f32fe6d63c6ec4bcc607c2 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Wed, 5 Jul 2023 22:28:02 +0200 Subject: [PATCH 19/50] Properly configure Windows with meson --- .github/workflows/ci.yml | 2 +- flatpak/hu.kramo.Cartridges.Devel.json | 3 +-- meson.build | 9 ++------- windows/meson.build | 7 +++++++ 4 files changed, 11 insertions(+), 10 deletions(-) create mode 100644 windows/meson.build diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c7eca48..0fdbee7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,7 +51,7 @@ jobs: timeout 2 cartridges; [ "$?" -eq "124" ] - name: Inno Setup - run: iscc ".\_build\Cartridges.iss" + run: iscc ".\_build\windows\Cartridges.iss" - name: Upload Artifact uses: actions/upload-artifact@v3 diff --git a/flatpak/hu.kramo.Cartridges.Devel.json b/flatpak/hu.kramo.Cartridges.Devel.json index 1c984ab..1c2ecea 100644 --- a/flatpak/hu.kramo.Cartridges.Devel.json +++ b/flatpak/hu.kramo.Cartridges.Devel.json @@ -28,8 +28,7 @@ "/share/man", "/share/pkgconfig", "*.la", - "*.a", - "Cartridges.iss" + "*.a" ], "modules" : [ { diff --git a/meson.build b/meson.build index 832c807..437c77f 100644 --- a/meson.build +++ b/meson.build @@ -33,13 +33,8 @@ subdir('data') subdir('src') subdir('po') -configure_file( - input: './windows/Cartridges.iss.in', - output: 'Cartridges.iss', - configuration: conf, - install: true, - install_dir: '.' -) +if host_machine.system() == 'windows' + subdir('windows') gnome.post_install( glib_compile_schemas: true, diff --git a/windows/meson.build b/windows/meson.build new file mode 100644 index 0000000..959e7ff --- /dev/null +++ b/windows/meson.build @@ -0,0 +1,7 @@ +configure_file( + input: './Cartridges.iss.in', + output: 'Cartridges.iss', + configuration: conf, + install: true, + install_dir: '.' +) \ No newline at end of file From 1a238510005e1c7ac8268f19b1915101f4ca3c46 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Wed, 5 Jul 2023 22:35:43 +0200 Subject: [PATCH 20/50] Add endif to meson.build --- meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/meson.build b/meson.build index 437c77f..440c540 100644 --- a/meson.build +++ b/meson.build @@ -35,6 +35,7 @@ subdir('po') if host_machine.system() == 'windows' subdir('windows') +endif gnome.post_install( glib_compile_schemas: true, From 653bc8668cf1c472cb0dcec56e401e6e090f3f61 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Wed, 5 Jul 2023 22:53:08 +0200 Subject: [PATCH 21/50] Fix Inno Setup paths --- windows/Cartridges.iss.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/Cartridges.iss.in b/windows/Cartridges.iss.in index 8a74ba3..e3a98c6 100644 --- a/windows/Cartridges.iss.in +++ b/windows/Cartridges.iss.in @@ -15,10 +15,10 @@ AppSupportURL=https://github.com/kra-mo/cartridges/issues AppUpdatesURL={#MyAppURL} DefaultDirName={autopf64}\{#MyAppName} DisableProgramGroupPage=yes -LicenseFile=..\LICENSE +LicenseFile=..\..\LICENSE PrivilegesRequiredOverridesAllowed=dialog OutputBaseFilename=Cartridges Setup -SetupIconFile=..\windows\icon.ico +SetupIconFile=..\..\windows\icon.ico Compression=lzma SolidCompression=yes WizardStyle=modern @@ -50,7 +50,7 @@ Source: "D:\a\_temp\msys64\ucrt64\share\glib-2.0\*"; DestDir: "{app}\share\glib- Source: "D:\a\_temp\msys64\ucrt64\share\gtk-4.0\*"; DestDir: "{app}\share\gtk-4.0"; Flags: recursesubdirs ignoreversion Source: "D:\a\_temp\msys64\ucrt64\share\locale\*"; DestDir: "{app}\share\locale"; Flags: recursesubdirs ignoreversion -Source: "..\windows\icon.ico"; DestDir: "{app}"; Flags: recursesubdirs ignoreversion +Source: "..\..\windows\icon.ico"; DestDir: "{app}"; Flags: recursesubdirs ignoreversion [Icons] Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\bin\{#MyAppExeName}"; Parameters: """{app}\bin\cartridges"""; IconFilename: "{app}\icon.ico" From 2952322759ccb352a5a1c86b11cd8d5d50298b95 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Wed, 5 Jul 2023 22:57:42 +0200 Subject: [PATCH 22/50] Fix Windows artifact path --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0fdbee7..1234dd1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,4 +57,4 @@ jobs: uses: actions/upload-artifact@v3 with: name: Windows Installer - path: _build/Output/Cartridges Setup.exe \ No newline at end of file + path: _build/windows/Output/Cartridges Setup.exe \ No newline at end of file From c3cad7c793f1bb0489e281edb195740a72a697d8 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Thu, 6 Jul 2023 10:02:11 +0200 Subject: [PATCH 23/50] Fix default Steam path because fuck me --- data/hu.kramo.Cartridges.gschema.xml.in | 2 +- src/importer/sources/steam_source.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/hu.kramo.Cartridges.gschema.xml.in b/data/hu.kramo.Cartridges.gschema.xml.in index 4fffaad..edd5aec 100644 --- a/data/hu.kramo.Cartridges.gschema.xml.in +++ b/data/hu.kramo.Cartridges.gschema.xml.in @@ -14,7 +14,7 @@ true - "~/.steam/" + "~/.steam/steam" true diff --git a/src/importer/sources/steam_source.py b/src/importer/sources/steam_source.py index ff60d86..9a45270 100644 --- a/src/importer/sources/steam_source.py +++ b/src/importer/sources/steam_source.py @@ -118,9 +118,9 @@ class SteamSource(URLExecutableSource): data_location = Location( schema_key="steam-location", candidates=( - shared.flatpak_dir / "com.valvesoftware.Steam" / "data" / "Steam", + shared.home / ".steam" / "steam", shared.data_dir / "Steam", - shared.home / ".steam", + shared.flatpak_dir / "com.valvesoftware.Steam" / "data" / "Steam", shared.programfiles32_dir / "Steam", ), paths={ From 39be89145263eb13942ec335f5f2532db9a96bea Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Thu, 6 Jul 2023 10:05:29 +0200 Subject: [PATCH 24/50] v2.0.1 --- data/hu.kramo.Cartridges.metainfo.xml.in | 8 ++++++++ meson.build | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/data/hu.kramo.Cartridges.metainfo.xml.in b/data/hu.kramo.Cartridges.metainfo.xml.in index 6073e11..9225a99 100644 --- a/data/hu.kramo.Cartridges.metainfo.xml.in +++ b/data/hu.kramo.Cartridges.metainfo.xml.in @@ -44,6 +44,14 @@ + + +
    +
  • Fixes the ability to import multiple times at once
  • +
  • Fixes an issue with non-Flatpak Steam on Linux
  • +
+
+

After months of work, Cartridges 2.0 is here:

diff --git a/meson.build b/meson.build index 440c540..7ff4c00 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('cartridges', - version: '2.0', + version: '2.0.1', meson_version: '>= 0.59.0', default_options: [ 'warning_level=2', 'werror=false', ], ) From dc232e1e4316ce3ffb34f8a0252f7d2f4e70adcb Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Thu, 6 Jul 2023 10:25:00 +0200 Subject: [PATCH 25/50] Fix cache dir, add debug_info_filename to about --- src/main.py | 1 + src/shared.py.in | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main.py b/src/main.py index d0afd3e..21fdfe0 100644 --- a/src/main.py +++ b/src/main.py @@ -179,6 +179,7 @@ class CartridgesApplication(Adw.Application): # Translators: Replace this with your name for it to show up in the about window translator_credits=_("translator_credits"), debug_info=debug_str, + debug_info_filename="cartridges.log", ) about.present() diff --git a/src/shared.py.in b/src/shared.py.in index bfa882c..92fc574 100644 --- a/src/shared.py.in +++ b/src/shared.py.in @@ -34,7 +34,7 @@ state_schema = Gio.Settings.new(APP_ID + ".State") home = Path.home() data_dir = Path(GLib.get_user_data_dir()) config_dir = Path(GLib.get_user_config_dir()) -cache_dir = Path(GLib.get_user_config_dir()) +cache_dir = Path(GLib.get_user_cache_dir()) flatpak_dir = home / ".var" / "app" games_dir = data_dir / "cartridges" / "games" From 87a43193602deb0f9b3e2286ca2e96d6ec442c70 Mon Sep 17 00:00:00 2001 From: GeoffreyCoulaud Date: Fri, 7 Jul 2023 18:06:07 +0200 Subject: [PATCH 26/50] Store improvements - Store games by source - Added convenience dunder methods (contains, iter, len, getitem) - Added store.get - Changed `enable_in_pipeline` for `toggle_in_pipeline` --- src/details_window.py | 5 ++-- src/main.py | 2 +- src/preferences.py | 3 +-- src/store/store.py | 58 ++++++++++++++++++++++++++++++++++++------- src/window.py | 2 +- 5 files changed, 55 insertions(+), 15 deletions(-) diff --git a/src/details_window.py b/src/details_window.py index 3b7ba4f..addebf3 100644 --- a/src/details_window.py +++ b/src/details_window.py @@ -155,9 +155,10 @@ class DetailsWindow(Adw.Window): return # Increment the number after the game id (eg. imported_1, imported_2) + source_id = "imported" numbers = [0] game_id: str - for game_id in shared.store.games: + for game_id in shared.source_games[source_id]: prefix = "imported_" if not game_id.startswith(prefix): continue @@ -168,7 +169,7 @@ class DetailsWindow(Adw.Window): { "game_id": f"imported_{game_number}", "hidden": False, - "source": "imported", + "source": source_id, "added": int(time()), } ) diff --git a/src/main.py b/src/main.py index 21fdfe0..e7c7553 100644 --- a/src/main.py +++ b/src/main.py @@ -93,7 +93,7 @@ class CartridgesApplication(Adw.Application): shared.store.add_manager(SteamAPIManager()) shared.store.add_manager(OnlineCoverManager()) shared.store.add_manager(SGDBManager()) - shared.store.enable_manager_in_pipelines(FileManager) + shared.store.toggle_manager_in_pipelines(FileManager, True) # Create actions self.create_actions( diff --git a/src/preferences.py b/src/preferences.py index 2feec84..9e9be4d 100644 --- a/src/preferences.py +++ b/src/preferences.py @@ -214,10 +214,9 @@ class PreferencesWindow(Adw.PreferencesWindow): self.toast.dismiss() def remove_all_games(self, *_args): - for game in shared.store.games.values(): + for game in shared.store: if not game.removed: self.removed_games.add(game) - game.removed = True game.save() game.update() diff --git a/src/store/store.py b/src/store/store.py index d56a746..9da9ef0 100644 --- a/src/store/store.py +++ b/src/store/store.py @@ -18,6 +18,7 @@ # SPDX-License-Identifier: GPL-3.0-or-later import logging +from typing import MutableMapping, Generator, Any from src import shared from src.game import Game @@ -31,24 +32,59 @@ class Store: managers: dict[type[Manager], Manager] pipeline_managers: set[Manager] pipelines: dict[str, Pipeline] - games: dict[str, Game] + source_games: MutableMapping[str, MutableMapping[str, Game]] def __init__(self) -> None: self.managers = {} self.pipeline_managers = set() self.pipelines = {} - self.games = {} + self.source_games = {} + + def __contains__(self, obj: object) -> bool: + """Check if the game is present in the store with the `in` keyword""" + if not isinstance(obj, Game): + return False + if not (source_mapping := self.source_games.get(obj.source)): + return False + return obj.game_id in source_mapping + + def __iter__(self) -> Generator[Game, None, None]: + """Iterate through the games in the store with `for ... in`""" + for _source_id, games_mapping in self.source_games.items(): + for _game_id, game in games_mapping.items(): + yield game + + def __len__(self) -> int: + """Get the number of games in the store with the `len` builtin""" + return sum(len(source_mapping) for source_mapping in self.source_games) + + def __getitem__(self, game_id: str) -> Game: + """Get a game by its id with `store["game_id_goes_here"]`""" + for game in iter(self): + if game.game_id == game_id: + return game + raise KeyError("Game not found in store") + + def get(self, game_id: str, default: Any = None) -> Game | Any: + """Get a game by its ID, with a fallback if not found""" + try: + game = self[game_id] + return game + except KeyError: + return default def add_manager(self, manager: Manager, in_pipeline=True): """Add a manager to the store""" manager_type = type(manager) self.managers[manager_type] = manager - if in_pipeline: - self.enable_manager_in_pipelines(manager_type) + self.toggle_manager_in_pipelines(manager_type, in_pipeline) - def enable_manager_in_pipelines(self, manager_type: type[Manager]): - """Make a manager run in new pipelines""" - self.pipeline_managers.add(self.managers[manager_type]) + def toggle_manager_in_pipelines(self, manager_type: type[Manager], enable: bool): + """Change if a manager should run in new pipelines""" + if enable: + self.pipeline_managers.add(self.managers[manager_type]) + else: + self.pipeline_managers.discard(self.managers[manager_type]) def cleanup_game(self, game: Game) -> None: """Remove a game's files""" @@ -74,7 +110,7 @@ class Store: return None # Handle game duplicates - stored_game = self.games.get(game.game_id) + stored_game = self.get(game.game_id) if not stored_game: # New game, do as normal logging.debug("New store game %s (%s)", game.name, game.game_id) @@ -96,11 +132,15 @@ class Store: for signal in manager.signals: game.connect(signal, manager.execute_resilient_manager_logic) + # Add the game to the store + if not game.source in self.source_games: + self.source_games[game.source] = {} + self.source_games[game.source][game.game_id] = game + # Run the pipeline for the game if not run_pipeline: return None pipeline = Pipeline(game, additional_data, self.pipeline_managers) - self.games[game.game_id] = game self.pipelines[game.game_id] = pipeline pipeline.advance() return pipeline diff --git a/src/window.py b/src/window.py index a3d1df4..16e3588 100644 --- a/src/window.py +++ b/src/window.py @@ -117,7 +117,7 @@ class CartridgesWindow(Adw.ApplicationWindow): def set_library_child(self): child, hidden_child = self.notice_empty, self.hidden_notice_empty - for game in shared.store.games.values(): + for game in shared.store: if game.removed or game.blacklisted: continue if game.hidden: From c6ef2ea0b49eca2a04c2019bca774033451bac07 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Sat, 8 Jul 2023 12:14:37 +0200 Subject: [PATCH 27/50] uuuuuuuuuuuuuughhhhhhhhhhhhhhhhhhhhhhh --- src/importer/sources/heroic_source.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/importer/sources/heroic_source.py b/src/importer/sources/heroic_source.py index aba4310..716c222 100644 --- a/src/importer/sources/heroic_source.py +++ b/src/importer/sources/heroic_source.py @@ -81,7 +81,7 @@ class HeroicSourceIterator(SourceIterator): runner = entry["runner"] service = self.sub_sources[runner]["service"] values = { - "source": self.source.id, + "source": f"{self.source.id}_{service}", "added": added_time, "name": entry["title"], "developer": entry.get("developer", None), @@ -159,4 +159,4 @@ class HeroicSource(URLExecutableSource): @property def game_id_format(self) -> str: """The string format used to construct game IDs""" - return self.name.lower() + "_{service}_{game_id}" + return self.id + "_{service}_{game_id}" From dad3dcafb7a9233c3abaec5809cef2a6236614fa Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Sat, 8 Jul 2023 12:18:01 +0200 Subject: [PATCH 28/50] v2.0.2 --- data/hu.kramo.Cartridges.metainfo.xml.in | 5 ++--- meson.build | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/data/hu.kramo.Cartridges.metainfo.xml.in b/data/hu.kramo.Cartridges.metainfo.xml.in index 9225a99..7b3c8bc 100644 --- a/data/hu.kramo.Cartridges.metainfo.xml.in +++ b/data/hu.kramo.Cartridges.metainfo.xml.in @@ -44,11 +44,10 @@ - +
    -
  • Fixes the ability to import multiple times at once
  • -
  • Fixes an issue with non-Flatpak Steam on Linux
  • +
  • Fixes an issue with internal data storage
diff --git a/meson.build b/meson.build index 7ff4c00..27bab23 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('cartridges', - version: '2.0.1', + version: '2.0.2', meson_version: '>= 0.59.0', default_options: [ 'warning_level=2', 'werror=false', ], ) From 1c8448c1e1c0347d70b2887bb65ffefe7a4e6515 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Sat, 8 Jul 2023 12:36:05 +0200 Subject: [PATCH 29/50] Update docs --- docs/game_id.json.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/game_id.json.md b/docs/game_id.json.md index c7e879b..a886bf0 100644 --- a/docs/game_id.json.md +++ b/docs/game_id.json.md @@ -49,9 +49,9 @@ Stored as a string. ### source -A unique ID for the source of the game in lowercase, without spaces. +A unique ID for the source of the game in lowercase, without spaces or underscores. -If a source provides multiple internal sources, these should be separately labeled, but share a common prefix. eg. `heoic_gog`, `heroic_epic`. +If a source provides multiple internal sources, these should be separately labeled, but share a common prefix. eg. `heoic_gog`, `heroic_epic`. This is the only place you should use an underscore. Stored as a string. From 3c019796c26876569b0de8ffd21828693c77cbc8 Mon Sep 17 00:00:00 2001 From: GeoffreyCoulaud Date: Sat, 8 Jul 2023 13:54:43 +0200 Subject: [PATCH 30/50] Initial code --- src/main.py | 2 + src/utils/migrate_files_v1_to_v2.py | 88 +++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 src/utils/migrate_files_v1_to_v2.py diff --git a/src/main.py b/src/main.py index e7c7553..bc8f0e6 100644 --- a/src/main.py +++ b/src/main.py @@ -49,6 +49,7 @@ from src.store.managers.online_cover_manager import OnlineCoverManager from src.store.managers.sgdb_manager import SGDBManager from src.store.managers.steam_api_manager import SteamAPIManager from src.store.store import Store +from src.utils.migrate_files_v1_to_v2 import migrate_files_v1_to_v2 from src.window import CartridgesWindow @@ -281,5 +282,6 @@ def main(_version): """App entry point""" setup_logging() log_system_info() + migrate_files_v1_to_v2() app = CartridgesApplication() return app.run(sys.argv) diff --git a/src/utils/migrate_files_v1_to_v2.py b/src/utils/migrate_files_v1_to_v2.py new file mode 100644 index 0000000..87c09a1 --- /dev/null +++ b/src/utils/migrate_files_v1_to_v2.py @@ -0,0 +1,88 @@ +# window.py +# +# Copyright 2023 Geoffrey Coulaud +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# SPDX-License-Identifier: GPL-3.0-or-later + +import logging +from pathlib import Path +from shutil import copyfile +import os + +from src import shared + + +def migrate_files_v1_to_v2(): + """ + Migrate user data from the v1.X locations to the latest location. + + Fix for commit 4a204442b5d8ba2e918f8c2605d72e483bf35efd + where the windows directories for data, config and cache changed. + """ + + old_data_dir: Path = ( + Path(os.getenv("XDG_DATA_HOME")) + if "XDG_DATA_HOME" in os.environ + else Path.home() / ".local" / "share" + ) + + # Skip if there is no old dir + # Skip if old == new + # Skip if already migrated + migrated_file = old_data_dir / ".migrated" + if ( + not old_data_dir.is_dir() + or str(old_data_dir) == str(shared.data_dir) + or migrated_file.is_file() + ): + return + + logging.info("Migrating data dir %s", str(old_data_dir)) + + # Migrate games if they don't exist in the current data dir. + # If a game is migrated, its covers should be too. + old_games_dir = old_data_dir / "games" + old_covers_dir = old_data_dir / "covers" + current_games_dir = shared.data_dir / "games" + current_covers_dir = shared.data_dir / "covers" + for game_file in old_games_dir.iterdir(): + # Ignore non game files + if not game_file.is_file() or game_file.suffix != ".json": + continue + + # Do nothing if already in games dir + destination_game_file = current_games_dir / game_file.name + if destination_game_file.exists(): + continue + + # Else, migrate the game + copyfile(game_file, destination_game_file) + logging.info("Copied %s -> %s", str(game_file), str(destination_game_file)) + + # Migrate covers + for suffix in (".tiff", ".gif"): + cover_file = old_covers_dir / game_file.with_suffix(suffix).name + if not cover_file.is_file(): + continue + destination_cover_file = current_covers_dir / cover_file.name + copyfile(cover_file, destination_cover_file) + logging.info( + "Copied %s -> %s", str(cover_file), str(destination_cover_file) + ) + + # Signal that this dir is migrated + migrated_file.touch() + logging.info("Migration done") From 867e4d3cce7182bb0b05a28c665ad13ca07e8c5a Mon Sep 17 00:00:00 2001 From: GeoffreyCoulaud Date: Sat, 8 Jul 2023 14:35:43 +0200 Subject: [PATCH 31/50] Fixes to initial code --- src/utils/migrate_files_v1_to_v2.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/utils/migrate_files_v1_to_v2.py b/src/utils/migrate_files_v1_to_v2.py index 87c09a1..bebb4a0 100644 --- a/src/utils/migrate_files_v1_to_v2.py +++ b/src/utils/migrate_files_v1_to_v2.py @@ -38,11 +38,12 @@ def migrate_files_v1_to_v2(): if "XDG_DATA_HOME" in os.environ else Path.home() / ".local" / "share" ) + old_cartridges_data_dir = old_data_dir / "cartridges" # Skip if there is no old dir - # Skip if old == new + # Skip if old == current # Skip if already migrated - migrated_file = old_data_dir / ".migrated" + migrated_file = old_cartridges_data_dir / ".migrated" if ( not old_data_dir.is_dir() or str(old_data_dir) == str(shared.data_dir) @@ -52,19 +53,21 @@ def migrate_files_v1_to_v2(): logging.info("Migrating data dir %s", str(old_data_dir)) + # Create the current data dir if needed + if not shared.data_dir.is_dir(): + shared.data_dir.mkdir(parents=True) + # Migrate games if they don't exist in the current data dir. # If a game is migrated, its covers should be too. - old_games_dir = old_data_dir / "games" - old_covers_dir = old_data_dir / "covers" - current_games_dir = shared.data_dir / "games" - current_covers_dir = shared.data_dir / "covers" + old_games_dir = old_cartridges_data_dir / "games" + old_covers_dir = old_cartridges_data_dir / "covers" for game_file in old_games_dir.iterdir(): # Ignore non game files if not game_file.is_file() or game_file.suffix != ".json": continue # Do nothing if already in games dir - destination_game_file = current_games_dir / game_file.name + destination_game_file = shared.games_dir / game_file.name if destination_game_file.exists(): continue @@ -77,7 +80,7 @@ def migrate_files_v1_to_v2(): cover_file = old_covers_dir / game_file.with_suffix(suffix).name if not cover_file.is_file(): continue - destination_cover_file = current_covers_dir / cover_file.name + destination_cover_file = shared.covers_dir / cover_file.name copyfile(cover_file, destination_cover_file) logging.info( "Copied %s -> %s", str(cover_file), str(destination_cover_file) From 618a98ee894fc7154d5038f555b0205be2a17d65 Mon Sep 17 00:00:00 2001 From: GeoffreyCoulaud Date: Sat, 8 Jul 2023 15:09:30 +0200 Subject: [PATCH 32/50] Handle manually added games separately --- src/utils/migrate_files_v1_to_v2.py | 53 +++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/src/utils/migrate_files_v1_to_v2.py b/src/utils/migrate_files_v1_to_v2.py index bebb4a0..9c5dbae 100644 --- a/src/utils/migrate_files_v1_to_v2.py +++ b/src/utils/migrate_files_v1_to_v2.py @@ -17,10 +17,11 @@ # # SPDX-License-Identifier: GPL-3.0-or-later +import json import logging +import os from pathlib import Path from shutil import copyfile -import os from src import shared @@ -57,27 +58,59 @@ def migrate_files_v1_to_v2(): if not shared.data_dir.is_dir(): shared.data_dir.mkdir(parents=True) - # Migrate games if they don't exist in the current data dir. - # If a game is migrated, its covers should be too. old_games_dir = old_cartridges_data_dir / "games" old_covers_dir = old_cartridges_data_dir / "covers" - for game_file in old_games_dir.iterdir(): - # Ignore non game files - if not game_file.is_file() or game_file.suffix != ".json": + + old_games = set(old_games_dir.glob("*.json")) + old_imported_games = set( + filter(lambda path: path.name.startswith("imported_"), old_games) + ) + old_other_games = old_games - old_imported_games + + # Discover current imported games + imported_game_number = 0 + imported_execs = set() + for game in shared.games_dir.glob("imported_*.json"): + try: + game_data = json.load(game.open("r")) + except (OSError, json.JSONDecodeError): + continue + number = int(game_data["game_id"].replace("imported_", "")) + imported_game_number = max(number, imported_game_number) + imported_execs.add(game_data["executable"]) + + # Migrate imported game files + for game in old_imported_games: + try: + game_data = json.load(game.open("r")) + except (OSError, json.JSONDecodeError): continue + # Don't migrate if there's a game with the same exec + if game_data["executable"] in imported_execs: + continue + + # Migrate with updated index + imported_game_number += 1 + game_id = f"imported_{imported_game_number}" + game_data["game_id"] = game_id + destination_game_file = shared.games_dir / f"{game_id}.json" + json.dump(game_data, destination_game_file.open("w")) + + # Migrate all other games + for game in old_other_games: # Do nothing if already in games dir - destination_game_file = shared.games_dir / game_file.name + destination_game_file = shared.games_dir / game.name if destination_game_file.exists(): continue # Else, migrate the game - copyfile(game_file, destination_game_file) - logging.info("Copied %s -> %s", str(game_file), str(destination_game_file)) + copyfile(game, destination_game_file) + logging.info("Copied %s -> %s", str(game), str(destination_game_file)) # Migrate covers for suffix in (".tiff", ".gif"): - cover_file = old_covers_dir / game_file.with_suffix(suffix).name + cover_file = old_covers_dir / game.with_suffix(suffix).name if not cover_file.is_file(): continue destination_cover_file = shared.covers_dir / cover_file.name From 3f5f8b71e88d83279798e389c36fce94599ae1cf Mon Sep 17 00:00:00 2001 From: GeoffreyCoulaud Date: Sat, 8 Jul 2023 15:25:59 +0200 Subject: [PATCH 33/50] Manually imported - Migrate covers, log message --- src/utils/migrate_files_v1_to_v2.py | 66 ++++++++++++++++------------- 1 file changed, 36 insertions(+), 30 deletions(-) diff --git a/src/utils/migrate_files_v1_to_v2.py b/src/utils/migrate_files_v1_to_v2.py index 9c5dbae..3d2a7b4 100644 --- a/src/utils/migrate_files_v1_to_v2.py +++ b/src/utils/migrate_files_v1_to_v2.py @@ -25,6 +25,29 @@ from shutil import copyfile from src import shared +old_data_dir: Path = ( + Path(os.getenv("XDG_DATA_HOME")) + if "XDG_DATA_HOME" in os.environ + else Path.home() / ".local" / "share" +) +old_cartridges_data_dir = old_data_dir / "cartridges" +migrated_file = old_cartridges_data_dir / ".migrated" +old_games_dir = old_cartridges_data_dir / "games" +old_covers_dir = old_cartridges_data_dir / "covers" + + +def migrate_game_covers(game_file: Path): + """Migrate a game covers from a source game file (json) to current dir""" + + # Migrate covers + for suffix in (".tiff", ".gif"): + cover_file = old_covers_dir / game_file.with_suffix(suffix).name + if not cover_file.is_file(): + continue + destination_cover_file = shared.covers_dir / cover_file.name + copyfile(cover_file, destination_cover_file) + logging.info("Copied %s -> %s", str(cover_file), str(destination_cover_file)) + def migrate_files_v1_to_v2(): """ @@ -34,17 +57,9 @@ def migrate_files_v1_to_v2(): where the windows directories for data, config and cache changed. """ - old_data_dir: Path = ( - Path(os.getenv("XDG_DATA_HOME")) - if "XDG_DATA_HOME" in os.environ - else Path.home() / ".local" / "share" - ) - old_cartridges_data_dir = old_data_dir / "cartridges" - # Skip if there is no old dir # Skip if old == current # Skip if already migrated - migrated_file = old_cartridges_data_dir / ".migrated" if ( not old_data_dir.is_dir() or str(old_data_dir) == str(shared.data_dir) @@ -58,9 +73,6 @@ def migrate_files_v1_to_v2(): if not shared.data_dir.is_dir(): shared.data_dir.mkdir(parents=True) - old_games_dir = old_cartridges_data_dir / "games" - old_covers_dir = old_cartridges_data_dir / "covers" - old_games = set(old_games_dir.glob("*.json")) old_imported_games = set( filter(lambda path: path.name.startswith("imported_"), old_games) @@ -70,9 +82,9 @@ def migrate_files_v1_to_v2(): # Discover current imported games imported_game_number = 0 imported_execs = set() - for game in shared.games_dir.glob("imported_*.json"): + for game_file in shared.games_dir.glob("imported_*.json"): try: - game_data = json.load(game.open("r")) + game_data = json.load(game_file.open("r")) except (OSError, json.JSONDecodeError): continue number = int(game_data["game_id"].replace("imported_", "")) @@ -80,9 +92,9 @@ def migrate_files_v1_to_v2(): imported_execs.add(game_data["executable"]) # Migrate imported game files - for game in old_imported_games: + for game_file in old_imported_games: try: - game_data = json.load(game.open("r")) + game_data = json.load(game_file.open("r")) except (OSError, json.JSONDecodeError): continue @@ -96,28 +108,22 @@ def migrate_files_v1_to_v2(): game_data["game_id"] = game_id destination_game_file = shared.games_dir / f"{game_id}.json" json.dump(game_data, destination_game_file.open("w")) + logging.info( + "Copied (updated id) %s -> %s", str(game_file), str(destination_game_file) + ) + migrate_game_covers(game_file) # Migrate all other games - for game in old_other_games: + for game_file in old_other_games: # Do nothing if already in games dir - destination_game_file = shared.games_dir / game.name + destination_game_file = shared.games_dir / game_file.name if destination_game_file.exists(): continue # Else, migrate the game - copyfile(game, destination_game_file) - logging.info("Copied %s -> %s", str(game), str(destination_game_file)) - - # Migrate covers - for suffix in (".tiff", ".gif"): - cover_file = old_covers_dir / game.with_suffix(suffix).name - if not cover_file.is_file(): - continue - destination_cover_file = shared.covers_dir / cover_file.name - copyfile(cover_file, destination_cover_file) - logging.info( - "Copied %s -> %s", str(cover_file), str(destination_cover_file) - ) + copyfile(game_file, destination_game_file) + logging.info("Copied %s -> %s", str(game_file), str(destination_game_file)) + migrate_game_covers(game_file) # Signal that this dir is migrated migrated_file.touch() From 34863901fd733cc5ba6ef7d199b1ef0bf6a8f879 Mon Sep 17 00:00:00 2001 From: GeoffreyCoulaud Date: Sat, 8 Jul 2023 15:38:38 +0200 Subject: [PATCH 34/50] Various tweaks - Removed unnecessary comments - Renamed path variables from file to path - Don't check for XDG_DATA_HOME - Move files instead of copying them - Format json dump --- src/utils/migrate_files_v1_to_v2.py | 74 ++++++++++++++--------------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/src/utils/migrate_files_v1_to_v2.py b/src/utils/migrate_files_v1_to_v2.py index 3d2a7b4..ae68741 100644 --- a/src/utils/migrate_files_v1_to_v2.py +++ b/src/utils/migrate_files_v1_to_v2.py @@ -1,4 +1,4 @@ -# window.py +# migrate_files_v1_to_v2.py # # Copyright 2023 Geoffrey Coulaud # @@ -19,34 +19,26 @@ import json import logging -import os from pathlib import Path -from shutil import copyfile from src import shared -old_data_dir: Path = ( - Path(os.getenv("XDG_DATA_HOME")) - if "XDG_DATA_HOME" in os.environ - else Path.home() / ".local" / "share" -) +old_data_dir = Path.home() / ".local" / "share" old_cartridges_data_dir = old_data_dir / "cartridges" -migrated_file = old_cartridges_data_dir / ".migrated" +migrated_file_path = old_cartridges_data_dir / ".migrated" old_games_dir = old_cartridges_data_dir / "games" old_covers_dir = old_cartridges_data_dir / "covers" -def migrate_game_covers(game_file: Path): - """Migrate a game covers from a source game file (json) to current dir""" - - # Migrate covers +def migrate_game_covers(game_path: Path): + """Migrate a game covers from a source game path to the current dir""" for suffix in (".tiff", ".gif"): - cover_file = old_covers_dir / game_file.with_suffix(suffix).name - if not cover_file.is_file(): + cover_path = old_covers_dir / game_path.with_suffix(suffix).name + if not cover_path.is_file(): continue - destination_cover_file = shared.covers_dir / cover_file.name - copyfile(cover_file, destination_cover_file) - logging.info("Copied %s -> %s", str(cover_file), str(destination_cover_file)) + destination_cover_path = shared.covers_dir / cover_path.name + logging.info("Moving %s -> %s", str(cover_path), str(destination_cover_path)) + cover_path.rename(destination_cover_path) def migrate_files_v1_to_v2(): @@ -63,7 +55,7 @@ def migrate_files_v1_to_v2(): if ( not old_data_dir.is_dir() or str(old_data_dir) == str(shared.data_dir) - or migrated_file.is_file() + or migrated_file_path.is_file() ): return @@ -73,18 +65,18 @@ def migrate_files_v1_to_v2(): if not shared.data_dir.is_dir(): shared.data_dir.mkdir(parents=True) - old_games = set(old_games_dir.glob("*.json")) - old_imported_games = set( - filter(lambda path: path.name.startswith("imported_"), old_games) + old_game_paths = set(old_games_dir.glob("*.json")) + old_imported_game_paths = set( + filter(lambda path: path.name.startswith("imported_"), old_game_paths) ) - old_other_games = old_games - old_imported_games + old_other_game_paths = old_game_paths - old_imported_game_paths # Discover current imported games imported_game_number = 0 imported_execs = set() - for game_file in shared.games_dir.glob("imported_*.json"): + for game_path in shared.games_dir.glob("imported_*.json"): try: - game_data = json.load(game_file.open("r")) + game_data = json.load(game_path.open("r")) except (OSError, json.JSONDecodeError): continue number = int(game_data["game_id"].replace("imported_", "")) @@ -92,9 +84,9 @@ def migrate_files_v1_to_v2(): imported_execs.add(game_data["executable"]) # Migrate imported game files - for game_file in old_imported_games: + for game_path in old_imported_game_paths: try: - game_data = json.load(game_file.open("r")) + game_data = json.load(game_path.open("r")) except (OSError, json.JSONDecodeError): continue @@ -106,25 +98,31 @@ def migrate_files_v1_to_v2(): imported_game_number += 1 game_id = f"imported_{imported_game_number}" game_data["game_id"] = game_id - destination_game_file = shared.games_dir / f"{game_id}.json" - json.dump(game_data, destination_game_file.open("w")) + destination_game_path = shared.games_dir / f"{game_id}.json" logging.info( - "Copied (updated id) %s -> %s", str(game_file), str(destination_game_file) + "Moving (updated id) %s -> %s", str(game_path), str(destination_game_path) ) - migrate_game_covers(game_file) + json.dump( + game_data, + destination_game_path.open("w"), + indent=4, + sort_keys=True, + ) + game_path.unlink() + migrate_game_covers(game_path) # Migrate all other games - for game_file in old_other_games: + for game_path in old_other_game_paths: # Do nothing if already in games dir - destination_game_file = shared.games_dir / game_file.name - if destination_game_file.exists(): + destination_game_path = shared.games_dir / game_path.name + if destination_game_path.exists(): continue # Else, migrate the game - copyfile(game_file, destination_game_file) - logging.info("Copied %s -> %s", str(game_file), str(destination_game_file)) - migrate_game_covers(game_file) + logging.info("Moving %s -> %s", str(game_path), str(destination_game_path)) + game_path.rename(destination_game_path) + migrate_game_covers(game_path) # Signal that this dir is migrated - migrated_file.touch() + migrated_file_path.touch() logging.info("Migration done") From 6a06f7329d570c3b1dfcc0759e874b58d59e1412 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Sat, 8 Jul 2023 16:00:57 +0200 Subject: [PATCH 35/50] Disallow Legendary on Windows to fix Heroic --- src/importer/sources/legendary_source.py | 2 +- src/main.py | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/importer/sources/legendary_source.py b/src/importer/sources/legendary_source.py index 2c215ca..5b8a2a3 100644 --- a/src/importer/sources/legendary_source.py +++ b/src/importer/sources/legendary_source.py @@ -92,7 +92,7 @@ class LegendarySourceIterator(SourceIterator): class LegendarySource(Source): name = "Legendary" executable_format = "legendary launch {app_name}" - available_on = {"linux", "win32"} + available_on = {"linux"} iterator_class = LegendarySourceIterator config_location: Location = Location( diff --git a/src/main.py b/src/main.py index bc8f0e6..949029d 100644 --- a/src/main.py +++ b/src/main.py @@ -19,6 +19,7 @@ import json import lzma +import os import sys import gi @@ -65,6 +66,12 @@ class CartridgesApplication(Adw.Application): def do_activate(self): # pylint: disable=arguments-differ """Called on app creation""" + setup_logging() + log_system_info() + + if os.name == "nt": + migrate_files_v1_to_v2() + # Set fallback icon-name Gtk.Window.set_default_icon_name(shared.APP_ID) @@ -280,8 +287,5 @@ class CartridgesApplication(Adw.Application): def main(_version): """App entry point""" - setup_logging() - log_system_info() - migrate_files_v1_to_v2() app = CartridgesApplication() return app.run(sys.argv) From a0c46bbc74fb3eb31179fae8cc5670a46d688da6 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Sat, 8 Jul 2023 16:01:32 +0200 Subject: [PATCH 36/50] v2.0.3 --- data/hu.kramo.Cartridges.metainfo.xml.in | 4 ++-- meson.build | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/hu.kramo.Cartridges.metainfo.xml.in b/data/hu.kramo.Cartridges.metainfo.xml.in index 7b3c8bc..fe9034c 100644 --- a/data/hu.kramo.Cartridges.metainfo.xml.in +++ b/data/hu.kramo.Cartridges.metainfo.xml.in @@ -44,10 +44,10 @@ - +
    -
  • Fixes an issue with internal data storage
  • +
  • Fixes an issue with Windows data storage
diff --git a/meson.build b/meson.build index 27bab23..d41d12a 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('cartridges', - version: '2.0.2', + version: '2.0.3', meson_version: '>= 0.59.0', default_options: [ 'warning_level=2', 'werror=false', ], ) From b4bfe38765746c04d8f2467bf26ef7e85d1da78f Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Sun, 9 Jul 2023 09:59:03 +0200 Subject: [PATCH 37/50] Backport new game fix - closes #143 --- src/details_window.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/details_window.py b/src/details_window.py index addebf3..33553fa 100644 --- a/src/details_window.py +++ b/src/details_window.py @@ -158,11 +158,12 @@ class DetailsWindow(Adw.Window): source_id = "imported" numbers = [0] game_id: str - for game_id in shared.source_games[source_id]: + for game_id in shared.store.source_games.get(source_id, set()): prefix = "imported_" if not game_id.startswith(prefix): continue numbers.append(int(game_id.replace(prefix, "", 1))) + game_number = max(numbers) + 1 self.game = Game( From c3bd7ee73653db3ce9942dd48a756171ae66a9e9 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Sun, 9 Jul 2023 10:00:10 +0200 Subject: [PATCH 38/50] v2.0.4 --- data/hu.kramo.Cartridges.metainfo.xml.in | 4 ++-- meson.build | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/hu.kramo.Cartridges.metainfo.xml.in b/data/hu.kramo.Cartridges.metainfo.xml.in index fe9034c..4a12228 100644 --- a/data/hu.kramo.Cartridges.metainfo.xml.in +++ b/data/hu.kramo.Cartridges.metainfo.xml.in @@ -44,10 +44,10 @@ - +
    -
  • Fixes an issue with Windows data storage
  • +
  • Fixes an issue with adding new games manually
diff --git a/meson.build b/meson.build index d41d12a..e8c4d37 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('cartridges', - version: '2.0.3', + version: '2.0.4', meson_version: '>= 0.59.0', default_options: [ 'warning_level=2', 'werror=false', ], ) From cd986c3f5e7da4fcfbb44c367037f863542d2654 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sun, 9 Jul 2023 09:59:13 +0200 Subject: [PATCH 39/50] Translated using Weblate (Arabic) Currently translated at 100.0% (121 of 121 strings) Co-authored-by: Ali Aljishi Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ar/ Translation: Cartridges/Cartridges --- po/ar.po | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/po/ar.po b/po/ar.po index 3673eac..73185ab 100644 --- a/po/ar.po +++ b/po/ar.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: cartridges\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-05 14:36+0200\n" -"PO-Revision-Date: 2023-07-04 17:29+0000\n" +"PO-Revision-Date: 2023-07-09 07:59+0000\n" "Last-Translator: Ali Aljishi \n" "Language-Team: Arabic \n" @@ -529,17 +529,13 @@ msgstr "حدِّد مجلَّد ذاكرة {} المؤقتة." #. The variable is the name of the source #: src/preferences.py:355 -#, fuzzy -#| msgid "Select the {} installation directory." msgid "Select the {} configuration directory." -msgstr "حدِّد مجلَّد تثبيت {}." +msgstr "حدِّد مجلَّد ضبط {}." #. The variable is the name of the source #: src/preferences.py:358 -#, fuzzy -#| msgid "Select the {} cache directory." msgid "Select the {} data directory." -msgstr "حدِّد مجلَّد ذاكرة {} المؤقتة." +msgstr "حدِّد مجلَّد بيانات {}." #: src/preferences.py:364 msgid "Set Location" From d7d6270bbc6eefa05dde36fe3418d2bbed6f9533 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sun, 9 Jul 2023 09:59:13 +0200 Subject: [PATCH 40/50] Translated using Weblate (Spanish) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (121 of 121 strings) Co-authored-by: Hosted Weblate Co-authored-by: Óscar Fernández Díaz Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/es/ Translation: Cartridges/Cartridges --- po/es.po | 43 ++++++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/po/es.po b/po/es.po index ef2a89e..462e8e0 100644 --- a/po/es.po +++ b/po/es.po @@ -9,8 +9,9 @@ msgstr "" "Project-Id-Version: cartridges\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-05 14:36+0200\n" -"PO-Revision-Date: 2023-07-04 17:29+0000\n" -"Last-Translator: gallegonovato \n" +"PO-Revision-Date: 2023-07-08 14:52+0000\n" +"Last-Translator: Óscar Fernández Díaz \n" "Language-Team: Spanish \n" "Language: es\n" @@ -46,9 +47,9 @@ msgid "" "necessary. You can sort and hide games or download cover art from " "SteamGridDB." msgstr "" -"Cartridges es un lanzador simple para todos tus juegos. Admite la " -"importación de tus juegos de Steam, Lutris, Heroic y más sin necesidad de " -"una cuenta. Puedes ordenar y ocultar juegos, o descargar carátulas de " +"Cartuchos es un sencillo lanzador de juegos para todos sus juegos. Tiene " +"soporte para importar juegos de Steam, Lutris, Heroic y más sin necesidad de " +"iniciar sesión. Puede ordenar y ocultar juegos o descargar portadas de " "SteamGridDB." #: data/hu.kramo.Cartridges.metainfo.xml.in:30 @@ -74,11 +75,11 @@ msgstr "Cancelar" #: data/gtk/details-window.blp:57 msgid "New Cover" -msgstr "Nueva caratula" +msgstr "Portada nueva" #: data/gtk/details-window.blp:75 msgid "Delete Cover" -msgstr "Borrar la caratula" +msgstr "Borrar portada" #: data/gtk/details-window.blp:101 data/gtk/details-window.blp:106 #: data/gtk/game.blp:80 @@ -124,7 +125,7 @@ msgstr "Eliminar" #: data/gtk/game.blp:126 src/window.py:173 msgid "Unhide" -msgstr "Mostrar" +msgstr "Desocultar" #: data/gtk/help-overlay.blp:11 data/gtk/preferences.blp:9 msgid "General" @@ -177,7 +178,7 @@ msgstr "Eliminar juego" #: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268 msgid "Behavior" -msgstr "Conducta" +msgstr "Comportamiento" #: data/gtk/preferences.blp:16 msgid "Exit After Launching Games" @@ -206,11 +207,11 @@ msgstr "Guarda las partidas sin pérdidas a costa del almacenamiento" #: data/gtk/preferences.blp:50 msgid "Danger Zone" -msgstr "Zona peligrosa" +msgstr "Zona de peligro" #: data/gtk/preferences.blp:53 msgid "Remove All Games" -msgstr "Quitar todos los juegos" +msgstr "Eliminar todos los juegos" #: data/gtk/preferences.blp:85 data/gtk/window.blp:27 data/gtk/window.blp:442 msgid "Import" @@ -229,7 +230,7 @@ msgstr "Steam" #: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220 #: data/gtk/preferences.blp:234 msgid "Install Location" -msgstr "Lugar de la instalación" +msgstr "Ruta de instalación" #: data/gtk/preferences.blp:106 msgid "Lutris" @@ -237,7 +238,7 @@ msgstr "Lutris" #: data/gtk/preferences.blp:119 msgid "Cache Location" -msgstr "Localización de la caché" +msgstr "Ruta de la caché" #: data/gtk/preferences.blp:128 msgid "Import Steam Games" @@ -245,7 +246,7 @@ msgstr "Importar juegos de Steam" #: data/gtk/preferences.blp:137 msgid "Import Flatpak Games" -msgstr "Importar los juegos Flatpak" +msgstr "Importar juegos Flatpak" #: data/gtk/preferences.blp:147 msgid "Heroic" @@ -289,15 +290,15 @@ msgstr "SteamGridDB" #: data/gtk/preferences.blp:260 msgid "Authentication" -msgstr "Autentificación" +msgstr "Autenticación" #: data/gtk/preferences.blp:263 msgid "API Key" -msgstr "Código API" +msgstr "Clave API" #: data/gtk/preferences.blp:271 msgid "Use SteamGridDB" -msgstr "Utiliza SteamGridDB" +msgstr "Usar SteamGridDB" #: data/gtk/preferences.blp:272 msgid "Download images when adding or importing games" @@ -532,17 +533,13 @@ msgstr "Seleccione el directorio de la caché {}." #. The variable is the name of the source #: src/preferences.py:355 -#, fuzzy -#| msgid "Select the {} installation directory." msgid "Select the {} configuration directory." -msgstr "Selecciona el directorio de la instalación {}." +msgstr "Seleccione el directorio de configuración {}." #. The variable is the name of the source #: src/preferences.py:358 -#, fuzzy -#| msgid "Select the {} cache directory." msgid "Select the {} data directory." -msgstr "Seleccione el directorio de la caché {}." +msgstr "Seleccione el directorio de datos {}." #: src/preferences.py:364 msgid "Set Location" From ac71bc6ecb1805932be6c304e882c99f42f8b616 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sun, 9 Jul 2023 09:59:13 +0200 Subject: [PATCH 41/50] Translated using Weblate (Russian) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (121 of 121 strings) Co-authored-by: Hosted Weblate Co-authored-by: Сергей Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ru/ Translation: Cartridges/Cartridges --- po/ru.po | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/po/ru.po b/po/ru.po index 4ea2748..21dde88 100644 --- a/po/ru.po +++ b/po/ru.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: cartridges\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-05 14:36+0200\n" -"PO-Revision-Date: 2023-07-01 15:10+0000\n" +"PO-Revision-Date: 2023-07-08 14:52+0000\n" "Last-Translator: Сергей \n" "Language-Team: Russian \n" @@ -16,8 +16,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"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.0-dev\n" #: data/hu.kramo.Cartridges.desktop.in:3 @@ -531,17 +531,13 @@ msgstr "Выберите каталог кэша {}." #. The variable is the name of the source #: src/preferences.py:355 -#, fuzzy -#| msgid "Select the {} installation directory." msgid "Select the {} configuration directory." -msgstr "Выберите каталог установки {}." +msgstr "Выберите каталог конфигурации {}." #. The variable is the name of the source #: src/preferences.py:358 -#, fuzzy -#| msgid "Select the {} cache directory." msgid "Select the {} data directory." -msgstr "Выберите каталог кэша {}." +msgstr "Выберите каталог данных {}." #: src/preferences.py:364 msgid "Set Location" From 6bf246a8e6a8c2c489cb2b6a6a684fbbf9f34cc7 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sun, 9 Jul 2023 09:59:13 +0200 Subject: [PATCH 42/50] Translated using Weblate (Dutch) Currently translated at 100.0% (121 of 121 strings) Co-authored-by: Hosted Weblate Co-authored-by: Philip Goto Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/nl/ Translation: Cartridges/Cartridges --- po/nl.po | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/po/nl.po b/po/nl.po index 1a57d79..b85ed43 100644 --- a/po/nl.po +++ b/po/nl.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: cartridges\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-05 14:36+0200\n" -"PO-Revision-Date: 2023-07-04 17:29+0000\n" +"PO-Revision-Date: 2023-07-08 14:52+0000\n" "Last-Translator: Philip Goto \n" "Language-Team: Dutch \n" @@ -134,7 +134,7 @@ msgstr "Algemeen" #: data/gtk/help-overlay.blp:14 msgid "Quit" -msgstr "Sluiten" +msgstr "Afsluiten" #: data/gtk/help-overlay.blp:19 data/gtk/window.blp:217 data/gtk/window.blp:257 #: data/gtk/window.blp:323 @@ -319,7 +319,7 @@ msgstr "Geen games gevonden" #: data/gtk/window.blp:7 data/gtk/window.blp:15 msgid "Try a different search." -msgstr "Probeer een andere zoekopdracht" +msgstr "Probeer een andere zoekopdracht." #: data/gtk/window.blp:21 msgid "No Games" @@ -327,7 +327,7 @@ msgstr "Geen games" #: data/gtk/window.blp:22 msgid "Use the + button to add games." -msgstr "Gebruik de plusknop om games toe te voegen" +msgstr "Gebruik de plusknop om games toe te voegen." #: data/gtk/window.blp:40 msgid "No Hidden Games" @@ -335,7 +335,7 @@ msgstr "Geen verborgen games" #: data/gtk/window.blp:41 msgid "Games you hide will appear here." -msgstr "Games die u verbergt zullen hier verschijnen" +msgstr "Games die u verbergt zullen hier verschijnen." #: data/gtk/window.blp:64 data/gtk/window.blp:304 msgid "Back" @@ -478,11 +478,11 @@ msgstr "Kon game niet toevoegen" #: src/details_window.py:147 src/details_window.py:181 msgid "Game title cannot be empty." -msgstr "Game-titel mag niet leeg zijn" +msgstr "Game-titel mag niet leeg zijn." #: src/details_window.py:153 src/details_window.py:189 msgid "Executable cannot be empty." -msgstr "Programmabestand mag niet leeg zijn" +msgstr "Programmabestand mag niet leeg zijn." #: src/details_window.py:180 src/details_window.py:188 msgid "Couldn't Apply Preferences" @@ -523,7 +523,7 @@ msgstr "Installatie niet gevonden" #: src/preferences.py:286 msgid "Select a valid directory." -msgstr "Selecteer een geldige map" +msgstr "Selecteer een geldige map." #: src/preferences.py:348 msgid "Invalid Directory" @@ -532,21 +532,17 @@ msgstr "Ongeldige map" #. The variable is the name of the source #: src/preferences.py:352 msgid "Select the {} cache directory." -msgstr "Selecteer de cache-map van {}" +msgstr "Selecteer de cache-map van {}." #. The variable is the name of the source #: src/preferences.py:355 -#, fuzzy -#| msgid "Select the {} installation directory." msgid "Select the {} configuration directory." -msgstr "Selecteer de installatiemap van {}" +msgstr "Selecteer de configuratiemap van {}." #. The variable is the name of the source #: src/preferences.py:358 -#, fuzzy -#| msgid "Select the {} cache directory." msgid "Select the {} data directory." -msgstr "Selecteer de cache-map van {}" +msgstr "Selecteer de gegevensmap van {}." #: src/preferences.py:364 msgid "Set Location" From bc25afa494718247165c5d3f336c6b4359509937 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sun, 9 Jul 2023 09:59:13 +0200 Subject: [PATCH 43/50] Translated using Weblate (Ukrainian) Currently translated at 100.0% (121 of 121 strings) Co-authored-by: Dan Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/uk/ Translation: Cartridges/Cartridges --- po/uk.po | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/po/uk.po b/po/uk.po index 87d8aa5..2ac3ec9 100644 --- a/po/uk.po +++ b/po/uk.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: cartridges\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-05 14:36+0200\n" -"PO-Revision-Date: 2023-07-01 22:51+0000\n" +"PO-Revision-Date: 2023-07-08 14:52+0000\n" "Last-Translator: Dan \n" "Language-Team: Ukrainian \n" @@ -18,8 +18,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"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.0-dev\n" #: data/hu.kramo.Cartridges.desktop.in:3 @@ -534,17 +534,13 @@ msgstr "Виберіть каталог кешу {}." #. The variable is the name of the source #: src/preferences.py:355 -#, fuzzy -#| msgid "Select the {} installation directory." msgid "Select the {} configuration directory." -msgstr "Виберіть каталог встановлення {}." +msgstr "Виберіть каталог конфігурації {}." #. The variable is the name of the source #: src/preferences.py:358 -#, fuzzy -#| msgid "Select the {} cache directory." msgid "Select the {} data directory." -msgstr "Виберіть каталог кешу {}." +msgstr "Виберіть каталог даних {}." #: src/preferences.py:364 msgid "Set Location" From 633e2a6c5d6fee9f348ad860b42e6477747e3a73 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sun, 9 Jul 2023 09:59:14 +0200 Subject: [PATCH 44/50] Translated using Weblate (Italian) Currently translated at 100.0% (121 of 121 strings) Co-authored-by: Alessandro Iepure Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/it/ Translation: Cartridges/Cartridges --- po/it.po | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/po/it.po b/po/it.po index 8368a72..09e83ae 100644 --- a/po/it.po +++ b/po/it.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: cartridges\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-05 14:36+0200\n" -"PO-Revision-Date: 2023-07-01 15:10+0000\n" -"Last-Translator: albanobattistella \n" +"PO-Revision-Date: 2023-07-08 14:52+0000\n" +"Last-Translator: Alessandro Iepure \n" "Language-Team: Italian \n" "Language: it\n" @@ -87,7 +87,7 @@ msgstr "Titolo" #: data/gtk/details-window.blp:102 msgid "The title of the game" -msgstr "Titolo del gioco" +msgstr "Il titolo del gioco" #: data/gtk/details-window.blp:112 data/gtk/details-window.blp:117 msgid "Developer" @@ -273,7 +273,7 @@ msgstr "itch" #: data/gtk/preferences.blp:216 msgid "Legendary" -msgstr "Leggendari" +msgstr "Leggendario" #: data/gtk/preferences.blp:230 msgid "Flatpak" @@ -281,7 +281,7 @@ msgstr "Flatpak" #: data/gtk/preferences.blp:243 msgid "Import Game Launchers" -msgstr "Importa lanciatori di giochi" +msgstr "Importa launcher di giochi" #: data/gtk/preferences.blp:256 msgid "SteamGridDB" @@ -528,21 +528,17 @@ msgstr "Directory non valida" #. The variable is the name of the source #: src/preferences.py:352 msgid "Select the {} cache directory." -msgstr "Seleziona la directory della cache {}." +msgstr "Seleziona la directory della cache per {}." #. The variable is the name of the source #: src/preferences.py:355 -#, fuzzy -#| msgid "Select the {} installation directory." msgid "Select the {} configuration directory." -msgstr "Selezionare la directory di installazione {}." +msgstr "Selezionare la directory di configurazione per {}." #. The variable is the name of the source #: src/preferences.py:358 -#, fuzzy -#| msgid "Select the {} cache directory." msgid "Select the {} data directory." -msgstr "Seleziona la directory della cache {}." +msgstr "Seleziona la directory dati per {}." #: src/preferences.py:364 msgid "Set Location" @@ -554,7 +550,7 @@ msgstr "Chiudi" #: src/store/managers/sgdb_manager.py:47 msgid "Couldn't Authenticate SteamGridDB" -msgstr "Impossibile eseguire l'autenticazione su SteamGridDB" +msgstr "Impossibile autenticare SteamGridDB" #: src/store/managers/sgdb_manager.py:48 msgid "Verify your API key in preferences" From 220d00141fc9db18214f57095ce710ccd0c42d23 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sun, 9 Jul 2023 09:59:14 +0200 Subject: [PATCH 45/50] Translated using Weblate (Tamil) Currently translated at 100.0% (121 of 121 strings) Co-authored-by: K.B.Dharun Krishna Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/ta/ Translation: Cartridges/Cartridges --- po/ta.po | 62 ++++++++++++++++++++++---------------------------------- 1 file changed, 24 insertions(+), 38 deletions(-) diff --git a/po/ta.po b/po/ta.po index d062757..f609724 100644 --- a/po/ta.po +++ b/po/ta.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: Cartridges\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-05 14:36+0200\n" -"PO-Revision-Date: 2023-06-28 20:19+0000\n" +"PO-Revision-Date: 2023-07-09 07:59+0000\n" "Last-Translator: \"K.B.Dharun Krishna\" \n" "Language-Team: Tamil \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.18.1\n" +"X-Generator: Weblate 5.0-dev\n" #: data/hu.kramo.Cartridges.desktop.in:3 #: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47 @@ -46,10 +46,10 @@ msgid "" "necessary. You can sort and hide games or download cover art from " "SteamGridDB." msgstr "" -"உங்கள் எல்லா விளையாட்டுகளுக்கும் கேட்ரிட்ஜ்கள் ஒரு எளிய விளையாட்டு துவக்கி ஆகும். ஸ்டீம் " -"(Steam), லுட்ரிஸ் (Lutris), வீரம் (Heroic) மற்றும் பலவற்றிலிருந்து விளையாட்டுகளை " -"இறக்குமதி செய்வதற்கான ஆதரவை இது கொண்டுள்ளது. நீங்கள் விளையாட்டுகளை வரிசைப்படுத்தலாம் " -"மற்றும் மறைக்கலாம் அல்லது ஸ்டீம்கிரிட் டிபி (SteamGridDB) இலிருந்து அட்டைப்பட கலையைப் " +"உங்கள் எல்லா விளையாட்டுகளுக்கும் கேட்ரிட்ஜ்கள் ஒரு எளிய விளையாட்டு துவக்கி " +"ஆகும். Steam, Lutris, Heroic மற்றும் பலவற்றிலிருந்து விளையாட்டுகளை இறக்குமதி " +"செய்வதற்கான ஆதரவை இது கொண்டுள்ளது. நீங்கள் விளையாட்டுகளை வரிசைப்படுத்தலாம் " +"மற்றும் மறைக்கலாம் அல்லது SteamGridDB இலிருந்து அட்டைப்பட கலையைப் " "பதிவிறக்கலாம்." #: data/hu.kramo.Cartridges.metainfo.xml.in:30 @@ -222,7 +222,7 @@ msgstr "மூலங்கள்" #: data/gtk/preferences.blp:92 msgid "Steam" -msgstr "Steam (ஸ்டீம்)" +msgstr "Steam" #: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110 #: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192 @@ -233,7 +233,7 @@ msgstr "நிறுவல் இடம்" #: data/gtk/preferences.blp:106 msgid "Lutris" -msgstr "லூட்ரிஸ்" +msgstr "Lutris" #: data/gtk/preferences.blp:119 msgid "Cache Location" @@ -241,17 +241,15 @@ msgstr "தற்காலிக சேமிப்பு இடம்" #: data/gtk/preferences.blp:128 msgid "Import Steam Games" -msgstr "ஸ்டீம் (Steam) விளையாட்டுகளை இறக்குமதி செய்யவும்" +msgstr "Steam விளையாட்டுகளை இறக்குமதி செய்யவும்" #: data/gtk/preferences.blp:137 -#, fuzzy -#| msgid "Import Steam Games" msgid "Import Flatpak Games" -msgstr "ஸ்டீம் (Steam) விளையாட்டுகளை இறக்குமதி செய்யவும்" +msgstr "Flatpak கேம்களை இறக்குமதி செய்யவும்" #: data/gtk/preferences.blp:147 msgid "Heroic" -msgstr "Heroic (ஹீரோயிக்)" +msgstr "Heroic" #: data/gtk/preferences.blp:160 msgid "Import Epic Games" @@ -267,29 +265,27 @@ msgstr "பக்க ஏற்றப்பட்ட விளையாட்ட #: data/gtk/preferences.blp:188 msgid "Bottles" -msgstr "Bottles (பாட்டில்கள்)" +msgstr "பாட்டில்கள்" #: data/gtk/preferences.blp:202 msgid "itch" -msgstr "அரிப்பு (itch)" +msgstr "itch" #: data/gtk/preferences.blp:216 msgid "Legendary" -msgstr "பழம்பெரும்" +msgstr "Legendary" #: data/gtk/preferences.blp:230 msgid "Flatpak" -msgstr "" +msgstr "Flatpak" #: data/gtk/preferences.blp:243 -#, fuzzy -#| msgid "Game Launcher" msgid "Import Game Launchers" -msgstr "விளையாட்டு துவக்கி" +msgstr "விளையாட்டு துவக்கிகளை இறக்குமதி செய்" #: data/gtk/preferences.blp:256 msgid "SteamGridDB" -msgstr "ஸ்டீம்கிரிட் டிபி (SteamGridDB)" +msgstr "SteamGridDB" #: data/gtk/preferences.blp:260 msgid "Authentication" @@ -301,7 +297,7 @@ msgstr "API விசை" #: data/gtk/preferences.blp:271 msgid "Use SteamGridDB" -msgstr "ஸ்டீம்கிரிட் டிபி (SteamGridDB) ஐப் பயன்படுத்தவும்" +msgstr "SteamGridDB ஐப் பயன்படுத்தவும்" #: data/gtk/preferences.blp:272 msgid "Download images when adding or importing games" @@ -515,43 +511,33 @@ msgstr "அனைத்து விளையாட்டுகளும் அ msgid "" "An API key is required to use SteamGridDB. You can generate one {}here{}." msgstr "" -"ஸ்டீம்கிரிட் டிபி (SteamGridDB) ஐப் பயன்படுத்த API விசை தேவை. நீங்கள் ஒன்றை {}இங்கே{} " +"SteamGridDB ஐப் பயன்படுத்த API விசை தேவை. நீங்கள் ஒன்றை {}இங்கே{} " "உருவாக்கலாம்." #: src/preferences.py:284 -#, fuzzy -#| msgid "Installation Not Found" msgid "Installation Not Found" msgstr "நிறுவல் கிடைக்கவில்லை" #: src/preferences.py:286 -#, fuzzy -#| msgid "Select the {} data directory." msgid "Select a valid directory." -msgstr "{} தரவு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்." +msgstr "சரியான கோப்பகத்தைத் தேர்ந்தெடுக்கவும்." #: src/preferences.py:348 msgid "Invalid Directory" -msgstr "" +msgstr "தவறான கோப்பகம்" #. The variable is the name of the source #: src/preferences.py:352 -#, fuzzy -#| msgid "Select the {} data directory." msgid "Select the {} cache directory." -msgstr "{} தரவு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்." +msgstr "{} கேச் கோப்பகத்தைத் தேர்ந்தெடுக்கவும்." #. The variable is the name of the source #: src/preferences.py:355 -#, fuzzy -#| msgid "Select the {} configuration directory." msgid "Select the {} configuration directory." -msgstr "{} உள்ளமைவு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்." +msgstr "{} கட்டமைப்பு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்." #. The variable is the name of the source #: src/preferences.py:358 -#, fuzzy -#| msgid "Select the {} data directory." msgid "Select the {} data directory." msgstr "{} தரவு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்." @@ -565,7 +551,7 @@ msgstr "நிராகரி" #: src/store/managers/sgdb_manager.py:47 msgid "Couldn't Authenticate SteamGridDB" -msgstr "ஸ்டீம்கிரிட் டிபி (SteamGridDB) ஐ அங்கீகரிக்க முடியவில்லை" +msgstr "SteamGridDB ஐ அங்கீகரிக்க முடியவில்லை" #: src/store/managers/sgdb_manager.py:48 msgid "Verify your API key in preferences" From 19432a1fe7c8bef1e503b519bb839788cfbe95ab Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sun, 9 Jul 2023 09:59:14 +0200 Subject: [PATCH 46/50] Translated using Weblate (Swedish) Currently translated at 100.0% (121 of 121 strings) Co-authored-by: Hosted Weblate Co-authored-by: Luna Jernberg Translate-URL: https://hosted.weblate.org/projects/cartridges/cartridges/sv/ Translation: Cartridges/Cartridges --- po/sv.po | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/po/sv.po b/po/sv.po index 3fb3b99..d6f1122 100644 --- a/po/sv.po +++ b/po/sv.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: Cartridges\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-05 14:36+0200\n" -"PO-Revision-Date: 2023-07-01 22:51+0000\n" +"PO-Revision-Date: 2023-07-08 14:52+0000\n" "Last-Translator: Luna Jernberg \n" "Language-Team: Swedish \n" @@ -531,17 +531,13 @@ msgstr "Välj {} cachekatalog." #. The variable is the name of the source #: src/preferences.py:355 -#, fuzzy -#| msgid "Select the {} installation directory." msgid "Select the {} configuration directory." -msgstr "Välj {} installationskatalog." +msgstr "Välj {} konfigurationskatalog." #. The variable is the name of the source #: src/preferences.py:358 -#, fuzzy -#| msgid "Select the {} cache directory." msgid "Select the {} data directory." -msgstr "Välj {} cachekatalog." +msgstr "Välj {} datakatalog." #: src/preferences.py:364 msgid "Set Location" From 99ef85daf3ec6d7ae560dd8015fd1719846614fa Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Sun, 9 Jul 2023 10:01:35 +0200 Subject: [PATCH 47/50] Update release description --- data/hu.kramo.Cartridges.metainfo.xml.in | 1 + 1 file changed, 1 insertion(+) diff --git a/data/hu.kramo.Cartridges.metainfo.xml.in b/data/hu.kramo.Cartridges.metainfo.xml.in index 4a12228..20e075f 100644 --- a/data/hu.kramo.Cartridges.metainfo.xml.in +++ b/data/hu.kramo.Cartridges.metainfo.xml.in @@ -48,6 +48,7 @@
  • Fixes an issue with adding new games manually
  • +
  • Translations since 2.0
From 5be70bba5265d62c1069d13eafa73db2e5035058 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Sun, 9 Jul 2023 14:26:44 +0200 Subject: [PATCH 48/50] Add extra sources to desktop entry --- data/hu.kramo.Cartridges.desktop.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/hu.kramo.Cartridges.desktop.in b/data/hu.kramo.Cartridges.desktop.in index 643d02f..7341def 100644 --- a/data/hu.kramo.Cartridges.desktop.in +++ b/data/hu.kramo.Cartridges.desktop.in @@ -7,5 +7,5 @@ Icon=@APP_ID@ Terminal=false Type=Application Categories=GNOME;GTK;Game; -Keywords=gaming;launcher;steam;lutris;heroic;bottles;itch; +Keywords=gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;legendary; StartupNotify=true From 6114f65204c0a53edba646acd6f4dd0015573674 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Thu, 13 Jul 2023 14:46:31 +0200 Subject: [PATCH 49/50] Lowercase itch source name --- src/importer/sources/itch_source.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/importer/sources/itch_source.py b/src/importer/sources/itch_source.py index 841c2e0..3a7b461 100644 --- a/src/importer/sources/itch_source.py +++ b/src/importer/sources/itch_source.py @@ -79,7 +79,7 @@ class ItchSourceIterator(SourceIterator): class ItchSource(URLExecutableSource): - name = "Itch" + name = "itch" iterator_class = ItchSourceIterator url_format = "itch://caves/{cave_id}/launch" available_on = {"linux", "win32"} From a1c5a4bdd8b6646f100538d1c70ab1df0871564d Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Thu, 13 Jul 2023 14:51:55 +0200 Subject: [PATCH 50/50] Mark source names as translatable --- src/importer/sources/bottles_source.py | 2 +- src/importer/sources/flatpak_source.py | 2 +- src/importer/sources/heroic_source.py | 2 +- src/importer/sources/itch_source.py | 2 +- src/importer/sources/legendary_source.py | 2 +- src/importer/sources/lutris_source.py | 2 +- src/importer/sources/steam_source.py | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/importer/sources/bottles_source.py b/src/importer/sources/bottles_source.py index c1af459..d993598 100644 --- a/src/importer/sources/bottles_source.py +++ b/src/importer/sources/bottles_source.py @@ -83,7 +83,7 @@ class BottlesSourceIterator(SourceIterator): class BottlesSource(URLExecutableSource): """Generic Bottles source""" - name = "Bottles" + name = _("Bottles") iterator_class = BottlesSourceIterator url_format = 'bottles:run/"{bottle_name}"/"{game_name}"' available_on = {"linux"} diff --git a/src/importer/sources/flatpak_source.py b/src/importer/sources/flatpak_source.py index 2050d52..6ec6262 100644 --- a/src/importer/sources/flatpak_source.py +++ b/src/importer/sources/flatpak_source.py @@ -114,7 +114,7 @@ class FlatpakSourceIterator(SourceIterator): class FlatpakSource(Source): """Generic Flatpak source""" - name = "Flatpak" + name = _("Flatpak") iterator_class = FlatpakSourceIterator executable_format = "flatpak run {flatpak_id}" available_on = {"linux"} diff --git a/src/importer/sources/heroic_source.py b/src/importer/sources/heroic_source.py index 716c222..499803b 100644 --- a/src/importer/sources/heroic_source.py +++ b/src/importer/sources/heroic_source.py @@ -138,7 +138,7 @@ class HeroicSourceIterator(SourceIterator): class HeroicSource(URLExecutableSource): """Generic Heroic Games Launcher source""" - name = "Heroic" + name = _("Heroic") iterator_class = HeroicSourceIterator url_format = "heroic://launch/{app_name}" available_on = {"linux", "win32"} diff --git a/src/importer/sources/itch_source.py b/src/importer/sources/itch_source.py index 3a7b461..141c9f9 100644 --- a/src/importer/sources/itch_source.py +++ b/src/importer/sources/itch_source.py @@ -79,7 +79,7 @@ class ItchSourceIterator(SourceIterator): class ItchSource(URLExecutableSource): - name = "itch" + name = _("itch") iterator_class = ItchSourceIterator url_format = "itch://caves/{cave_id}/launch" available_on = {"linux", "win32"} diff --git a/src/importer/sources/legendary_source.py b/src/importer/sources/legendary_source.py index 5b8a2a3..22392be 100644 --- a/src/importer/sources/legendary_source.py +++ b/src/importer/sources/legendary_source.py @@ -90,7 +90,7 @@ class LegendarySourceIterator(SourceIterator): class LegendarySource(Source): - name = "Legendary" + name = _("Legendary") executable_format = "legendary launch {app_name}" available_on = {"linux"} diff --git a/src/importer/sources/lutris_source.py b/src/importer/sources/lutris_source.py index 20f852a..ec4b066 100644 --- a/src/importer/sources/lutris_source.py +++ b/src/importer/sources/lutris_source.py @@ -90,7 +90,7 @@ class LutrisSourceIterator(SourceIterator): class LutrisSource(URLExecutableSource): """Generic Lutris source""" - name = "Lutris" + name = _("Lutris") iterator_class = LutrisSourceIterator url_format = "lutris:rungameid/{game_id}" available_on = {"linux"} diff --git a/src/importer/sources/steam_source.py b/src/importer/sources/steam_source.py index 9a45270..561d843 100644 --- a/src/importer/sources/steam_source.py +++ b/src/importer/sources/steam_source.py @@ -110,7 +110,7 @@ class SteamSourceIterator(SourceIterator): class SteamSource(URLExecutableSource): - name = "Steam" + name = _("Steam") available_on = {"linux", "win32"} iterator_class = SteamSourceIterator url_format = "steam://rungameid/{game_id}"