summaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
Diffstat (limited to 'backend')
-rw-r--r--backend/browser.py4
-rw-r--r--backend/loader.py6
-rw-r--r--backend/locales/en-US.json183
-rw-r--r--backend/locales/it-IT.json184
-rw-r--r--backend/utilities.py5
5 files changed, 378 insertions, 4 deletions
diff --git a/backend/browser.py b/backend/browser.py
index 74354edf..db3d2f50 100644
--- a/backend/browser.py
+++ b/backend/browser.py
@@ -209,12 +209,12 @@ class PluginBrowser:
if self.loader.watcher:
self.loader.watcher.disabled = False
- async def request_plugin_install(self, artifact, name, version, hash):
+ async def request_plugin_install(self, artifact, name, version, hash, install_type):
request_id = str(time())
self.install_requests[request_id] = PluginInstallContext(artifact, name, version, hash)
tab = await get_gamepadui_tab()
await tab.open_websocket()
- await tab.evaluate_js(f"DeckyPluginLoader.addPluginInstallPrompt('{name}', '{version}', '{request_id}', '{hash}')")
+ await tab.evaluate_js(f"DeckyPluginLoader.addPluginInstallPrompt('{name}', '{version}', '{request_id}', '{hash}', {install_type})")
async def confirm_plugin_install(self, request_id):
request = self.install_requests.pop(request_id)
diff --git a/backend/loader.py b/backend/loader.py
index a21aad09..8c4c4a7f 100644
--- a/backend/loader.py
+++ b/backend/loader.py
@@ -77,6 +77,7 @@ class Loader:
server_instance.add_routes([
web.get("/frontend/{path:.*}", self.handle_frontend_assets),
+ web.get("/locales/{path:.*}", self.handle_frontend_locales),
web.get("/plugins", self.get_plugins),
web.get("/plugins/{plugin_name}/frontend_bundle", self.handle_frontend_bundle),
web.post("/plugins/{plugin_name}/methods/{method_name}", self.handle_plugin_method_call),
@@ -99,6 +100,11 @@ class Loader:
return web.FileResponse(file, headers={"Cache-Control": "no-cache"})
+ async def handle_frontend_locales(self, request):
+ file = path.join(path.dirname(__file__), "locales", request.match_info["path"])
+
+ return web.FileResponse(file, headers={"Cache-Control": "no-cache", "Content-Type": "application/json"})
+
async def get_plugins(self, request):
plugins = list(self.plugins.values())
return web.json_response([{"name": str(i) if not i.legacy else "$LEGACY_"+str(i), "version": i.version} for i in plugins])
diff --git a/backend/locales/en-US.json b/backend/locales/en-US.json
new file mode 100644
index 00000000..70a7a7ae
--- /dev/null
+++ b/backend/locales/en-US.json
@@ -0,0 +1,183 @@
+{
+ "BranchSelect": {
+ "update_channel": {
+ "label": "Update Channel",
+ "prerelease": "Prerelease",
+ "stable": "Stable",
+ "testing": "Testing"
+ }
+ },
+ "Developer": {
+ "5secreload": "Reloading in 5 seconds",
+ "disabling": "Disabling",
+ "enabling": "Enabling"
+ },
+ "FilePickerIndex": {
+ "folder": {
+ "select": "Use this folder"
+ }
+ },
+ "PluginCard": {
+ "plugin_full_access": "This plugin has full access to your Steam Deck.",
+ "plugin_install": "Install",
+ "plugin_no_desc": "No description provided.",
+ "plugin_version_label": "Plugin Version"
+ },
+ "PluginInstallModal": {
+ "install": {
+ "button_idle": "Install",
+ "button_processing": "Installing",
+ "desc": "Are you sure you want to install {{artifact}} {{version}}?",
+ "title": "Install {{artifact}}"
+ },
+ "no_hash": "This plugin does not have a hash, you are installing it at your own risk.",
+ "reinstall": {
+ "button_idle": "Reinstall",
+ "button_processing": "Reinstalling",
+ "desc": "Are you sure you want to reinstall {{artifact}} {{version}}?",
+ "title": "Reinstall {{artifact}}"
+ },
+ "update": {
+ "button_idle": "Update",
+ "button_processing": "Updating",
+ "desc": "Are you sure you want to update {{artifact}} {{version}}?",
+ "title": "Update {{name}}"
+ }
+ },
+ "PluginListIndex": {
+ "no_plugin": "No plugins installed!",
+ "plugin_actions": "Plugin Actions",
+ "reinstall": "Reinstall",
+ "reload": "Reload",
+ "uninstall": "Uninstall",
+ "update_to": "Update to {{name}}"
+ },
+ "PluginLoader": {
+ "decky_title": "Decky",
+ "decky_update_available": "Update to {{tag_name}} available!",
+ "error": "Error",
+ "plugin_error_uninstall": "Please go to {{-icon}} in the Decky menu if you need to uninstall this plugin.",
+ "plugin_load_error": {
+ "message": "Error loading plugin {{name}}",
+ "toast": "Error loading {{name}}"
+ },
+ "plugin_uninstall": {
+ "button": "Uninstall",
+ "desc": "Are you sure you want to uninstall {{name}}?",
+ "title": "Uninstall {{name}}"
+ },
+ "plugin_update_one": "Updates available for 1 plugin!",
+ "plugin_update_other": "Updates available for {{count}} plugins!"
+ },
+ "RemoteDebugging": {
+ "remote_cef": {
+ "desc": "Allow unauthenticated access to the CEF debugger to anyone in your network",
+ "label": "Allow Remote CEF Debugging"
+ }
+ },
+ "SettingsDeveloperIndex": {
+ "header_other": "Other",
+ "react_devtools": {
+ "desc": "Enables connection to a computer running React DevTools. Changing this setting will reload Steam. Set the IP address before enabling.",
+ "ip_label": "IP",
+ "label": "Enable React DevTools"
+ },
+ "third_party_plugins": {
+ "button_install": "Install",
+ "button_zip": "Browse",
+ "header": "Third-Party Plugins",
+ "label_desc": "URL",
+ "label_url": "Install Plugin from URL",
+ "label_zip": "Install Plugin from ZIP File"
+ },
+ "toast_zip": {
+ "body": "Installation failed! Only ZIP files are supported.",
+ "title": "Decky"
+ },
+ "valve_internal": {
+ "desc1": "Enables the Valve internal developer menu.",
+ "desc2": "Do not touch anything in this menu unless you know what it does.",
+ "label": "Enable Valve Internal"
+ }
+ },
+ "SettingsGeneralIndex": {
+ "about": {
+ "decky_version": "Decky Version",
+ "header": "About"
+ },
+ "beta": {
+ "header": "Beta participation"
+ },
+ "developer_mode": {
+ "desc": "Enables Decky's developer settings.",
+ "label": "Developer mode"
+ },
+ "other": {
+ "header": "Other"
+ },
+ "updates": {
+ "header": "Updates"
+ }
+ },
+ "SettingsIndex": {
+ "developer_title": "Developer",
+ "general_title": "General",
+ "navbar_settings": "Decky Settings",
+ "plugins_title": "Plugins"
+ },
+ "Store": {
+ "store_contrib": {
+ "desc": "If you would like to contribute to the Decky Plugin Store, check the SteamDeckHomebrew/decky-plugin-template repository on GitHub. Information on development and distribution is available in the README.",
+ "label": "Contributing"
+ },
+ "store_filter": {
+ "label": "Filter",
+ "label_def": "All"
+ },
+ "store_search": {
+ "label": "Search"
+ },
+ "store_sort": {
+ "label": "Sort",
+ "label_def": "Last Updated (Newest)"
+ },
+ "store_source": {
+ "desc": "All plugin source code is available on SteamDeckHomebrew/decky-plugin-database repository on GitHub.",
+ "label": "Source Code"
+ },
+ "store_tabs": {
+ "about": "About",
+ "alph_asce": "Alphabetical (Z to A)",
+ "alph_desc": "Alphabetical (A to Z)",
+ "title": "Browse"
+ },
+ "store_testing_cta": "Please consider testing new plugins to help the Decky Loader team!"
+ },
+ "StoreSelect": {
+ "custom_store": {
+ "label": "Custom Store",
+ "url_label": "URL"
+ },
+ "store_channel": {
+ "custom": "Custom",
+ "default": "Default",
+ "label": "Store Channel",
+ "testing": "Testing"
+ }
+ },
+ "Updater": {
+ "decky_updates": "Decky Updates",
+ "no_patch_notes_desc": "no patch notes for this version",
+ "patch_notes_desc": "Patch Notes",
+ "updates": {
+ "check_button": "Check For Updates",
+ "checking": "'Checking",
+ "cur_version": "Current version: {{ver}}",
+ "install_button": "Install Update",
+ "label": "Updates",
+ "lat_version": "Up to date: running {{ver}}",
+ "reloading": "Reloading",
+ "updating": "Updating"
+ }
+ }
+}
diff --git a/backend/locales/it-IT.json b/backend/locales/it-IT.json
new file mode 100644
index 00000000..e6f6625c
--- /dev/null
+++ b/backend/locales/it-IT.json
@@ -0,0 +1,184 @@
+{
+ "BranchSelect": {
+ "update_channel": {
+ "label": "Canale di aggiornamento",
+ "prerelease": "Prerilascio",
+ "stable": "Stabile",
+ "testing": "In prova"
+ }
+ },
+ "Developer": {
+ "5secreload": "Ricaricando in 5 secondi",
+ "disabling": "Disabilitando",
+ "enabling": "Abilitando"
+ },
+ "FilePickerIndex": {
+ "folder": {
+ "select": "Usa questa cartella"
+ }
+ },
+ "PluginCard": {
+ "plugin_full_access": "Questo plugin ha accesso completo al tuo Steam Deck.",
+ "plugin_install": "Installa",
+ "plugin_no_desc": "Nessuna descrizione fornita.",
+ "plugin_version_label": "Versione Plugin"
+ },
+ "PluginInstallModal": {
+ "install": {
+ "button_idle": "Installa",
+ "button_processing": "Installando",
+ "desc": "Sei sicuro di voler installare {{artifact}} {{version}}?",
+ "title": "Installa {{artifact}}"
+ },
+ "no_hash": "Questo plugin non ha un hash associato, lo stai installando a tuo rischio e pericolo.",
+ "reinstall": {
+ "button_idle": "Reinstalla",
+ "button_processing": "Reinstallando",
+ "desc": "Sei sicuro di voler reinstallare {{artifact}} {{version}}?",
+ "title": "Reinstalla {{artifact}}"
+ },
+ "update": {
+ "button_idle": "Aggiorna",
+ "button_processing": "Aggiornando",
+ "desc": "Sei sicuro di voler aggiornare {{artifact}} {{version}}?",
+ "title": "Aggiorna {{artifact}}"
+ }
+ },
+ "PluginListIndex": {
+ "no_plugin": "Nessun plugin installato!",
+ "plugin_actions": "Operazioni sui plugins",
+ "reinstall": "Reinstalla",
+ "reload": "Ricarica",
+ "uninstall": "Rimuovi",
+ "update_to": "Aggiorna a {{name}}"
+ },
+ "PluginLoader": {
+ "decky_title": "Decky",
+ "decky_update_available": "Disponibile aggiornamento a {{tag_name}}!",
+ "error": "Errore",
+ "plugin_error_uninstall": "Per rimuovere questo plugin vai su {{-icon}} nel menu di Decky.",
+ "plugin_load_error": {
+ "message": "Errore caricando il plugin {{name}}",
+ "toast": "Errore caricando {{name}}"
+ },
+ "plugin_uninstall": {
+ "button": "Rimuovi",
+ "desc": "Sei sicuro di voler rimuovere {{name}}?",
+ "title": "Rimuovi {{name}}"
+ },
+ "plugin_update_one": "Aggiornamento disponibile per un plugin!",
+ "plugin_update_many": "Aggiornamento disponibile per {{count}} plugins!",
+ "plugin_update_other": "Aggiornamento disponibile per {{count}} plugins!"
+ },
+ "RemoteDebugging": {
+ "remote_cef": {
+ "desc": "Permetti l'accesso non autenticato al debugger di CEF da tutti gli indirizzi sulla tua rete locale.",
+ "label": "Permetti il debug remoto di CEF"
+ }
+ },
+ "SettingsDeveloperIndex": {
+ "header_other": "Altro",
+ "react_devtools": {
+ "desc": "Abilita la connessione ad un computer che esegue i DevTools di React. Cambiando questa impostazione ricaricherà Steam. Imposta l'indirizzo IP prima di abilitarlo.",
+ "ip_label": "IP",
+ "label": "Abilita i DevTools di React"
+ },
+ "third_party_plugins": {
+ "button_install": "Installa",
+ "button_zip": "Seleziona",
+ "header": "Plugin di terze parti",
+ "label_desc": "URL",
+ "label_url": "Installa plugin da un'indirizzo web",
+ "label_zip": "Installa plugin da un file ZIP"
+ },
+ "toast_zip": {
+ "body": "Installazione non riuscita, solo i file ZIP sono supportati!",
+ "title": "Decky"
+ },
+ "valve_internal": {
+ "desc1": "Abilita il menu di sviluppo interno di Valve.",
+ "desc2": "Non toccare nulla in questo menu se non sai quello che fa.",
+ "label": "Abilita Menu Sviluppatore"
+ }
+ },
+ "SettingsGeneralIndex": {
+ "about": {
+ "decky_version": "Versione di Decky",
+ "header": "Riguardo a"
+ },
+ "beta": {
+ "header": "Partecipazione alla beta"
+ },
+ "developer_mode": {
+ "desc": "Abilità le impostazioni di sviluppo di Decky.",
+ "label": "Modalità sviluppatore"
+ },
+ "other": {
+ "header": "Altro"
+ },
+ "updates": {
+ "header": "Aggiornamenti"
+ }
+ },
+ "SettingsIndex": {
+ "developer_title": "Sviluppatore",
+ "general_title": "Generali",
+ "navbar_settings": "Impostazioni Decky",
+ "plugins_title": "Plugins"
+ },
+ "Store": {
+ "store_contrib": {
+ "desc": "Se desideri contribuire allo store di Decky, puoi trovare un template caricato su GitHub all'indirizzo SteamDeckHomebrew/decky-plugin-template. Informazioni riguardo sviluppo e distribuzione sono disponibili nel README.",
+ "label": "Contribuisci"
+ },
+ "store_filter": {
+ "label": "Filtra",
+ "label_def": "Tutto"
+ },
+ "store_search": {
+ "label": "Cerca"
+ },
+ "store_sort": {
+ "label": "Ordina",
+ "label_def": "Ultimo aggiornato (Più recente)"
+ },
+ "store_source": {
+ "desc": "Tutto il codice sorgente dei plugin è disponibile su GitHub all'indirizzo SteamDeckHomebrew/decky-plugin-database",
+ "label": "Codice Sorgente"
+ },
+ "store_tabs": {
+ "about": "Riguardo a",
+ "alph_asce": "Alfabetico (Z a A)",
+ "alph_desc": "Alfabetico (A a Z)",
+ "title": "Sfoglia"
+ },
+ "store_testing_cta": "Valuta la possibilità di testare nuovi plugin per aiutare il team di Decky Loader!"
+ },
+ "StoreSelect": {
+ "custom_store": {
+ "label": "Negozio custom",
+ "url_label": "URL"
+ },
+ "store_channel": {
+ "custom": "Personalizzato",
+ "default": "Default",
+ "label": "Canale del negozio",
+ "testing": "In prova"
+ }
+ },
+ "Updater": {
+ "decky_updates": "Aggiornamento di Decky",
+ "no_patch_notes_desc": "nessuna patch notes per questa versione",
+ "patch_notes_desc": "Cambiamenti",
+ "updates": {
+ "check_button": "Cerca aggiornamenti",
+ "checking": "Controllando",
+ "cur_version": "Versione attuale: {{ver}}",
+ "install_button": "Installa aggiornamento",
+ "label": "Aggiornamenti",
+ "lat_version": "Aggiornato. Eseguendo {{ver}}",
+ "reloading": "Ricaricando",
+ "updating": "Aggiornando"
+ }
+ }
+}
diff --git a/backend/utilities.py b/backend/utilities.py
index 4abb16dc..d3db51c9 100644
--- a/backend/utilities.py
+++ b/backend/utilities.py
@@ -61,12 +61,13 @@ class Utilities:
res["success"] = False
return web.json_response(res)
- async def install_plugin(self, artifact="", name="No name", version="dev", hash=False):
+ async def install_plugin(self, artifact="", name="No name", version="dev", hash=False, install_type=0):
return await self.context.plugin_browser.request_plugin_install(
artifact=artifact,
name=name,
version=version,
- hash=hash
+ hash=hash,
+ install_type=install_type
)
async def confirm_plugin_install(self, request_id):