diff --git a/po/POTFILES b/po/POTFILES index f61111c8..451ca793 100644 --- a/po/POTFILES +++ b/po/POTFILES @@ -75,4 +75,5 @@ src/utils/web.vala src/utils/system.vala src/main.vala src/translatables.vala +src/cli/cli.vala data/ui/gtk/help-overlay.ui \ No newline at end of file diff --git a/po/ar.po b/po/ar.po index 5dbb6de4..ec162af4 100644 --- a/po/ar.po +++ b/po/ar.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: com.vysp3r.ProtonPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2026-02-03 11:54+0000\n" "Last-Translator: Mujtaba-Alsaleh \n" "Language-Team: Arabic [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "أظهر المُثبَت فقط" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "أظهر المُثبَت فقط" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "أظهر المُثبَت فقط" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -876,10 +1088,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "خروج" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "محدث بالفعل لآخر نسخة %s" - #~ msgid "Up-to-date" #~ msgstr "محدث" diff --git a/po/be.po b/po/be.po index c8649d79..b7ed6c5d 100644 --- a/po/be.po +++ b/po/be.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: com.vysp3r.ProtonPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2024-05-31 16:22+0000\n" "Last-Translator: Yahor \n" "Language-Team: Belarusian [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "Толькі ўсталяваныя" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "Толькі ўсталяваныя" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "Толькі ўсталяваныя" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -976,10 +1185,6 @@ msgstr "" #~ "Просты менеджэр інструментаў сумяшчальнасці на базе Wine і Proton для " #~ "GNOME" -#, fuzzy -#~ msgid "Installing" -#~ msgstr "Толькі ўсталяваныя" - #, fuzzy, c-format #~ msgid "The installation of %s has begun." #~ msgstr "Усталяванне " diff --git a/po/bs.po b/po/bs.po index 0ac4d48f..aa977a73 100644 --- a/po/bs.po +++ b/po/bs.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: com.vysp3r.ProtonPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2025-07-11 14:50+0000\n" "Last-Translator: SecularSteve \n" "Language-Team: Bosnian [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "_Upravo instalirano" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "_Upravo instalirano" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "_Upravo instalirano" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -910,10 +1121,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "Izlazi" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s je već ažuriran." - #~ msgid "Up-to-date" #~ msgstr "Ažurirano" diff --git a/po/com.vysp3r.ProtonPlus.pot b/po/com.vysp3r.ProtonPlus.pot index f8dfac3b..0d7d3f3f 100644 --- a/po/com.vysp3r.ProtonPlus.pot +++ b/po/com.vysp3r.ProtonPlus.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: com.vysp3r.ProtonPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -831,6 +831,212 @@ msgid "" "top of Vulkan." msgstr "" +#: src/cli/cli.vala:61 +#, c-format +msgid "Error: Unknown command '%s'\n" +msgstr "" + +#: src/cli/cli.vala:69 +msgid "Detected launchers:\n" +msgstr "" + +#: src/cli/cli.vala:81 +#, c-format +msgid "Installed runners for %s:\n" +msgstr "" + +#: src/cli/cli.vala:94 +msgid "No runners installed\n" +msgstr "" + +#: src/cli/cli.vala:167 +#, c-format +msgid "Error: Runner '%s' does not support 'latest' installation\n" +msgstr "" + +#: src/cli/cli.vala:187 +#, c-format +msgid "Installing %s Latest...\n" +msgstr "" + +#: src/cli/cli.vala:189 +#, c-format +msgid "Successfully installed %s Latest\n" +msgstr "" + +#: src/cli/cli.vala:189 src/cli/cli.vala:214 +msgid "Error: Installation failed\n" +msgstr "" + +#: src/cli/cli.vala:200 +#, c-format +msgid "Available releases for %s:\n" +msgstr "" + +#: src/cli/cli.vala:212 +#, c-format +msgid "Installing %s...\n" +msgstr "" + +#: src/cli/cli.vala:214 +#, c-format +msgid "Successfully installed %s\n" +msgstr "" + +#: src/cli/cli.vala:221 src/cli/cli.vala:242 +#, c-format +msgid "No installed releases found for %s\n" +msgstr "" + +#: src/cli/cli.vala:225 +#, c-format +msgid "Installed releases for %s:\n" +msgstr "" + +#: src/cli/cli.vala:230 +msgid "Select release number" +msgstr "" + +#: src/cli/cli.vala:246 +#, c-format +msgid "Uninstalling all releases for %s...\n" +msgstr "" + +#: src/cli/cli.vala:254 +#, c-format +msgid "Uninstalling all releases for launcher %s...\n" +msgstr "" + +#: src/cli/cli.vala:261 +#, c-format +msgid "Uninstalled %s\n" +msgstr "" + +#: src/cli/cli.vala:271 +#, c-format +msgid "Uninstalling %s...\n" +msgstr "" + +#: src/cli/cli.vala:273 +#, c-format +msgid "Successfully uninstalled %s\n" +msgstr "" + +#: src/cli/cli.vala:273 +msgid "Error: Uninstallation failed\n" +msgstr "" + +#: src/cli/cli.vala:278 +msgid "Updating all runners...\n" +msgstr "" + +#: src/cli/cli.vala:284 +#, c-format +msgid "Updating runners for %s...\n" +msgstr "" + +#: src/cli/cli.vala:299 src/cli/cli.vala:354 +#, c-format +msgid "Successfully updated %s\n" +msgstr "" + +#: src/cli/cli.vala:302 src/cli/cli.vala:358 +#, c-format +msgid "Already up to date: %s\n" +msgstr "" + +#: src/cli/cli.vala:305 src/cli/cli.vala:361 +#, c-format +msgid "Error: Failed to update %s\n" +msgstr "" + +#: src/cli/cli.vala:344 +msgid "Already up to date\n" +msgstr "" + +#: src/cli/cli.vala:369 +#, c-format +msgid "Updating %s...\r" +msgstr "" + +#: src/cli/cli.vala:374 +msgid "\r\r" +msgstr "" + +#: src/cli/cli.vala:381 +msgid "Error: Failed to load launchers\n" +msgstr "" + +#: src/cli/cli.vala:390 +msgid "Error: Failed to load releases\n" +msgstr "" + +#: src/cli/cli.vala:401 +#, c-format +msgid "Error: Launcher '%s' not found\n" +msgstr "" + +#: src/cli/cli.vala:414 +#, c-format +msgid "Error: Runner '%s' not found\n" +msgstr "" + +#: src/cli/cli.vala:453 +#, c-format +msgid "Usage: %s\n" +msgstr "" + +#: src/cli/cli.vala:465 +msgid "Error: Invalid selection\n" +msgstr "" + +#: src/cli/cli.vala:472 +msgid "" +"Usage: protonplus [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +msgid "List launchers or installed runners\n" +msgstr "" + +#: src/cli/cli.vala:477 +msgid "Install runner\n" +msgstr "" + +#: src/cli/cli.vala:478 +msgid "Uninstall runner\n" +msgstr "" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" diff --git a/po/cs.po b/po/cs.po index 9e02bce3..b8c67f82 100644 --- a/po/cs.po +++ b/po/cs.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: com.vysp3r.ProtonPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2026-01-11 17:01+0000\n" "Last-Translator: Valentin Ljuba <7fnndt50@anonaddy.me>\n" "Language-Team: Czech [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "Zobrazit pouze nainstalované" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "Zobrazit pouze nainstalované" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "Zobrazit pouze nainstalované" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -907,10 +1118,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "Ukončit" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s je již aktuální." - #~ msgid "Up-to-date" #~ msgstr "Aktuální" @@ -1015,9 +1222,6 @@ msgstr "Ukončit" #~ msgid "Closing in" #~ msgstr "Zavírá se" -#~ msgid "Installing" -#~ msgstr "Instaluje se" - #, c-format #~ msgid "The installation of %s has begun." #~ msgstr "Instalace %s byla zahájena." diff --git a/po/de.po b/po/de.po index 88573198..3cf733cc 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: com.vysp3r.ProtonPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2026-01-03 08:56+0100\n" "Last-Translator: Christian Lauinger \n" "Language-Team: German [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "Zeige installierte Ausführungswerkzeuge" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "Zeige installierte Ausführungswerkzeuge" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "Zeige installierte Ausführungswerkzeuge" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -917,10 +1129,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "Beenden" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s ist schon auf dem neuesten Stand." - #~ msgid "Up-to-date" #~ msgstr "Auf dem neuesten Stand" @@ -1053,9 +1261,6 @@ msgstr "Beenden" #~ msgid "Closing in" #~ msgstr "Schließe in" -#~ msgid "Installing" -#~ msgstr "Installiere" - #, c-format #~ msgid "The installation of %s has begun." #~ msgstr "Die Installation von %s hat begonnen." diff --git a/po/es.po b/po/es.po index e01a9e9c..7da99a36 100644 --- a/po/es.po +++ b/po/es.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2026-02-06 17:01+0000\n" "Last-Translator: Luis Miguel \n" "Language-Team: Spanish [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +#, fuzzy +msgid "Show version\n" +msgstr "Versión" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "Mostrar ejecutores instalados" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "Mostrar ejecutores instalados" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "Mostrar ejecutores instalados" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -910,10 +1123,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "Salir" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s ya está actualizado." - #~ msgid "Up-to-date" #~ msgstr "Actualizado" @@ -1016,10 +1225,6 @@ msgstr "Salir" #~ msgid "Closing in" #~ msgstr "Acercándose" -#, fuzzy -#~ msgid "Installing" -#~ msgstr "Instalando" - #, fuzzy, c-format #~ msgid "The installation of %s has begun." #~ msgstr "La instalación de % ha comenzado." @@ -1165,9 +1370,6 @@ msgstr "Salir" #~ msgid "Style" #~ msgstr "Estilos" -#~ msgid "Version" -#~ msgstr "Versión" - #~ msgid "Info" #~ msgstr "Info" diff --git a/po/fi.po b/po/fi.po index 655007f6..a13e5bad 100644 --- a/po/fi.po +++ b/po/fi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: com.vysp3r.ProtonPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2025-08-21 19:02+0000\n" "Last-Translator: Linus Virtanen \n" "Language-Team: Finnish [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "Näytä vain asennetut" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "Näytä vain asennetut" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "Näytä vain asennetut" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -906,10 +1117,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "Lopeta" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s on jo päivitetty ajantasalle." - #~ msgid "Up-to-date" #~ msgstr "Päivitetty" diff --git a/po/fr.po b/po/fr.po index fbf0fbec..bdd032ff 100644 --- a/po/fr.po +++ b/po/fr.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2026-01-04 06:01+0000\n" "Last-Translator: MrBretzel \n" "Language-Team: French [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +#, fuzzy +msgid "Show version\n" +msgstr "Version" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "Afficher les outils de compatibilité installés" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "Afficher les outils de compatibilité installés" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "Afficher les outils de compatibilité installés" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -908,10 +1121,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "Quitter" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s est déjà à jour." - #~ msgid "Up-to-date" #~ msgstr "À jour" @@ -1019,9 +1228,6 @@ msgstr "Quitter" #~ msgid "Closing in" #~ msgstr "Fermeture dans" -#~ msgid "Installing" -#~ msgstr "Installation" - #, c-format #~ msgid "The installation of %s has begun." #~ msgstr "L’installation de %s à commencé." @@ -1166,9 +1372,6 @@ msgstr "Quitter" #~ msgid "Style" #~ msgstr "Styles" -#~ msgid "Version" -#~ msgstr "Version" - #~ msgid "Info" #~ msgstr "Info" diff --git a/po/hr.po b/po/hr.po index a443bf82..94d18266 100644 --- a/po/hr.po +++ b/po/hr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: com.vysp3r.ProtonPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2025-07-11 14:50+0000\n" "Last-Translator: SecularSteve \n" "Language-Team: Croatian [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "_Samo instalirano" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "_Samo instalirano" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "_Samo instalirano" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -907,10 +1118,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "Izadi" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s je već ažuriran." - #~ msgid "Up-to-date" #~ msgstr "Ažurno" diff --git a/po/id.po b/po/id.po index 69d9303b..22f0f6a2 100644 --- a/po/id.po +++ b/po/id.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2025-07-20 07:02+0000\n" "Last-Translator: Mie \n" "Language-Team: Indonesian [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +#, fuzzy +msgid "Show version\n" +msgstr "Versi" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "Tampilkan yang terpasang saja" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "Tampilkan yang terpasang saja" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "Tampilkan yang terpasang saja" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -910,10 +1122,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "Keluar" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s sudah diperbarui." - #~ msgid "Up-to-date" #~ msgstr "Terbaru" @@ -1037,9 +1245,6 @@ msgstr "Keluar" #~ msgid "Closing in" #~ msgstr "Menutup" -#~ msgid "Installing" -#~ msgstr "Memasang" - #, c-format #~ msgid "The installation of %s has begun." #~ msgstr "Pemasangan %s telah dimulai." @@ -1183,9 +1388,6 @@ msgstr "Keluar" #~ msgid "Style" #~ msgstr "Gaya" -#~ msgid "Version" -#~ msgstr "Versi" - #~ msgid "Info" #~ msgstr "Informasi" diff --git a/po/it.po b/po/it.po index a0d07227..ed1714fc 100644 --- a/po/it.po +++ b/po/it.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2025-11-17 15:51+0000\n" "Last-Translator: Alessandro Marigliano \n" "Language-Team: Italian [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +#, fuzzy +msgid "Show version\n" +msgstr "Versione" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "Mostra solo installati" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "Mostra solo installati" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "Mostra solo installati" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -917,10 +1129,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "Esci" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s è già all'ultima versione." - #~ msgid "Up-to-date" #~ msgstr "Aggiornato" @@ -1019,10 +1227,6 @@ msgstr "Esci" #~ msgid "Check to modify the compatibility tool" #~ msgstr "Strumento di compatibilità" -#, fuzzy -#~ msgid "Installing" -#~ msgstr "Solo installato" - #, fuzzy, c-format #~ msgid "The installation of %s has begun." #~ msgstr "L'installazione di " @@ -1155,9 +1359,6 @@ msgstr "Esci" #~ msgid "Style" #~ msgstr "Stile" -#~ msgid "Version" -#~ msgstr "Versione" - #~ msgid "Info" #~ msgstr "Info" diff --git a/po/ja.po b/po/ja.po index 5c7ab166..5f26b6b4 100644 --- a/po/ja.po +++ b/po/ja.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: com.vysp3r.ProtonPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2025-11-25 10:51+0000\n" "Last-Translator: camegone \n" "Language-Team: Japanese [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +msgid "List launchers or installed runners\n" +msgstr "" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "インストール済み" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "インストール先のディレクトリを開く" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -887,10 +1098,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "アプリの終了" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s は既に最新です。" - #~ msgid "Up-to-date" #~ msgstr "最新" diff --git a/po/ka.po b/po/ka.po index 7ac12700..c46292f5 100644 --- a/po/ka.po +++ b/po/ka.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: com.vysp3r.ProtonPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2026-01-09 12:01+0000\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "დაყენებული დამხმარე პროცესების ჩვენება" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "დაყენებული დამხმარე პროცესების ჩვენება" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "დაყენებული დამხმარე პროცესების ჩვენება" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" diff --git a/po/nl.po b/po/nl.po index bf0bb441..bd0cb6e6 100644 --- a/po/nl.po +++ b/po/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: com.vysp3r.ProtonPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2025-07-21 02:03+0000\n" "Last-Translator: WeAreGeek \n" "Language-Team: Dutch [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "Toon alleen geïnstalleerde" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "Toon alleen geïnstalleerde" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "Toon alleen geïnstalleerde" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -916,10 +1127,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "Afsluiten" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s is al bijgewerkt." - #~ msgid "Up-to-date" #~ msgstr "Bijgewerkt" diff --git a/po/pl.po b/po/pl.po index 02f9d603..bd3aa62b 100644 --- a/po/pl.po +++ b/po/pl.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2025-09-04 02:01+0000\n" "Last-Translator: Beniamin Remis \n" "Language-Team: Polish [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "Tylko zainstalowane" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "Tylko zainstalowane" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "Tylko zainstalowane" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -913,10 +1124,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s jest już aktualne." - #~ msgid "Up-to-date" #~ msgstr "Aktualne" @@ -1025,10 +1232,6 @@ msgstr "" #~ msgid "Check to modify the compatibility tool" #~ msgstr "Narzędzie kompatybilności do uruchamiania gier Windows na Linuxie" -#, fuzzy -#~ msgid "Installing" -#~ msgstr "Tylko zainstalowane" - #, fuzzy, c-format #~ msgid "The installation of %s has begun." #~ msgstr "Instalacja " diff --git a/po/pt.po b/po/pt.po index 1e848bf7..5ed3754e 100644 --- a/po/pt.po +++ b/po/pt.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2026-02-15 11:09+0000\n" "Last-Translator: Henrique Araujo De Almeida \n" "Language-Team: Portuguese [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +#, fuzzy +msgid "Show version\n" +msgstr "Versão" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "Mostrar executadores instalados" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "Mostrar executadores instalados" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "Mostrar executadores instalados" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -913,10 +1126,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "Sair" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s já está atualizado." - #~ msgid "Up-to-date" #~ msgstr "%s está atualizado" @@ -1026,9 +1235,6 @@ msgstr "Sair" #~ msgid "Closing in" #~ msgstr "Fechando" -#~ msgid "Installing" -#~ msgstr "Instalando" - #, c-format #~ msgid "The installation of %s has begun." #~ msgstr "A instalação de %s começou." @@ -1175,9 +1381,6 @@ msgstr "Sair" #~ msgid "Style" #~ msgstr "Estilos" -#~ msgid "Version" -#~ msgstr "Versão" - #~ msgid "Info" #~ msgstr "Info" diff --git a/po/ru.po b/po/ru.po index 3b336ad2..e896fe65 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2025-11-30 21:00+0000\n" "Last-Translator: serg \n" "Language-Team: Russian [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +#, fuzzy +msgid "Show version\n" +msgstr "Версия" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "Показать установленные раннеры" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "Показать установленные раннеры" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "Показать установленные раннеры" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -900,10 +1113,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "Выход" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s уже обновлен." - #~ msgid "Up-to-date" #~ msgstr "Актуальный" @@ -1019,10 +1228,6 @@ msgstr "Выход" #~ msgid "Check to modify the compatibility tool" #~ msgstr "Инструмент совместимости" -#, fuzzy -#~ msgid "Installing" -#~ msgstr "Установить %s" - #, c-format #~ msgid "The installation of %s has begun." #~ msgstr "Установка %s началась." @@ -1173,9 +1378,6 @@ msgstr "Выход" #~ "отключить это предупреждение нажмите 'да'. Или выберите 'нет', чтобы " #~ "сохранить его." -#~ msgid "Version" -#~ msgstr "Версия" - #~ msgid "Info" #~ msgstr "Информация" diff --git a/po/sr@latin.po b/po/sr@latin.po index 8e17f967..71d9dcd3 100644 --- a/po/sr@latin.po +++ b/po/sr@latin.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: com.vysp3r.ProtonPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2025-07-11 14:50+0000\n" "Last-Translator: SecularSteve \n" "Language-Team: Serbian (Latin script) [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "_Upravo instalirano" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "_Upravo instalirano" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "_Upravo instalirano" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -907,10 +1118,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "Izađi" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s je već ažuriran." - #~ msgid "Up-to-date" #~ msgstr "Ažurirano" diff --git a/po/sv.po b/po/sv.po index 9598bfb2..c1259277 100644 --- a/po/sv.po +++ b/po/sv.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: com.vysp3r.ProtonPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2024-10-03 01:10+0200\n" "Last-Translator: Johnny Arcitec \n" "Language-Team: Swedish [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "Endast Installerade" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "Endast Installerade" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "Endast Installerade" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -899,10 +1109,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s är redan senaste versionen." - #, fuzzy #~ msgid "Up-to-date" #~ msgstr "%s är redan senaste versionen" @@ -950,10 +1156,6 @@ msgstr "" #~ msgid "Check to modify the compatibility tool" #~ msgstr "En modern kompatibilitetsverktygshanterare för Linux." -#, fuzzy -#~ msgid "Installing" -#~ msgstr "Installera %s" - #, c-format #~ msgid "The installation of %s has begun." #~ msgstr "Installationen av %s har påbörjats." diff --git a/po/uk.po b/po/uk.po index bf41ff33..d211712e 100644 --- a/po/uk.po +++ b/po/uk.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2025-09-22 22:01+0000\n" "Last-Translator: Damglador \n" "Language-Team: Ukrainian [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "Лише встановлені" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "Лише встановлені" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "Лише встановлені" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -912,10 +1123,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "Вийти" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s вже оновлено." - #~ msgid "Up-to-date" #~ msgstr "Актуально" diff --git a/po/zh_CN.po b/po/zh_CN.po index ce117bf1..3f365348 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2026-02-02 22:23+0800\n" "Last-Translator: nick.exe \n" "Language-Team: CodeBay.IN\n" @@ -847,6 +847,219 @@ msgid "" "top of Vulkan." msgstr "Wine VKD3D 的特化版,旨在 Vulkan 之上实作完整的 Direct3D 12 API。" +#: src/cli/cli.vala:61 +#, c-format +msgid "Error: Unknown command '%s'\n" +msgstr "" + +#: src/cli/cli.vala:69 +#, fuzzy +msgid "Detected launchers:\n" +msgstr "未支援的启动器" + +#: src/cli/cli.vala:81 +#, fuzzy, c-format +msgid "Installed runners for %s:\n" +msgstr "显示已安装的运行器" + +#: src/cli/cli.vala:94 +msgid "No runners installed\n" +msgstr "" + +#: src/cli/cli.vala:167 +#, c-format +msgid "Error: Runner '%s' does not support 'latest' installation\n" +msgstr "" + +#: src/cli/cli.vala:187 +#, c-format +msgid "Installing %s Latest...\n" +msgstr "" + +#: src/cli/cli.vala:189 +#, c-format +msgid "Successfully installed %s Latest\n" +msgstr "" + +#: src/cli/cli.vala:189 src/cli/cli.vala:214 +msgid "Error: Installation failed\n" +msgstr "" + +#: src/cli/cli.vala:200 +#, c-format +msgid "Available releases for %s:\n" +msgstr "" + +#: src/cli/cli.vala:212 +#, fuzzy, c-format +msgid "Installing %s...\n" +msgstr "正在安装" + +#: src/cli/cli.vala:214 +#, c-format +msgid "Successfully installed %s\n" +msgstr "" + +#: src/cli/cli.vala:221 src/cli/cli.vala:242 +#, fuzzy, c-format +msgid "No installed releases found for %s\n" +msgstr "未找到 %s 的更新" + +#: src/cli/cli.vala:225 +#, c-format +msgid "Installed releases for %s:\n" +msgstr "" + +#: src/cli/cli.vala:230 +msgid "Select release number" +msgstr "" + +#: src/cli/cli.vala:246 +#, c-format +msgid "Uninstalling all releases for %s...\n" +msgstr "" + +#: src/cli/cli.vala:254 +#, c-format +msgid "Uninstalling all releases for launcher %s...\n" +msgstr "" + +#: src/cli/cli.vala:261 +#, fuzzy, c-format +msgid "Uninstalled %s\n" +msgstr "安装 %s" + +#: src/cli/cli.vala:271 +#, fuzzy, c-format +msgid "Uninstalling %s...\n" +msgstr "正在安装" + +#: src/cli/cli.vala:273 +#, c-format +msgid "Successfully uninstalled %s\n" +msgstr "" + +#: src/cli/cli.vala:273 +msgid "Error: Uninstallation failed\n" +msgstr "" + +#: src/cli/cli.vala:278 +msgid "Updating all runners...\n" +msgstr "" + +#: src/cli/cli.vala:284 +#, c-format +msgid "Updating runners for %s...\n" +msgstr "" + +#: src/cli/cli.vala:299 src/cli/cli.vala:354 +#, c-format +msgid "Successfully updated %s\n" +msgstr "" + +#: src/cli/cli.vala:302 src/cli/cli.vala:358 +#, fuzzy, c-format +msgid "Already up to date: %s\n" +msgstr "%s 已为最新版本。" + +#: src/cli/cli.vala:305 src/cli/cli.vala:361 +#, c-format +msgid "Error: Failed to update %s\n" +msgstr "" + +#: src/cli/cli.vala:344 +#, fuzzy +msgid "Already up to date\n" +msgstr "%s 已为最新版本。" + +#: src/cli/cli.vala:369 +#, fuzzy, c-format +msgid "Updating %s...\r" +msgstr "正在更新 %s" + +#: src/cli/cli.vala:374 +msgid "\r\r" +msgstr "" + +#: src/cli/cli.vala:381 +#, fuzzy +msgid "Error: Failed to load launchers\n" +msgstr "无法加载启动器" + +#: src/cli/cli.vala:390 +msgid "Error: Failed to load releases\n" +msgstr "" + +#: src/cli/cli.vala:401 +#, c-format +msgid "Error: Launcher '%s' not found\n" +msgstr "" + +#: src/cli/cli.vala:414 +#, c-format +msgid "Error: Runner '%s' not found\n" +msgstr "" + +#: src/cli/cli.vala:453 +#, c-format +msgid "Usage: %s\n" +msgstr "" + +#: src/cli/cli.vala:465 +msgid "Error: Invalid selection\n" +msgstr "" + +#: src/cli/cli.vala:472 +msgid "" +"Usage: protonplus [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +#, fuzzy +msgid "Show version\n" +msgstr "版本" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "显示已安装的运行器" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "显示已安装的运行器" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "显示已安装的运行器" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -862,10 +1075,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "退出" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s 已为最新版本。" - #~ msgid "Up-to-date" #~ msgstr "最新版本" @@ -960,9 +1169,6 @@ msgstr "退出" #~ msgid "Closing in" #~ msgstr "关闭" -#~ msgid "Installing" -#~ msgstr "正在安装" - #, c-format #~ msgid "The installation of %s has begun." #~ msgstr "%s 已开始安装" @@ -1100,9 +1306,6 @@ msgstr "退出" #~ msgid "Style" #~ msgstr "风格" -#~ msgid "Version" -#~ msgstr "版本" - #~ msgid "Info" #~ msgstr "关于" diff --git a/po/zh_TW.po b/po/zh_TW.po index ff7235c7..17e71cdc 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: com.vysp3r.ProtonPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-31 13:37-0500\n" +"POT-Creation-Date: 2026-02-16 17:06-0500\n" "PO-Revision-Date: 2026-02-02 22:20+0800\n" "Last-Translator: nick.exe \n" "Language-Team: CodeBay.IN\n" @@ -847,6 +847,218 @@ msgid "" "top of Vulkan." msgstr "Wine VKD3D 的特化版,旨在 Vulkan 之上實作完整的 Direct3D 12 API。" +#: src/cli/cli.vala:61 +#, c-format +msgid "Error: Unknown command '%s'\n" +msgstr "" + +#: src/cli/cli.vala:69 +#, fuzzy +msgid "Detected launchers:\n" +msgstr "未支援的啟動器" + +#: src/cli/cli.vala:81 +#, fuzzy, c-format +msgid "Installed runners for %s:\n" +msgstr "顯示已安裝的運行器" + +#: src/cli/cli.vala:94 +msgid "No runners installed\n" +msgstr "" + +#: src/cli/cli.vala:167 +#, c-format +msgid "Error: Runner '%s' does not support 'latest' installation\n" +msgstr "" + +#: src/cli/cli.vala:187 +#, c-format +msgid "Installing %s Latest...\n" +msgstr "" + +#: src/cli/cli.vala:189 +#, c-format +msgid "Successfully installed %s Latest\n" +msgstr "" + +#: src/cli/cli.vala:189 src/cli/cli.vala:214 +msgid "Error: Installation failed\n" +msgstr "" + +#: src/cli/cli.vala:200 +#, c-format +msgid "Available releases for %s:\n" +msgstr "" + +#: src/cli/cli.vala:212 +#, fuzzy, c-format +msgid "Installing %s...\n" +msgstr "正在安裝" + +#: src/cli/cli.vala:214 +#, c-format +msgid "Successfully installed %s\n" +msgstr "" + +#: src/cli/cli.vala:221 src/cli/cli.vala:242 +#, fuzzy, c-format +msgid "No installed releases found for %s\n" +msgstr "未找到 %s 的更新" + +#: src/cli/cli.vala:225 +#, c-format +msgid "Installed releases for %s:\n" +msgstr "" + +#: src/cli/cli.vala:230 +msgid "Select release number" +msgstr "" + +#: src/cli/cli.vala:246 +#, c-format +msgid "Uninstalling all releases for %s...\n" +msgstr "" + +#: src/cli/cli.vala:254 +#, c-format +msgid "Uninstalling all releases for launcher %s...\n" +msgstr "" + +#: src/cli/cli.vala:261 +#, fuzzy, c-format +msgid "Uninstalled %s\n" +msgstr "安裝 %s" + +#: src/cli/cli.vala:271 +#, fuzzy, c-format +msgid "Uninstalling %s...\n" +msgstr "正在安裝" + +#: src/cli/cli.vala:273 +#, c-format +msgid "Successfully uninstalled %s\n" +msgstr "" + +#: src/cli/cli.vala:273 +msgid "Error: Uninstallation failed\n" +msgstr "" + +#: src/cli/cli.vala:278 +msgid "Updating all runners...\n" +msgstr "" + +#: src/cli/cli.vala:284 +#, c-format +msgid "Updating runners for %s...\n" +msgstr "" + +#: src/cli/cli.vala:299 src/cli/cli.vala:354 +#, c-format +msgid "Successfully updated %s\n" +msgstr "" + +#: src/cli/cli.vala:302 src/cli/cli.vala:358 +#, fuzzy, c-format +msgid "Already up to date: %s\n" +msgstr "%s 已為最新版本。" + +#: src/cli/cli.vala:305 src/cli/cli.vala:361 +#, c-format +msgid "Error: Failed to update %s\n" +msgstr "" + +#: src/cli/cli.vala:344 +#, fuzzy +msgid "Already up to date\n" +msgstr "%s 已為最新版本。" + +#: src/cli/cli.vala:369 +#, fuzzy, c-format +msgid "Updating %s...\r" +msgstr "正在更新 %s" + +#: src/cli/cli.vala:374 +msgid "\r\r" +msgstr "" + +#: src/cli/cli.vala:381 +#, fuzzy +msgid "Error: Failed to load launchers\n" +msgstr "無法載入啟動器" + +#: src/cli/cli.vala:390 +msgid "Error: Failed to load releases\n" +msgstr "" + +#: src/cli/cli.vala:401 +#, c-format +msgid "Error: Launcher '%s' not found\n" +msgstr "" + +#: src/cli/cli.vala:414 +#, c-format +msgid "Error: Runner '%s' not found\n" +msgstr "" + +#: src/cli/cli.vala:453 +#, c-format +msgid "Usage: %s\n" +msgstr "" + +#: src/cli/cli.vala:465 +msgid "Error: Invalid selection\n" +msgstr "" + +#: src/cli/cli.vala:472 +msgid "" +"Usage: protonplus [options]\n" +"\n" +msgstr "" + +#: src/cli/cli.vala:473 +msgid "Commands:\n" +msgstr "" + +#: src/cli/cli.vala:474 +msgid "Show version\n" +msgstr "" + +#: src/cli/cli.vala:475 +msgid "Show this help\n" +msgstr "" + +#: src/cli/cli.vala:476 +#, fuzzy +msgid "List launchers or installed runners\n" +msgstr "顯示已安裝的運行器" + +#: src/cli/cli.vala:477 +#, fuzzy +msgid "Install runner\n" +msgstr "顯示已安裝的運行器" + +#: src/cli/cli.vala:478 +#, fuzzy +msgid "Uninstall runner\n" +msgstr "顯示已安裝的運行器" + +#: src/cli/cli.vala:479 +msgid "Update runner\n" +msgstr "" + +#: src/cli/cli.vala:483 +msgid "" +"\n" +"Available launchers:\n" +msgstr "" + +#: src/cli/cli.vala:490 +#, c-format +msgid "" +"\n" +"Available runners for %s:\n" +msgstr "" + #: data/ui/gtk/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" @@ -862,10 +1074,6 @@ msgctxt "shortcut window" msgid "Quit" msgstr "離開" -#, c-format -#~ msgid "%s is already up-to-date." -#~ msgstr "%s 已為最新版本。" - #~ msgid "Up-to-date" #~ msgstr "最新版本" @@ -981,9 +1189,6 @@ msgstr "離開" #~ msgid "Closing in" #~ msgstr "即將關閉..." -#~ msgid "Installing" -#~ msgstr "正在安裝" - #, c-format #~ msgid "The installation of %s has begun." #~ msgstr "%s 的安裝已開始。" diff --git a/src/cli/cli.vala b/src/cli/cli.vala new file mode 100644 index 00000000..1c7f9b9b --- /dev/null +++ b/src/cli/cli.vala @@ -0,0 +1,498 @@ +namespace ProtonPlus.CLI { + private const string CMD_VERSION = "version"; + private const string CMD_HELP = "help"; + private const string CMD_LIST = "list"; + private const string CMD_INSTALL = "install"; + private const string CMD_UNINSTALL = "uninstall"; + private const string CMD_UPDATE = "update"; + + private const string OPT_LATEST = "latest"; + private const string OPT_ALL = "all"; + + private class Output { + public static void info (string format, ...) { + var args = va_list (); + print (format.vprintf (args)); + } + + public static void success (string format, ...) { + var args = va_list (); + print (format.vprintf (args)); + } + + public static void error (string format, ...) { + var args = va_list (); + printerr (format.vprintf (args)); + } + } + + public class Handler { + private List launchers; + + public async int run (string[] args) { + if (args.length < 2) { + print_usage (); + return 1; + } + + yield Globals.load (); + + if (!yield load_launchers ()) { + return 1; + } + + var command = args[1]; + switch (command) { + case CMD_VERSION: + Output.info ("ProtonPlus %s\n", Config.APP_VERSION); + return 0; + case CMD_HELP: + print_usage (); + return 0; + case CMD_LIST: + return handle_list (args); + case CMD_INSTALL: + return yield handle_install (args); + case CMD_UNINSTALL: + return yield handle_uninstall (args); + case CMD_UPDATE: + return yield handle_update (args); + default: + Output.error (_("Error: Unknown command '%s'\n"), command); + print_usage (); + return 1; + } + } + + private int handle_list (string[] args) { + if (args.length < 3) { + Output.info (_("Detected launchers:\n")); + foreach (var launcher in launchers) { + Output.info (" %s (%s)\n", get_launcher_id (launcher), launcher.title); + } + return 0; + } + + var launcher = find_launcher (args[2]); + if (launcher == null) { + return 1; + } + + Output.info (_("Installed runners for %s:\n"), launcher.title); + var found = false; + foreach (var group in launcher.groups) { + var installed = group.get_compatibility_tool_directories (); + if (installed.length () > 0) { + Output.info ("\n%s:\n", group.title); + foreach (var dir in installed) { + Output.info (" %s\n", dir); + found = true; + } + } + } + if (!found) { + Output.info (_("No runners installed\n")); + } + return 0; + } + + private async int handle_install (string[] args) { + if (!validate_args (args, 4, "protonplus install [latest]")) { + return 1; + } + + var launcher = find_launcher (args[2]); + if (launcher == null) { + return 1; + } + + var runner = find_runner (launcher, args[3]); + if (runner == null) { + return 1; + } + + var use_latest = args.length >= 5 && args[4] == OPT_LATEST; + return use_latest ? yield install_latest (runner) : yield install_interactive (runner); + } + + private async int handle_uninstall (string[] args) { + if (!validate_args (args, 4, "protonplus uninstall [all]")) { + return 1; + } + + var launcher = find_launcher (args[2]); + if (launcher == null) { + return 1; + } + + if (args[3] == OPT_ALL) { + return yield uninstall_launcher_all (launcher); + } + + var runner = find_runner (launcher, args[3]); + if (runner == null) { + return 1; + } + + var uninstall_all = args.length >= 5 && args[4] == OPT_ALL; + return uninstall_all ? yield uninstall_runner_all (runner) : yield uninstall_interactive (runner); + } + + private async int handle_update (string[] args) { + if (!validate_args (args, 3, "protonplus update [runner_id]")) { + return 1; + } + + if (args[2] == OPT_ALL) { + return yield update_all (); + } + + var launcher = find_launcher (args[2]); + if (launcher == null) { + return 1; + } + + if (args.length >= 4) { + var runner = find_runner (launcher, args[3]); + if (runner == null) { + return 1; + } + return yield update_runner (runner); + } + return yield update_launcher (launcher); + } + + private async int install_latest (Models.Runner runner) { + if (!runner.has_latest_support) { + Output.error (_("Error: Runner '%s' does not support 'latest' installation\n"), runner.title); + return 1; + } + + var basic_runner = runner as Models.Runners.Basic; + var code = yield load_runner_releases (basic_runner); + if (code != ReturnCode.RELEASES_LOADED || basic_runner.releases.length () == 0) { + return 1; + } + + var release = basic_runner.releases.nth_data (0) as Models.Releases.Basic; + var latest_release = new Models.Releases.Latest ( + basic_runner, + "%s Latest".printf (runner.title), + release.description, + release.release_date, + release.download_url, + release.page_url + ); + + Output.info (_("Installing %s Latest...\n"), runner.title); + var success = yield latest_release.install (); + Output.success (success ? _("Successfully installed %s Latest\n") : _("Error: Installation failed\n"), runner.title); + return success ? 0 : 1; + } + + private async int install_interactive (Models.Runner runner) { + var basic_runner = runner as Models.Runners.Basic; + var code = yield load_runner_releases (basic_runner); + if (code != ReturnCode.RELEASES_LOADED || basic_runner.releases.length () == 0) { + return 1; + } + + Output.info (_("Available releases for %s:\n"), runner.title); + for (var i = 0; i < basic_runner.releases.length (); i++) { + var release = basic_runner.releases.nth_data (i) as Models.Releases.Basic; + Output.info ("%d. %s (%s)\n", i + 1, release.title, release.release_date); + } + + var index = read_user_selection ("Select release number", (int) basic_runner.releases.length ()); + if (index < 0) { + return 1; + } + + var selected = basic_runner.releases.nth_data (index) as Models.Releases.Basic; + Output.info (_("Installing %s...\n"), selected.title); + var success = yield selected.install (); + Output.success (success ? _("Successfully installed %s\n") : _("Error: Installation failed\n"), selected.title); + return success ? 0 : 1; + } + + private async int uninstall_interactive (Models.Runner runner) { + var installed = get_installed_releases (runner); + if (installed.length () == 0) { + Output.info (_("No installed releases found for %s\n"), runner.title); + return 0; + } + + Output.info (_("Installed releases for %s:\n"), runner.title); + for (var i = 0; i < installed.length (); i++) { + Output.info ("%d. %s\n", i + 1, installed.nth_data (i)); + } + + var index = read_user_selection (_("Select release number"), (int) installed.length ()); + if (index < 0) { + return 1; + } + + var release_name = installed.nth_data (index); + return yield uninstall_single_release (runner, release_name); + } + + private async int uninstall_runner_all (Models.Runner runner) { + var installed = get_installed_releases (runner); + if (installed.length () == 0) { + Output.info (_("No installed releases found for %s\n"), runner.title); + return 0; + } + + Output.info (_("Uninstalling all releases for %s...\n"), runner.title); + foreach (var release_name in installed) { + yield uninstall_single_release (runner, release_name); + } + return 0; + } + + private async int uninstall_launcher_all (Models.Launcher launcher) { + Output.info (_("Uninstalling all releases for launcher %s...\n"), launcher.title); + foreach (var group in launcher.groups) { + foreach (var runner in group.runners) { + var installed = get_installed_releases (runner); + foreach (var release_name in installed) { + var release = create_release (runner, release_name); + if (yield release.remove (new Models.Parameters ())) { + Output.success (_("Uninstalled %s\n"), release_name); + } + } + } + } + return 0; + } + + private async int uninstall_single_release (Models.Runner runner, string release_name) { + var release = create_release (runner, release_name); + Output.info (_("Uninstalling %s...\n"), release_name); + var success = yield release.remove (new Models.Parameters ()); + Output.success (success ? _("Successfully uninstalled %s\n") : _("Error: Uninstallation failed\n"), release_name); + return success ? 0 : 1; + } + + private async int update_all () { + Output.info (_("Updating all runners...\n")); + var latest_runners = yield collect_latest_runners (launchers); + return yield update_runner_batch (latest_runners); + } + + private async int update_launcher (Models.Launcher launcher) { + Output.info (_("Updating runners for %s...\n"), launcher.title); + var scoped = new List (); + scoped.append (launcher); + var latest_runners = yield collect_latest_runners (scoped); + return yield update_runner_batch (latest_runners); + } + + private async int update_runner (Models.Runner runner) { + if (!runner.has_latest_support) { + return 1; + } + + var code = yield update_runner_with_progress (runner as Models.Runners.Basic); + switch (code) { + case ReturnCode.RUNNER_UPDATED: + Output.success (_("Successfully updated %s\n"), runner.title); + return 0; + case ReturnCode.NOTHING_TO_UPDATE: + Output.success (_("Already up to date: %s\n"), runner.title); + return 0; + default: + Output.error (_("Error: Failed to update %s\n"), runner.title); + return 1; + } + } + + private async List collect_latest_runners (List scope) { + var latest_runners = new List (); + + foreach (var launcher in scope) { + foreach (var group in launcher.groups) { + var directories = group.get_compatibility_tool_directories (); + + foreach (var runner in group.runners) { + if (!runner.has_latest_support || !(runner is Models.Runners.Basic)) { + continue; + } + + foreach (var directory in directories) { + if (directory == "%s Latest".printf (runner.title)) { + latest_runners.append (runner as Models.Runners.Basic); + continue; + } + + if (directory == "%s Latest Backup".printf (runner.title)) { + yield Utils.Filesystem.delete_directory ( + "%s/%s/%s Latest Backup".printf (launcher.directory, group.directory, runner.title) + ); + continue; + } + } + } + } + } + + return latest_runners; + } + + private async int update_runner_batch (List runners) { + if (runners.length () == 0) { + Output.success (_("Already up to date\n")); + return 0; + } + + var updated_count = 0; + + foreach (var runner in runners) { + var code = yield update_runner_with_progress (runner); + switch (code) { + case ReturnCode.RUNNER_UPDATED: + Output.success (_("Successfully updated %s\n"), runner.title); + updated_count++; + break; + case ReturnCode.NOTHING_TO_UPDATE: + Output.success (_("Already up to date: %s\n"), runner.title); + break; + default: + Output.error (_("Error: Failed to update %s\n"), runner.title); + break; + } + } + return 0; + } + + private async ReturnCode update_runner_with_progress (Models.Runners.Basic runner) { + Output.info (_("Updating %s...\r"), runner.title); + stdout.flush (); + + var code = yield Models.Runner.update_specific_runner (runner); + + Output.info (_("\r\033[2K\r")); + return code; + } + + private async bool load_launchers () { + var success = yield Models.Launcher.get_all (out launchers); + if (!success || launchers == null) { + Output.error (_("Error: Failed to load launchers\n")); + return false; + } + return true; + } + + private async ReturnCode load_runner_releases (Models.Runners.Basic basic_runner) { + var code = yield basic_runner.load (out basic_runner.releases); + if (code != ReturnCode.RELEASES_LOADED || basic_runner.releases.length () == 0) { + Output.error (_("Error: Failed to load releases\n")); + } + return code; + } + + private Models.Launcher? find_launcher (string launcher_id) { + foreach (var launcher in launchers) { + if (get_launcher_id (launcher) == launcher_id) { + return launcher; + } + } + Output.error (_("Error: Launcher '%s' not found\n"), launcher_id); + print_available_launchers (); + return null; + } + + private Models.Runner? find_runner (Models.Launcher launcher, string runner_id) { + foreach (var group in launcher.groups) { + foreach (var runner in group.runners) { + if (get_runner_id (runner) == runner_id) { + return runner; + } + } + } + Output.error (_("Error: Runner '%s' not found\n"), runner_id); + print_available_runners (launcher); + return null; + } + + private List get_installed_releases (Models.Runner runner) { + var directories = runner.group.get_compatibility_tool_directories (); + var installed = new List (); + + foreach (var dir in directories) { + if (dir.has_prefix (runner.title)) { + installed.append (dir); + } + } + return installed; + } + + private string get_launcher_id (Models.Launcher launcher) { + return "%s-%s".printf (launcher.title.down ().replace (" ", "-"), launcher.get_installation_type_title ().down ()); + } + + private string get_runner_id (Models.Runner runner) { + return runner.title.down ().replace (" ", "-"); + } + + private string get_release_path (Models.Runner runner, string release_name) { + return "%s%s/%s".printf (runner.group.launcher.directory, runner.group.directory, release_name); + } + + private Models.Releases.Basic create_release (Models.Runner runner, string release_name) { + return new Models.Releases.Basic.simple ( + runner as Models.Runners.Basic, + release_name, + get_release_path (runner, release_name) + ); + } + + private bool validate_args (string[] args, int min_required, string usage) { + if (args.length < min_required) { + Output.error (_("Usage: %s\n"), usage); + return false; + } + return true; + } + + private int read_user_selection (string prompt, int max) { + stdout.printf ("%s: ", prompt); + stdout.flush (); + var input = stdin.read_line (); + var index = int.parse (input) - 1; + if (index < 0 || index >= max) { + Output.error (_("Error: Invalid selection\n")); + return -1; + } + return index; + } + + private void print_usage () { + Output.info (_("Usage: protonplus [options]\n\n")); + Output.info (_("Commands:\n")); + Output.info (" version " + _("Show version\n")); + Output.info (" help " + _("Show this help\n")); + Output.info (" list [launcher_id] " + _("List launchers or installed runners\n")); + Output.info (" install [latest] " + _("Install runner\n")); + Output.info (" uninstall [all] " + _("Uninstall runner\n")); + Output.info (" update [runner_id] " + _("Update runner\n")); + } + + private void print_available_launchers () { + Output.info (_("\nAvailable launchers:\n")); + foreach (var launcher in launchers) { + Output.info (" %s\n", get_launcher_id (launcher)); + } + } + + private void print_available_runners (Models.Launcher launcher) { + Output.info (_("\nAvailable runners for %s:\n"), launcher.title); + foreach (var group in launcher.groups) { + foreach (var runner in group.runners) { + Output.info (" %s\n", get_runner_id (runner)); + } + } + } + } +} diff --git a/src/main.vala b/src/main.vala index 7425693a..3242da35 100644 --- a/src/main.vala +++ b/src/main.vala @@ -10,6 +10,18 @@ namespace ProtonPlus { Intl.bind_textdomain_codeset (Config.APP_ID, "UTF-8"); Intl.textdomain (Config.APP_ID); + if (args.length > 1) { + var cli = new CLI.Handler (); + var loop = new MainLoop (); + int result = 0; + cli.run.begin (args, (obj, res) => { + result = cli.run.end (res); + loop.quit (); + }); + loop.run (); + return result; + } + var application = new Widgets.Application (); return application.run (args); } diff --git a/src/meson.build b/src/meson.build index 850df440..009e315f 100644 --- a/src/meson.build +++ b/src/meson.build @@ -3,6 +3,8 @@ sources = files( 'globals.vala', 'return-code.vala', + 'cli/cli.vala', + 'widgets/application.vala', 'widgets/status-box.vala', 'widgets/window.vala', diff --git a/src/models/releases/basic.vala b/src/models/releases/basic.vala index 30c67770..6007efb1 100644 --- a/src/models/releases/basic.vala +++ b/src/models/releases/basic.vala @@ -46,7 +46,7 @@ namespace ProtonPlus.Models.Releases { var directory_name_valid = directory_name != ""; var install_directory_valid = FileUtils.test (install_location, FileTest.IS_DIR); - if (title.contains ("Latest") && Widgets.Application.window.updating) { + if (title.contains ("Latest") && Widgets.Application.window != null && Widgets.Application.window.updating) { var backup_directory_name = "%s Backup".printf (directory_name); var backup_directory_valid = FileUtils.test ("%s%s/%s".printf (runner.group.launcher.directory, runner.group.directory, backup_directory_name), FileTest.IS_DIR);