Compare commits

...

11 Commits

Author SHA1 Message Date
WerWolvTranslationBot 365866c35f Translations update from Weblate (#497)
* Translated using Weblate (Italian)

Currently translated at 100.0% (135 of 135 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/it/

* Added translation using Weblate (Bulgarian)

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (135 of 135 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/bg/

* Translated using Weblate (Russian)

Currently translated at 100.0% (135 of 135 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/ru/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (135 of 135 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/zh_Hans/

* Translated using Weblate (Korean)

Currently translated at 100.0% (135 of 135 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/ko/

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

---------

Co-authored-by: Marco Rodolfi <marco.rodolfi@tuta.io>
Co-authored-by: Lyubomir Vasilev <lyubomirv@gmx.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Andrew <www.andru90@gmail.com>
Co-authored-by: Sean <zhangshuyan@fuji.waseda.jp>
Co-authored-by: Sungjoon Moon <sumoon@seoulsaram.org>
2023-07-01 14:07:33 +02:00
suchmememanyskill 3d6d69568d Make sure settings/data/logs gets created as user (#499) 2023-07-01 11:46:58 +01:00
WerWolvTranslationBot 62a2107c06 Translations update from Weblate (#494)
* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (135 of 135 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/zh_Hans/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (135 of 135 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/pt_BR/

* Translated using Weblate (Italian)

Currently translated at 100.0% (138 of 138 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/it/

---------

Co-authored-by: Sean <zhangshuyan@fuji.waseda.jp>
Co-authored-by: Paulo Victor de Lima Sfair Alvares <pvsfair@gmail.com>
Co-authored-by: Marco Rodolfi <marco.rodolfi@tuta.io>
2023-06-26 09:11:42 +02:00
Marco Rodolfi cf2f419942 Translated using Weblate (Italian)
Currently translated at 100.0% (138 of 138 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/it/
2023-06-26 09:00:36 +02:00
Paulo Victor de Lima Sfair Alvares f657529ab5 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (135 of 135 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/pt_BR/
2023-06-26 08:59:18 +02:00
Sean 8eae2d60e5 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (135 of 135 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/zh_Hans/
2023-06-26 08:59:18 +02:00
Marco Rodolfi 3e64e53cd7 feat: Added detailed message for permission error and clean up english language from unused strings. 2023-06-26 08:53:41 +02:00
Jonas Dellinger ef9afa8cbc Add notification settings, which allows muting decky/plugin toast notifications (#479)
* Add notification settings, which allows muting decky/plugin toast notifications

* Fix typos
2023-06-24 12:59:39 +02:00
Marco Rodolfi 143461d597 chore: clean up unused parameters 2023-06-22 17:32:20 +02:00
Marco Rodolfi ae887e10d6 chore: adding parameters to file picker in logical order 2023-06-22 17:25:38 +02:00
WerWolvTranslationBot 186c70591a Translations update from Weblate (#489)
* Added translation using Weblate (Dutch)

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/

* Translated using Weblate (English)

Currently translated at 100.0% (134 of 134 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/en/

* Translated using Weblate (Italian)

Currently translated at 100.0% (134 of 134 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/it/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 99.2% (133 of 134 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/zh_Hans/

* Translated using Weblate (Korean)

Currently translated at 100.0% (134 of 134 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/ko/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (134 of 134 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/nl/

* Translated using Weblate (Korean)

Currently translated at 100.0% (134 of 134 strings)

Translation: Decky/Decky
Translate-URL: https://weblate.werwolv.net/projects/decky/decky/ko/

---------

Co-authored-by: cardiognostix <wardeh@dds.nl>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Marco Rodolfi <marco.rodolfi@tuta.io>
Co-authored-by: Sean <zhangshuyan@fuji.waseda.jp>
Co-authored-by: Sungjoon Moon <sumoon@seoulsaram.org>
2023-06-22 13:48:24 +02:00
27 changed files with 1266 additions and 380 deletions
+252
View File
@@ -0,0 +1,252 @@
{
"BranchSelect": {
"update_channel": {
"stable": "Стабилен",
"testing": "Тестване",
"label": "Канал за обновления",
"prerelease": "Предварителни издания"
}
},
"Developer": {
"5secreload": "Презареждане след 5 секунди",
"disabling": "Изключване на React DevTools",
"enabling": "Включване на React DevTools"
},
"DropdownMultiselect": {
"button": {
"back": "Назад"
}
},
"FilePickerError": {
"errors": {
"unknown": "Възникна неизвестна грешка. Грешката в суров вид е: {{raw_error}}",
"file_not_found": "Посоченият път е неправилен. Проверете го и го въведете правилно.",
"perm_denied": "Нямате достъп до посочената папка. Проверете дали потребителят (deck на Steam Deck) има съответните правомощия за достъп до посочената папка/файл."
}
},
"FilePickerIndex": {
"file": {
"select": "Избиране на този файл"
},
"files": {
"all_files": "Всички файлове",
"file_type": "Файлов тип",
"show_hidden": "Показване на скритите файлове"
},
"filter": {
"created_asce": "Дата на създаване (първо най-старите)",
"created_desc": "Дата на създаване (първо най-новите)",
"modified_asce": "Дата на промяна (първо най-старите)",
"modified_desc": "Дата на промяна (първо най-новите)",
"name_asce": "Я-А",
"name_desc": "А-Я",
"size_asce": "Размер (първо най-малките)",
"size_desc": "Размер (първо най-големите)"
},
"folder": {
"label": "Папка",
"show_more": "Показване на още файлове",
"select": "Използване на тази папка"
}
},
"MultiplePluginsInstallModal": {
"description": {
"install": "Инсталиране на {{name}} {{version}}",
"reinstall": "Преинсталиране на {{name}} {{version}}",
"update": "Обновяване на {{name}} до {{version}}"
},
"ok_button": {
"idle": "Потвърждаване",
"loading": "В процес на работа"
},
"title": {
"mixed_one": "Промяна на {{count}} добавка",
"mixed_other": "Промяна на {{count}} добавки",
"update_one": "Обновяване на 1 добавка",
"update_other": "Обновяване на {{count}} добавки",
"install_one": "Инсталиране на 1 добавка",
"install_other": "Инсталиране на {{count}} добавки",
"reinstall_one": "Преинсталиране на 1 добавка",
"reinstall_other": "Преинсталиране на {{count}} добавки"
},
"confirm": "Наистина ли искате да направите следните промени?"
},
"PluginCard": {
"plugin_full_access": "Тази добавка има пълен достъп до Вашия Steam Deck.",
"plugin_install": "Инсталиране",
"plugin_no_desc": "Няма описание.",
"plugin_version_label": "Версия на добавката"
},
"PluginInstallModal": {
"install": {
"button_idle": "Инсталиране",
"desc": "Наистина ли искате да инсталирате {{artifact}} {{version}}?",
"title": "Инсталиране на {{artifact}}",
"button_processing": "Инсталиране"
},
"reinstall": {
"button_idle": "Преинсталиране",
"button_processing": "Преинсталиране",
"desc": "Наистина ли искате да преинсталирате {{artifact}} {{version}}?",
"title": "Преинсталиране на {{artifact}}"
},
"update": {
"button_idle": "Обновяване",
"title": "Обновяване на {{artifact}}",
"button_processing": "Обновяване",
"desc": "Наистина ли искате да обновите {{artifact}} {{version}}?"
},
"no_hash": "Тази добавка няма хеш. Инсталирате я на свой собствен риск."
},
"PluginListIndex": {
"hide": "Бърз достъп: Скриване",
"no_plugin": "Няма инсталирани добавки!",
"plugin_actions": "Действия с добавката",
"reinstall": "Преинсталиране",
"uninstall": "Деинсталиране",
"update_to": "Обновяване до {{name}}",
"reload": "Презареждане",
"show": "Бърз достъп: Показване",
"update_all_one": "Обновяване на 1 добавка",
"update_all_other": "Обновяване на {{count}} добавки"
},
"PluginListLabel": {
"hidden": "Скрито от менюто за бърз достъп"
},
"PluginLoader": {
"decky_title": "Decky",
"error": "Грешка",
"plugin_load_error": {
"message": "Грешка при зареждането на добавката {{name}}",
"toast": "Грешка при зареждането на {{name}}"
},
"plugin_uninstall": {
"button": "Деинсталиране",
"desc": "Наистина ли искате да деинсталирате {{name}}?",
"title": "Деинсталиране на {{name}}"
},
"plugin_update_one": "Има налично обновление за 1 добавка!",
"plugin_update_other": "Има налични обновления за {{count}} добавки!",
"decky_update_available": "Има налично обновление до {{tag_name}}!",
"plugin_error_uninstall": "Зареждането на {{name}} предизвика грешка, както се вижда по-горе. Това обикновено означава, че добавката изисква обновяване на новата версия на SteamUI. Проверете дали има обновление или изберете да я премахнете в настройките на Decky, в раздела с добавките."
},
"RemoteDebugging": {
"remote_cef": {
"desc": "Разрешаване на достъп без удостоверяване до дебъгера на CEF на всеки от Вашата мрежа",
"label": "Разрешаване на отдалеченото дебъгване на CEF"
}
},
"SettingsDeveloperIndex": {
"cef_console": {
"button": "Отваряне на конзолата",
"label": "Конзола на CEF",
"desc": "Отваря конзолата на CEF. Това има смисъл единствено за дебъгване. Нещата тук може да са опасни и трябва да бъдат използвани само ако Вие сте разработчик на добавка, или получавате насоки от такъв."
},
"header": "Други",
"react_devtools": {
"ip_label": "IP",
"label": "Включване на React DevTools",
"desc": "Включва свързването към компютър, на който работи React DevTools. Промяната на тази настройка ще презареди Steam. Задайте IP адреса преди да включите това."
},
"third_party_plugins": {
"button_install": "Инсталиране",
"button_zip": "Разглеждане",
"header": "Добавки от външен източник",
"label_desc": "Адрес",
"label_zip": "Инсталиране на добавка от файл ZIP",
"label_url": "Инсталиране на добавка от адрес в Интернет"
},
"valve_internal": {
"desc2": "Не пипайте нищо в това меню, освен ако не знаете какво правите.",
"label": "Включване на вътрешното меню на Valve",
"desc1": "Включва вътрешното меню за разработчици на Valve."
}
},
"SettingsGeneralIndex": {
"about": {
"decky_version": "Версия на Decky",
"header": "Относно"
},
"developer_mode": {
"label": "Режим за разработчици"
},
"notifications": {
"decky_updates_label": "Има налично обновление на Decky",
"header": "Известия",
"plugin_updates_label": "Има налични обновления на добавките"
},
"other": {
"header": "Други"
},
"updates": {
"header": "Обновления"
},
"beta": {
"header": "Участие в бета-версии"
}
},
"SettingsIndex": {
"developer_title": "Разработчик",
"general_title": "Общи",
"plugins_title": "Добавки"
},
"Store": {
"store_contrib": {
"label": "Допринасяне",
"desc": "Ако искате да допринесете към магазина за добавки на Decky, разгледайте хранилището SteamDeckHomebrew/decky-plugin-template в GitHub. Може да намерите информация относно разработката и разпространението във файла README."
},
"store_filter": {
"label": "Филтър",
"label_def": "Всички"
},
"store_search": {
"label": "Търсене"
},
"store_sort": {
"label": "Подредба",
"label_def": "Последно обновление (първо най-новите)"
},
"store_source": {
"label": "Изходен код",
"desc": "Целият изходен код е наличен в хранилището SteamDeckHomebrew/decky-plugin-database в GitHub."
},
"store_tabs": {
"about": "Относно",
"alph_asce": "По азбучен ред (Я -> А)",
"alph_desc": "По азбучен ред (А -> Я)",
"title": "Разглеждане"
},
"store_testing_cta": "Помислете дали искате да тествате новите добавки, за да помогнете на екипа на Decky Loader!"
},
"StoreSelect": {
"custom_store": {
"label": "Персонализиран магазин",
"url_label": "Адрес"
},
"store_channel": {
"custom": "Персонализиран",
"default": "По подразбиране",
"label": "Канал за магазина",
"testing": "Тестване"
}
},
"Updater": {
"decky_updates": "Обновления на Decky",
"patch_notes_desc": "Бележки за промените",
"updates": {
"check_button": "Проверка за обновления",
"checking": "Проверяване",
"cur_version": "Текуща версия: {{ver}}",
"label": "Обновления",
"lat_version": "Използвате най-новата версия: {{ver}}",
"reloading": "Презареждане",
"updating": "Обновяване",
"install_button": "Инсталиране на обновлението"
},
"no_patch_notes_desc": "няма бележки за промените в тази версия"
},
"PluginView": {
"hidden_one": "1 добавка е скрита от този списък",
"hidden_other": "{{count}} добавки са скрити от този списък"
}
}
-3
View File
@@ -130,7 +130,6 @@
"label_zip": "Instalovat plugin ze ZIP souboru"
},
"toast_zip": {
"body": "Instalace selhala! Podporovány jsou pouze soubory ZIP.",
"title": "Decky"
},
"valve_internal": {
@@ -154,7 +153,6 @@
"header": "Účast v betě"
},
"developer_mode": {
"desc": "Zapíná vývojářské nastavení Decky.",
"label": "Vývojářský režim"
},
"other": {
@@ -167,7 +165,6 @@
"SettingsIndex": {
"developer_title": "Vývojář",
"general_title": "Obecné",
"navbar_settings": "Nastavení Decky",
"plugins_title": "Pluginy"
},
"Store": {
+1 -4
View File
@@ -93,7 +93,6 @@
"label_url": "Installiere Erweiterung via URL"
},
"toast_zip": {
"body": "Installation fehlgeschlagen! Nur ZIP Datein werden unterstützt.",
"title": "Decky"
},
"valve_internal": {
@@ -111,7 +110,6 @@
"header": "Beta Teilnahme"
},
"developer_mode": {
"desc": "Aktiviere Deckys Entwickleroptionen.",
"label": "Entwickleroptionen"
},
"other": {
@@ -124,8 +122,7 @@
"SettingsIndex": {
"developer_title": "Entwickler",
"general_title": "Allgemein",
"plugins_title": "Erweiterungen",
"navbar_settings": "Decky Einstellungen"
"plugins_title": "Erweiterungen"
},
"Store": {
"store_contrib": {
+1 -4
View File
@@ -14,7 +14,6 @@
"label_zip": "Εγκατάσταση επέκτασης από αρχείο ZIP"
},
"toast_zip": {
"title": "Decky",
"body": "Η εγκατάσταση απέτυχε. Μόνο αρχεία ZIP επιτρέπονται."
},
"valve_internal": {
@@ -102,7 +101,6 @@
"header": "Σχετικά"
},
"developer_mode": {
"desc": "Ενεργοποιεί το μενού προγραμματιστή του Decky.",
"label": "Λειτουργία προγραμματιστή"
},
"other": {
@@ -118,8 +116,7 @@
"SettingsIndex": {
"plugins_title": "Επεκτάσεις",
"developer_title": "Προγραμματιστής",
"general_title": "Γενικά",
"navbar_settings": "Ρυθμίσεις Decky"
"general_title": "Γενικά"
},
"Store": {
"store_contrib": {
+6 -6
View File
@@ -20,6 +20,7 @@
"FilePickerError": {
"errors": {
"file_not_found": "The path specified is not valid. Please check it and reenter it correctly.",
"perm_denied": "You do not have access to the specified directory. Please check if your user (deck on Steam Deck) has the corresponding permission to access the specified folder/file.",
"unknown": "An unknown error occurred. The raw error is: {{raw_error}}"
}
},
@@ -159,10 +160,6 @@
"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.",
@@ -178,9 +175,13 @@
"header": "Beta participation"
},
"developer_mode": {
"desc": "Enables Decky's developer settings.",
"label": "Developer mode"
},
"notifications": {
"decky_updates_label": "Decky update available",
"header": "Notifications",
"plugin_updates_label": "Plugin updates available"
},
"other": {
"header": "Other"
},
@@ -191,7 +192,6 @@
"SettingsIndex": {
"developer_title": "Developer",
"general_title": "General",
"navbar_settings": "Decky Settings",
"plugins_title": "Plugins"
},
"Store": {
+1 -4
View File
@@ -14,7 +14,6 @@
"desc1": "Activa el menú interno de desarrollo de Valve."
},
"toast_zip": {
"title": "Decky",
"body": "¡Ha fallado la instalación! Solo se permiten archivos ZIP."
},
"cef_console": {
@@ -118,8 +117,7 @@
"decky_version": "Versión de Decky"
},
"developer_mode": {
"label": "Modo desarrollador",
"desc": "Activa los ajustes de desarrollador de Decky."
"label": "Modo desarrollador"
},
"beta": {
"header": "Participación en la beta"
@@ -131,7 +129,6 @@
"SettingsIndex": {
"developer_title": "Desarrollador",
"general_title": "General",
"navbar_settings": "Ajustes de Decky",
"plugins_title": "Plugins"
},
"Store": {
-3
View File
@@ -14,7 +14,6 @@
"label_zip": "Installer le plugin à partir d'un fichier ZIP"
},
"toast_zip": {
"body": "Échec de l'installation! Seuls les fichiers ZIP sont pris en charge.",
"title": "Decky"
},
"valve_internal": {
@@ -139,7 +138,6 @@
"header": "Participation à la Bêta"
},
"developer_mode": {
"desc": "Active les paramètres de développeur de Decky.",
"label": "Mode développeur"
},
"other": {
@@ -152,7 +150,6 @@
"SettingsIndex": {
"developer_title": "Développeur",
"general_title": "Général",
"navbar_settings": "Paramètres de Decky",
"plugins_title": "Plugins"
},
"Store": {
+259 -256
View File
@@ -1,259 +1,262 @@
{
"BranchSelect": {
"update_channel": {
"label": "Canale di aggiornamento",
"prerelease": "Prerilascio",
"stable": "Stabile",
"testing": "In prova"
"BranchSelect": {
"update_channel": {
"label": "Canale di aggiornamento",
"prerelease": "Prerilascio",
"stable": "Stabile",
"testing": "In prova"
}
},
"Developer": {
"5secreload": "Ricarico tra 5 secondi",
"disabling": "Disabilito i tools di React",
"enabling": "Abilito i tools di React"
},
"DropdownMultiselect": {
"button": {
"back": "Indietro"
}
},
"FilePickerError": {
"errors": {
"file_not_found": "Il percorso specificato non è valido. Controllalo e prova a reinserirlo di nuovo.",
"unknown": "È avvenuto un'errore sconosciuto. L'errore segnalato è {{raw_error}}",
"perm_denied": "Il tuo utente non ha accesso alla directory specificata. Verifica se l'utente corrente (è deck su Steam Deck di default) ha i permessi corrispondenti per accedere alla cartella/file desiderato."
}
},
"FilePickerIndex": {
"file": {
"select": "Seleziona questo file"
},
"files": {
"all_files": "Tutti i file",
"file_type": "Tipo di file",
"show_hidden": "Mostra nascosti"
},
"filter": {
"created_asce": "Creazione (meno recente)",
"created_desc": "Creazione (più recente)",
"modified_asce": "Modifica (meno recente)",
"modified_desc": "Modifica (più recente)",
"name_asce": "Z-A",
"name_desc": "A-Z",
"size_asce": "Dimensione (più piccolo)",
"size_desc": "Dimensione (più grande)"
},
"folder": {
"label": "Cartella",
"select": "Usa questa cartella",
"show_more": "Mostra più file"
}
},
"MultiplePluginsInstallModal": {
"confirm": "Sei sicuro di voler effettuare le modifiche seguenti?",
"description": {
"install": "Installa {{name}} {{version}}",
"reinstall": "Reinstalla {{name}} {{version}}",
"update": "Aggiorna {{name}} alla versione {{version}}"
},
"ok_button": {
"idle": "Conferma",
"loading": "Elaboro"
},
"title": {
"install_one": "Installa un plugin",
"install_many": "Installa {{count}} plugins",
"install_other": "Installa {{count}} plugins",
"mixed_one": "Modifica un plugin",
"mixed_many": "Modifica {{count}} plugins",
"mixed_other": "Modifica {{count}} plugins",
"reinstall_one": "Reinstalla un plugin",
"reinstall_many": "Reinstalla {{count}} plugins",
"reinstall_other": "Reinstalla {{count}} plugins",
"update_one": "Aggiorna un plugin",
"update_many": "Aggiorna {{count}} plugins",
"update_other": "Aggiorna {{count}} plugins"
}
},
"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": {
"hide": "Accesso rapido: Nascondi",
"no_plugin": "Nessun plugin installato!",
"plugin_actions": "Operazioni sui plugins",
"reinstall": "Reinstalla",
"reload": "Ricarica",
"show": "Accesso rapido: Mostra",
"uninstall": "Rimuovi",
"update_all_one": "Aggiorna un plugin",
"update_all_many": "Aggiorna {{count}} plugins",
"update_all_other": "Aggiorna {{count}} plugins",
"update_to": "Aggiorna a {{name}}"
},
"PluginListLabel": {
"hidden": "Nascosto dal menu di accesso rapido"
},
"PluginLoader": {
"decky_title": "Decky",
"decky_update_available": "Disponibile aggiornamento a {{tag_name}}!",
"error": "Errore",
"plugin_error_uninstall": "Il plugin {{name}} ha causato un'eccezione che è descritta sopra. Questo tipicamente significa che il plugin deve essere aggiornato per funzionare sulla nuova versione di SteamUI. Controlla se è disponibile un aggiornamento o valutane la rimozione andando nelle impostazioni di Decky nella sezione Plugins.",
"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 1 plugin!",
"plugin_update_many": "Aggiornamenti disponibili per {{count}} plugins!",
"plugin_update_other": "Aggiornamenti disponibili per {{count}} plugins!"
},
"PluginView": {
"hidden_one": "Un plugin è nascosto dalla lista",
"hidden_many": "Sono nascosti {{count}} plugin dalla lista",
"hidden_other": "Sono nascosti {{count}} plugin dalla lista"
},
"notifications": {
"plugin_updates_label": "Aggiornamenti dei 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": {
"cef_console": {
"button": "Apri la console",
"desc": "Apri la console di CEF. Utile solamente per ragioni di debug. Questa opzione deve essere usata solo se sei uno sviluppatore di plugin o se uno di questi ti ha chiesto di farlo, visto che questa feature potrebbe essere potenzialmente pericolosa.",
"label": "Console CEF"
},
"header": "Altro",
"react_devtools": {
"desc": "Abilita la connessione ad un computer che esegue i DevTools di React. Steam verrà ricaricato se lo stato cambia. Imposta il tuo 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"
},
"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": {
"label": "Modalità sviluppatore"
},
"other": {
"header": "Altro"
},
"updates": {
"header": "Aggiornamenti"
},
"notifications": {
"header": "Notifiche",
"decky_updates_label": "Aggiornamenti di Decky",
"plugin_updates_label": "Aggiornamenti dei plugins"
}
},
"SettingsIndex": {
"developer_title": "Sviluppatore",
"general_title": "Generali",
"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"
}
}
},
"Developer": {
"5secreload": "Ricarico tra 5 secondi",
"disabling": "Disabilito i tools di React",
"enabling": "Abilito i tools di React"
},
"DropdownMultiselect": {
"button": {
"back": "Indietro"
}
},
"FilePickerError": {
"errors": {
"file_not_found": "Il percorso specificato non è valido. Controllalo e prova a reinserirlo di nuovo.",
"unknown": "È avvenuto un'errore sconosciuto. L'errore segnalato è {{raw_error}}"
}
},
"FilePickerIndex": {
"file": {
"select": "Seleziona questo file"
},
"files": {
"all_files": "Tutti i file",
"file_type": "Tipo di file",
"show_hidden": "Mostra nascosti"
},
"filter": {
"created_asce": "Creazione (meno recente)",
"created_desc": "Creazione (più recente)",
"modified_asce": "Modifica (meno recente)",
"modified_desc": "Modifica (più recente)",
"name_asce": "Z-A",
"name_desc": "A-Z",
"size_asce": "Dimensione (più piccolo)",
"size_desc": "Dimensione (più grande)"
},
"folder": {
"label": "Cartella",
"select": "Usa questa cartella",
"show_more": "Mostra più file"
}
},
"MultiplePluginsInstallModal": {
"confirm": "Sei sicuro di voler effettuare le modifiche seguenti?",
"description": {
"install": "Installa {{name}} {{version}}",
"reinstall": "Reinstalla {{name}} {{version}}",
"update": "Aggiorna {{name}} alla versione {{version}}"
},
"ok_button": {
"idle": "Conferma",
"loading": "Elaboro"
},
"title": {
"install_one": "Installa un plugin",
"install_many": "Installa {{count}} plugins",
"install_other": "Installa {{count}} plugins",
"mixed_one": "Modifica un plugin",
"mixed_many": "Modifica {{count}} plugins",
"mixed_other": "Modifica {{count}} plugins",
"reinstall_one": "Reinstalla un plugin",
"reinstall_many": "Reinstalla {{count}} plugins",
"reinstall_other": "Reinstalla {{count}} plugins",
"update_one": "Aggiorna un plugin",
"update_many": "Aggiorna {{count}} plugins",
"update_other": "Aggiorna {{count}} plugins"
}
},
"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": {
"hide": "Accesso rapido: Nascondi",
"no_plugin": "Nessun plugin installato!",
"plugin_actions": "Operazioni sui plugins",
"reinstall": "Reinstalla",
"reload": "Ricarica",
"show": "Accesso rapido: Mostra",
"uninstall": "Rimuovi",
"update_all_one": "Aggiorna un plugin",
"update_all_many": "Aggiorna {{count}} plugins",
"update_all_other": "Aggiorna {{count}} plugins",
"update_to": "Aggiorna a {{name}}"
},
"PluginListLabel": {
"hidden": "Nascosti dal menu di accesso rapido"
},
"PluginLoader": {
"decky_title": "Decky",
"decky_update_available": "Disponibile aggiornamento a {{tag_name}}!",
"error": "Errore",
"plugin_error_uninstall": "Il plugin {{name}} ha causato un'eccezione che è descritta sopra. Questo tipicamente significa che il plugin deve essere aggiornato per funzionare sulla nuova versione di SteamUI. Controlla se è disponibile un aggiornamento o valutane la rimozione andando nelle impostazioni di Decky nella sezione Plugins.",
"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 1 plugin!",
"plugin_update_many": "Aggiornamenti disponibili per {{count}} plugins!",
"plugin_update_other": "Aggiornamenti disponibili per {{count}} plugins!"
},
"PluginView": {
"hidden_one": "Un plugin è nascosto dalla lista",
"hidden_many": "Sono nascosti {{count}} plugin dalla lista",
"hidden_other": "Sono nascosti {{count}} plugin dalla lista"
},
"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": {
"cef_console": {
"button": "Apri la console",
"desc": "Apri la console di CEF. Utile solamente per ragioni di debug. Questa opzione deve essere usata solo se sei uno sviluppatore di plugin o se uno di questi ti ha chiesto di farlo, visto che questa feature potrebbe essere potenzialmente pericolosa.",
"label": "Console CEF"
},
"header": "Altro",
"react_devtools": {
"desc": "Abilita la connessione ad un computer che esegue i DevTools di React. Steam verrà ricaricato se lo stato cambia. Imposta il tuo 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 supportati solo file ZIP.",
"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"
}
}
}
+39 -8
View File
@@ -14,7 +14,27 @@
},
"FilePickerIndex": {
"folder": {
"select": "이 폴더 사용"
"select": "이 폴더 사용",
"label": "폴더",
"show_more": "더 많은 파일 표시"
},
"filter": {
"created_asce": "만든 날짜 (오름차순)",
"modified_asce": "수정한 날짜 (오름차순)",
"created_desc": "만든 날짜 (내림차 순)",
"name_asce": "Z-A",
"name_desc": "A-Z",
"size_asce": "크기 (오름차순)",
"modified_desc": "수정한 날짜 (내림차순)",
"size_desc": "크기 (내림차순)"
},
"files": {
"all_files": "모든 파일",
"show_hidden": "숨김 파일 표시",
"file_type": "파일 형식"
},
"file": {
"select": "이 파일 선택"
}
},
"PluginView": {
@@ -93,7 +113,7 @@
"title": "{{name}} 설치 제거"
},
"plugin_update_other": "플러그인 {{count}}개를 업데이트 할 수 있습니다!",
"plugin_error_uninstall": "{{name}} 플러그인을 불러올 때 위와 같은 예외가 발생했습니다. 이는 보통 SteamUI 최신 버전에 맞는 플러그인 업데이트가 필요할 때 발생합니다. Decky 설정의 플러그인 항목에서 업데이트가 있는지 확인하거나 설치 제거를 시도 해 보세요."
"plugin_error_uninstall": "{{name}} 플러그인을 불러올 때 위와 같은 예외가 발생했습니다. 이는 보통 SteamUI 최신 버전에 맞는 플러그인 업데이트가 필요할 때 발생합니다. Decky 설정의 플러그인 섹션에서 업데이트가 있는지 확인하거나 설치 제거를 시도 해 보세요."
},
"RemoteDebugging": {
"remote_cef": {
@@ -121,10 +141,6 @@
"label_url": "URL에서 플러그인 설치",
"label_zip": "ZIP 파일에서 플러그인 설치"
},
"toast_zip": {
"body": "설치를 실패했습니다! ZIP 파일만이 지원됩니다.",
"title": "Decky"
},
"valve_internal": {
"desc1": "Valve 내부 개발자 메뉴를 활성화합니다.",
"label": "Valve 내부 개발자 메뉴 활성화",
@@ -140,7 +156,6 @@
"header": "베타 참가"
},
"developer_mode": {
"desc": "Decky의 개발자 설정을 활성화합니다.",
"label": "개발자 모드"
},
"other": {
@@ -148,12 +163,16 @@
},
"updates": {
"header": "업데이트"
},
"notifications": {
"header": "알림",
"plugin_updates_label": "플러그인 업데이트 가능",
"decky_updates_label": "Decky 업데이트 가능"
}
},
"SettingsIndex": {
"developer_title": "개발자",
"general_title": "일반",
"navbar_settings": "Decky 설정",
"plugins_title": "플러그인"
},
"Store": {
@@ -210,5 +229,17 @@
"reloading": "다시 로드 중",
"updating": "업데이트 중"
}
},
"FilePickerError": {
"errors": {
"file_not_found": "지정된 경로가 잘못되었습니다. 확인 후에 다시 입력해 주세요.",
"unknown": "알 수 없는 오류가 발생했습니다. Raw 오류: {{raw_error}}",
"perm_denied": "선택한 경로에 접근 할 수 없습니다. 선택한 폴더/파일 접근 권한이 유저(Steam Deck의 deck 유저)에 맞게 올바르게 설정 되었는지 확인하세요."
}
},
"DropdownMultiselect": {
"button": {
"back": "뒤로"
}
}
}
+246
View File
@@ -0,0 +1,246 @@
{
"BranchSelect": {
"update_channel": {
"prerelease": "Vooruitgave",
"stable": "Stabiel",
"label": "Update Kanaal",
"testing": "Test"
}
},
"Developer": {
"5secreload": "Herlaad in 5 seconden",
"disabling": "Uitschakelen React DevTools",
"enabling": "Inschakelen React DevTools"
},
"DropdownMultiselect": {
"button": {
"back": "Terug"
}
},
"FilePickerError": {
"errors": {
"unknown": "Een onbekende fout is opgetreden. De ruwe fout is: {{raw_error}}",
"file_not_found": "Het opgegeven pad is niet geldig. Controleer het en voer het opnieuw correct in."
}
},
"FilePickerIndex": {
"files": {
"all_files": "Alle bestanden",
"file_type": "Bestandstype",
"show_hidden": "Toon verborgen bestanden"
},
"filter": {
"created_desc": "Gecreëerd ( Nieuwste)",
"modified_asce": "Veranderd (Oudste)",
"modified_desc": "Veranderd (Nieuwste)",
"name_asce": "Z-A",
"name_desc": "A-Z",
"size_asce": "Grootte (Kleinste)",
"size_desc": "Grootte (Grootste)",
"created_asce": "Gecreëerd (Oudste)"
},
"folder": {
"label": "Map",
"select": "Gebruik deze map",
"show_more": "Toon meer bestanden"
}
},
"PluginView": {
"hidden_one": "1 plug-in is verborgen in deze lijst",
"hidden_other": "{{count}} plug-ins zijn verborgen in deze lijst"
},
"PluginListLabel": {
"hidden": "Verborgen in het snelmenu"
},
"PluginCard": {
"plugin_install": "Installeren",
"plugin_no_desc": "Geen beschrijving gegeven.",
"plugin_version_label": "Plugin Versie",
"plugin_full_access": "Deze plug-in heeft volledige toegang tot je Steam Deck."
},
"PluginInstallModal": {
"install": {
"button_idle": "Installeren",
"button_processing": "Bezig met installeren",
"title": "Installeer {{artifact}}",
"desc": "Weet je zeker dat je {{artifact}} {{version}} wilt installeren?"
},
"no_hash": "Deze plug-in heeft geen hash, u installeert deze op eigen risico.",
"reinstall": {
"button_idle": "Herinstalleren",
"button_processing": "Bezig te herinstalleren",
"desc": "Weet je zeker dat je {{artifact}} {{version}} opnieuw wilt installeren?",
"title": "Installeer {{artifact}} opnieuw"
},
"update": {
"button_idle": "Update",
"button_processing": "Bezig met updaten",
"title": "{{artifact}} bijwerken",
"desc": "Weet je zeker dat je {{artifact}} {{version}} wilt updaten?"
}
},
"MultiplePluginsInstallModal": {
"title": {
"mixed_one": "Wijzig {{count}} plug-in",
"mixed_other": "Pas {{count}} plug-ins aan",
"update_one": "1 plugin bijwerken",
"update_other": "{{count}} plug-ins bijwerken",
"install_one": "Installeer 1 plugin",
"install_other": "Installeer {{count}} plugins",
"reinstall_one": "1 plugin opnieuw installeren",
"reinstall_other": "{{count}} plugins opnieuw installeren"
},
"ok_button": {
"idle": "Bevestigen",
"loading": "Werkend"
},
"confirm": "Weet u zeker dat u de volgende wijzigingen wilt aanbrengen?",
"description": {
"install": "Installeer {{name}} {{version}}",
"update": "Update {{name}} naar {{version}}",
"reinstall": "Installeer opnieuw {{name}} {{version}}"
}
},
"PluginListIndex": {
"no_plugin": "Geen plugins geïnstalleerd!",
"plugin_actions": "Plugin Acties",
"reload": "Herladen",
"uninstall": "Verwijderen",
"update_to": "Update naar {{name}}",
"hide": "Snelle toegang: Verberg",
"update_all_one": "Update 1 plugin",
"update_all_other": "Update {{count}} plugins",
"reinstall": "Opnieuw installeren",
"show": "Snelle toegang: Toon"
},
"PluginLoader": {
"decky_title": "Decky",
"error": "Fout",
"plugin_load_error": {
"message": "Fout bij het laden van plugin {{name}}",
"toast": "Fout bij het laden van {{name}}"
},
"plugin_uninstall": {
"button": "Verwijderen",
"desc": "Weet je zeker dat je {{name}} wilt verwijderen?",
"title": "Verwijder {{name}}"
},
"plugin_update_one": "Updates beschikbaar voor 1 plugin!",
"plugin_update_other": "Updates beschikbaar voor {{count}} plugins!",
"decky_update_available": "Update naar {{tag_name}} beschikbaar!",
"plugin_error_uninstall": "Het laden van {{name}} veroorzaakte een uitzondering zoals hierboven weergegeven. Dit betekent meestal dat de plug-in een update vereist voor de nieuwe versie van SteamUI. Controleer of er een update aanwezig is of evalueer de verwijdering ervan in de Decky-instellingen, in het gedeelte Plug-ins."
},
"RemoteDebugging": {
"remote_cef": {
"desc": "Sta ongeauthenticeerde toegang tot de CEF-foutopsporing toe aan iedereen in uw netwerk",
"label": "Externe CEF-foutopsporing toestaan"
}
},
"SettingsDeveloperIndex": {
"cef_console": {
"button": "Console openen",
"label": "CEF Bedieningsscherm",
"desc": "Opent de CEF-console. Alleen nuttig voor foutopsporingsdoeleinden. Dingen hier zijn potentieel gevaarlijk en mogen alleen worden gebruikt als u een ontwikkelaar van plug-ins bent, of hier door een ontwikkelaar naartoe wordt geleid."
},
"header": "Andere",
"react_devtools": {
"ip_label": "IP",
"label": "Aanzetten React DevTools",
"desc": "Maakt verbinding met een computer met React DevTools mogelijk. Als je deze instelling wijzigt, wordt Steam opnieuw geladen. Stel het IP-adres in voordat u het inschakelt."
},
"third_party_plugins": {
"header": "Plug-ins van derden",
"label_desc": "URL",
"label_url": "Installeer Plugin van URL",
"label_zip": "Installeer Plugin van Zip bestand",
"button_install": "Installeren",
"button_zip": "Bladeren"
},
"toast_zip": {
"body": "Installatie mislukt! Alleen ZIP-bestanden worden ondersteund."
},
"valve_internal": {
"desc1": "Schakelt het interne ontwikkelaarsmenu van Valve in.",
"desc2": "Raak niets in dit menu aan tenzij u weet wat het doet.",
"label": "Valve Internal inschakelen"
}
},
"SettingsGeneralIndex": {
"about": {
"decky_version": "Decky versie",
"header": "Over"
},
"beta": {
"header": "Beta deelname"
},
"developer_mode": {
"label": "Ontwikkelaars modus"
},
"other": {
"header": "Overige"
},
"updates": {
"header": "Nieuwe Versies"
}
},
"SettingsIndex": {
"developer_title": "Ontwikkelaar",
"general_title": "Algemeen",
"plugins_title": "Plugins"
},
"Store": {
"store_filter": {
"label": "Filter",
"label_def": "Alles"
},
"store_search": {
"label": "Zoek"
},
"store_sort": {
"label": "Sorteren",
"label_def": "Laatste Geupdate (Nieuwste)"
},
"store_source": {
"label": "Bron Code",
"desc": "Alle broncode van de plug-in is beschikbaar in de SteamDeckHomebrew/decky-plugin-database-repository op GitHub."
},
"store_tabs": {
"about": "Over",
"alph_asce": "Alfabetisch (Z naar A)",
"alph_desc": "Alfabetisch (A naar Z)",
"title": "Bladeren"
},
"store_testing_cta": "Overweeg alsjeblieft om nieuwe plug-ins te testen om het Decky Loader-team te helpen!",
"store_contrib": {
"desc": "Als je wilt bijdragen aan de Decky Plugin winkel, kijk dan in de SteamDeckHomebrew/decky-plugin-template repository op GitHub. Informatie over ontwikkeling en distributie is beschikbaar in de README.",
"label": "Bijdragende"
}
},
"StoreSelect": {
"custom_store": {
"label": "Aangepassingen winkel",
"url_label": "URL"
},
"store_channel": {
"custom": "Aanpassingen",
"default": "Standaard",
"label": "Winkel Kanaal",
"testing": "Testen"
}
},
"Updater": {
"patch_notes_desc": "Correctie opmerkingen",
"updates": {
"check_button": "Controleer op updates",
"checking": "Controleren",
"cur_version": "Huidige versie: {{ver}}",
"install_button": "Installeer Update",
"label": "Update",
"lat_version": "Up-to-date: loopt {{ver}}",
"reloading": "Herstarten",
"updating": "Aan het updaten"
},
"decky_updates": "Decky Nieuwe Versies",
"no_patch_notes_desc": "geen correctie-opmerkingen voor deze versie"
}
}
+34 -6
View File
@@ -14,7 +14,27 @@
},
"FilePickerIndex": {
"folder": {
"select": "Use esta pasta"
"select": "Use esta pasta",
"label": "Pasta",
"show_more": "Mostrar mais arquivos"
},
"files": {
"show_hidden": "Mostrar Arquivos Ocultos",
"all_files": "Todos os arquivos",
"file_type": "Formato de arquivo"
},
"filter": {
"created_asce": "Criado (Mais antigo)",
"created_desc": "Criado (Mais recente)",
"modified_asce": "Alterado (Mais antigo)",
"name_asce": "Z-A",
"name_desc": "A-Z",
"size_asce": "Tamanho (Menor)",
"size_desc": "Tamanho (Maior)",
"modified_desc": "Alterado (Mais recente)"
},
"file": {
"select": "Selecione este arquivo"
}
},
"PluginListLabel": {
@@ -49,7 +69,7 @@
},
"MultiplePluginsInstallModal": {
"title": {
"mixed_one": "Modificar 1 plugin",
"mixed_one": "Modificar {{count}} plugin",
"mixed_many": "Modificar {{count}} plugins",
"mixed_other": "Modificar {{count}} plugins",
"update_one": "Atualizar 1 plugin",
@@ -131,7 +151,6 @@
"label_desc": "URL"
},
"toast_zip": {
"title": "Decky",
"body": "Falha na instalação! Somente arquivos ZIP são suportados."
},
"valve_internal": {
@@ -146,7 +165,6 @@
"header": "Sobre"
},
"developer_mode": {
"desc": "Habilita as configurações de desenvolvedor do Decky.",
"label": "Modo Deselvolvedor"
},
"other": {
@@ -162,7 +180,6 @@
"SettingsIndex": {
"developer_title": "Desenvolvedor",
"general_title": "Geral",
"navbar_settings": "Configurações do Decky",
"plugins_title": "Plugins"
},
"Store": {
@@ -182,7 +199,7 @@
"label_def": "Último atualizado (Mais recente)"
},
"store_source": {
"desc": "Todos os codigo fonte dos plugins estão disponíveis no repositório SteamDeckHomebrew/decky-plugin-database no GitHub.",
"desc": "Todos os códigos fonte dos plugins estão disponíveis no repositório SteamDeckHomebrew/decky-plugin-database no GitHub.",
"label": "Código Fonte"
},
"store_tabs": {
@@ -224,5 +241,16 @@
"hidden_one": "1 plugin está oculto nesta lista",
"hidden_many": "{{count}} plugins estão ocultos nesta lista",
"hidden_other": "{{count}} plugins estão ocultos nesta lista"
},
"DropdownMultiselect": {
"button": {
"back": "Voltar"
}
},
"FilePickerError": {
"errors": {
"file_not_found": "O caminho especificado não é válido. Por favor, confira e reinsira corretamente.",
"unknown": "Ocorreu um erro desconhecido. O erro completo é: {{raw_error}}"
}
}
}
+1 -4
View File
@@ -130,7 +130,6 @@
"label_zip": "Instalar plugin a partir dum ficheiro ZIP"
},
"toast_zip": {
"title": "Decky",
"body": "A instalação falhou! Só ficheiros ZIP são suportados."
},
"valve_internal": {
@@ -154,8 +153,7 @@
"header": "Participação na versão Beta"
},
"developer_mode": {
"label": "Modo de programador",
"desc": "Activa as definições de programador do Decky."
"label": "Modo de programador"
},
"other": {
"header": "Outros"
@@ -167,7 +165,6 @@
"SettingsIndex": {
"developer_title": "Programador",
"general_title": "Geral",
"navbar_settings": "Definições do Decky",
"plugins_title": "Plugins"
},
"Store": {
+247 -21
View File
@@ -1,33 +1,259 @@
{
"MultiplePluginsInstallModal": {
"title": {
"update_one": "",
"update_few": "",
"update_many": "",
"reinstall_one": "",
"reinstall_few": "",
"reinstall_many": "",
"install_one": "",
"install_few": "",
"install_many": "",
"mixed_one": "",
"mixed_few": "",
"mixed_many": ""
"update_one": "Переустановить {{count}} плагин",
"update_few": "Переустановить {{count}} плагинов",
"update_many": "Переустановить {{count}} плагинов",
"reinstall_one": "Переустановить {{count}} плагин",
"reinstall_few": "Переустановить {{count}} плагинов",
"reinstall_many": "Переустановить {{count}} плагинов",
"install_one": "Установить {{count}} плагин",
"install_few": "Установить {{count}} плагинов",
"install_many": "Установить {{count}} плагинов",
"mixed_one": "Изменить {{count}} плагин",
"mixed_few": "Изменить {{count}} плагинов",
"mixed_many": "Изменить {{count}} плагинов"
},
"description": {
"install": "Установить {{name}} {{version}}",
"reinstall": "Переустановить {{name}} {{version}}",
"update": "Обновить с {{name}} на {{version}}"
},
"confirm": "Вы уверены, что хотите внести следующие изменения?",
"ok_button": {
"idle": "Подтвердить",
"loading": "В процессе"
}
},
"PluginListIndex": {
"update_all_one": "",
"update_all_few": "",
"update_all_many": ""
"update_all_one": "Обновить {{count}} плагин",
"update_all_few": "Обновить {{count}} плагинов",
"update_all_many": "Обновить {{count}} плагинов",
"hide": "Быстрый доступ: Скрыть",
"reload": "Перезагрузить",
"uninstall": "Удалить",
"update_to": "Обновить на {{name}}",
"show": "Быстрый доступ: Показать",
"plugin_actions": "Действия с плагинами",
"no_plugin": "Не установлено ни одного плагина!",
"reinstall": "Переустановить"
},
"PluginLoader": {
"plugin_update_one": "",
"plugin_update_few": "",
"plugin_update_many": ""
"plugin_update_one": "Обновления доступны для {{count}} плагина!",
"plugin_update_few": "Обновления доступны для {{count}} плагинов!",
"plugin_update_many": "Обновления доступны для {{count}} плагинов!",
"plugin_error_uninstall": "Загрузка {{name}} вызвала исключение, указанное выше. Обычно это означает, что плагин требует обновления для новой версии SteamUI. Проверьте наличие обновления или попробуйте его удалить в настройках Decky, в разделе Плагины.",
"plugin_load_error": {
"message": "Ошибка загрузки плагина {{name}}",
"toast": "Ошибка загрузки {{name}}"
},
"plugin_uninstall": {
"button": "Удалить",
"desc": "Вы уверенны, что хотите удалить {{name}}?",
"title": "Удалить {{name}}"
},
"decky_title": "Decky",
"decky_update_available": "Доступно обновление на {{tag_name}}!",
"error": "Ошибка"
},
"PluginView": {
"hidden_one": "",
"hidden_few": "",
"hidden_many": ""
"hidden_one": "{{count}} плагин скрыт из списка",
"hidden_few": "{{count}} плагинов скрыт из списка",
"hidden_many": "{{count}} плагинов скрыт из списка"
},
"FilePickerIndex": {
"files": {
"show_hidden": "Показать скрытые файлы",
"all_files": "Все файлы",
"file_type": "Тип файла"
},
"filter": {
"created_asce": "Создан (самый старый)",
"modified_asce": "Модифицирован (самый новый)",
"modified_desc": "Модифицирован (самый старый)",
"size_asce": "Размер (самый малый)",
"size_desc": "Размер (самый большой)",
"name_asce": "Z-A",
"name_desc": "A-Z",
"created_desc": "Создан (самый новый)"
},
"folder": {
"label": "Папка",
"show_more": "Показать больше файлов",
"select": "Использовать этот каталог"
},
"file": {
"select": "Выберите этот файл"
}
},
"PluginCard": {
"plugin_install": "Установить",
"plugin_no_desc": "Нет описания.",
"plugin_version_label": "Версия плагина",
"plugin_full_access": "Этот плагин имеет полный доступ к вашему Steam Deck."
},
"PluginInstallModal": {
"install": {
"button_processing": "Установка",
"title": "Установить {{artifact}}",
"button_idle": "Установить",
"desc": "Вы уверенны, что хотите установить {{artifact}} {{version}}?"
},
"no_hash": "У данного плагина отсутствует хэш, устанавливайте на свой страх и риск.",
"reinstall": {
"title": "Переустановить {{artifact}}",
"desc": "Вы уверенны, что хотите переустановить {{artifact}} {{version}}?",
"button_idle": "Переустановить",
"button_processing": "Переустановка"
},
"update": {
"button_idle": "Обновить",
"button_processing": "Обновление",
"desc": "Вы уверенны, что хотите обновить {{artifact}} {{version}}?",
"title": "Обновить {{artifact}}"
}
},
"PluginListLabel": {
"hidden": "Скрыто из меню быстрого доступа"
},
"RemoteDebugging": {
"remote_cef": {
"desc": "Разрешить неаутентифицированный доступ к отладчику CEF всем в вашей сети",
"label": "Разрешить удаленную отладку CEF"
}
},
"SettingsDeveloperIndex": {
"header": "Другое",
"third_party_plugins": {
"button_install": "Установить",
"label_zip": "Установить плагин из ZIP файла",
"label_url": "Установить плагин из URL",
"button_zip": "Обзор",
"header": "Сторонние плагины",
"label_desc": "Ссылка"
},
"react_devtools": {
"ip_label": "IP",
"desc": "Позволяет подключиться к компьютеру, на котором работает React DevTools. Изменение этого параметра приведет к перезагрузке Steam. Установите IP-адрес перед включением.",
"label": "Включить React DevTools"
},
"cef_console": {
"button": "Открыть консоль",
"desc": "Открывает консоль CEF. Полезно только для целей отладки. Настройки здесь потенциально опасны и должны использоваться только в том случае, если вы являетесь разработчиком плагинов или направленны сюда одним из них.",
"label": "CEF Консоль"
},
"valve_internal": {
"desc1": "Включает внутреннее меню разработчика Valve.",
"label": "Включить Valve Internal",
"desc2": "Ничего не трогайте в этом меню, если не знаете, что оно делает."
}
},
"SettingsGeneralIndex": {
"beta": {
"header": "Бета программа"
},
"developer_mode": {
"label": "Режим разработчика"
},
"other": {
"header": "Другое"
},
"about": {
"decky_version": "Версия Decky",
"header": "Информация"
},
"updates": {
"header": "Обновления"
},
"notifications": {
"decky_updates_label": "Обновление Decky доступно",
"header": "Уведомления",
"plugin_updates_label": "Доступны обновления плагинов"
}
},
"Store": {
"store_sort": {
"label": "Сортировка",
"label_def": "Последнее обновление(самые новые)"
},
"store_source": {
"label": "Исходный код",
"desc": "Весь исходный код плагина доступен в репозитории SteamDeckHomebrew/decky-plugin-database на GitHub."
},
"store_tabs": {
"about": "Информация",
"alph_desc": "По алфавиту (A - Z)",
"title": "Обзор",
"alph_asce": "По алфавиту (Z - A)"
},
"store_testing_cta": "Пожалуйста, рассмотрите возможность тестирования новых плагинов, чтобы помочь команде Decky Loader!",
"store_contrib": {
"desc": "Если вы хотите внести свой вклад в магазин плагинов Decky, проверьте репозиторий SteamDeckHomebrew/decky-plugin-template на GitHub. Информация о разработке и распространении доступна в README.",
"label": "Помощь проекту"
},
"store_filter": {
"label": "Фильтр",
"label_def": "Все"
},
"store_search": {
"label": "Поиск"
}
},
"StoreSelect": {
"custom_store": {
"label": "Сторонний магазин",
"url_label": "URL"
},
"store_channel": {
"custom": "Сторонний",
"default": "По-умолчанию",
"label": "Канал магазина",
"testing": "Тестирование"
}
},
"Updater": {
"decky_updates": "Обновления Decky",
"no_patch_notes_desc": "нет примечаний к патчу для этой версии",
"updates": {
"check_button": "Проверить обновления",
"checking": "Проверка",
"cur_version": "Текущая версия: {{ver}}",
"updating": "Обновление",
"install_button": "Установить обновление",
"label": "Обновления",
"lat_version": "Обновлено: версия {{ver}}",
"reloading": "Перезагрузка"
},
"patch_notes_desc": "Примечания к патчу"
},
"FilePickerError": {
"errors": {
"perm_denied": "У вас нет доступа к указанному каталогу.. Пожалуйста, проверьте имеет ли пользователь (deck на Steam Deck) соответствующие права доступа к указанной папке/файлу.",
"file_not_found": "Указан недействительный путь. Пожалуйста, проверьте его и повторите ввод.",
"unknown": "Произошла неизвестная ошибка. Текст ошибки: {{raw_error}}"
}
},
"DropdownMultiselect": {
"button": {
"back": "Назад"
}
},
"BranchSelect": {
"update_channel": {
"prerelease": "Предрелиз",
"stable": "Стабильный",
"testing": "Тестовый",
"label": "Канал обновлений"
}
},
"Developer": {
"5secreload": "Перезагрузка через 5 секунд",
"disabling": "Выключение React DevTools",
"enabling": "Включение React DevTools"
},
"SettingsIndex": {
"developer_title": "Разработчик",
"general_title": "Общее",
"plugins_title": "Плагины"
}
}
+1 -5
View File
@@ -11,9 +11,6 @@
"label_desc": "URL",
"label_url": "Instalo Shtes Nga URL",
"label_zip": "Instalo Shtes Nga ZIP"
},
"toast_zip": {
"title": "Decky"
}
},
"BranchSelect": {
@@ -82,8 +79,7 @@
},
"SettingsIndex": {
"developer_title": "Zhvillues",
"general_title": "Gjeneral",
"navbar_settings": "Cilësimet Decky"
"general_title": "Gjeneral"
},
"Store": {
"store_sort": {
-3
View File
@@ -125,7 +125,6 @@
"button_zip": "Огляд"
},
"toast_zip": {
"title": "Decky",
"body": "Помилка встановлення! Підтримуються лише ZIP-файли."
},
"valve_internal": {
@@ -143,7 +142,6 @@
"header": "Участь у Beta"
},
"developer_mode": {
"desc": "Вмикає розробницькі налаштування Decky.",
"label": "Розробницький режим"
},
"other": {
@@ -156,7 +154,6 @@
"SettingsIndex": {
"developer_title": "Розробник",
"general_title": "Загальне",
"navbar_settings": "Налаштування Decky",
"plugins_title": "Плагіни"
},
"Store": {
+42 -11
View File
@@ -14,7 +14,27 @@
},
"FilePickerIndex": {
"folder": {
"select": "使用这个文件夹"
"select": "使用这个文件夹",
"label": "文件夹",
"show_more": "显示更多文件"
},
"filter": {
"created_asce": "创建日期(最旧)",
"created_desc": "创建日期(最新)",
"modified_asce": "修改日期(最旧)",
"modified_desc": "修改日期(最新)",
"name_asce": "字母降序",
"name_desc": "字母升序",
"size_asce": "大小(最小)",
"size_desc": "大小(最大)"
},
"files": {
"all_files": "全部文件",
"file_type": "文件类型",
"show_hidden": "显示隐藏文件"
},
"file": {
"select": "选择此文件"
}
},
"PluginCard": {
@@ -52,8 +72,8 @@
"uninstall": "卸载",
"update_to": "更新 {{name}}",
"update_all_other": "更新 {{count}} 个插件",
"show": "快速访问菜单:可见",
"hide": "快速访问菜单:不可见"
"show": "快速访问菜单中显示",
"hide": "快速访问菜单中隐藏"
},
"PluginLoader": {
"decky_title": "Decky",
@@ -91,10 +111,6 @@
"label_url": "从 URL 安装插件",
"label_zip": "从 ZIP 压缩文件安装插件"
},
"toast_zip": {
"title": "Decky",
"body": "安装失败!只有 ZIP 格式的插件被支持。"
},
"valve_internal": {
"desc1": "启用 Valve 内部开发者菜单。",
"desc2": "除非你知道你在干什么,否则请不要修改此菜单中的任何内容。",
@@ -116,20 +132,23 @@
"header": "参与测试"
},
"developer_mode": {
"label": "开发者模式",
"desc": "启用 Decky 的开发者测试。"
"label": "开发者模式"
},
"other": {
"header": "其他"
},
"updates": {
"header": "更新"
},
"notifications": {
"header": "通知",
"decky_updates_label": "Decky 更新可用",
"plugin_updates_label": "插件更新可用"
}
},
"SettingsIndex": {
"developer_title": "开发者",
"general_title": "通用",
"navbar_settings": "Decky 设置",
"plugins_title": "插件"
},
"Store": {
@@ -206,9 +225,21 @@
}
},
"PluginListLabel": {
"hidden": "快速访问菜单中不可见"
"hidden": "快速访问菜单中已隐藏"
},
"PluginView": {
"hidden_other": "此列表隐藏了 {{count}} 个插件"
},
"DropdownMultiselect": {
"button": {
"back": "返回"
}
},
"FilePickerError": {
"errors": {
"file_not_found": "指定路径无效。请检查并输入正确的路径。",
"unknown": "发生了一个为止错误。原始错误为:{{raw_error}}",
"perm_denied": "你没有访问特定目录的权限。请检查你的用户(Steam Deck 中的 deck 账户)有着相对应的权限以访问特定的文件夹或文件。"
}
}
}
+1 -4
View File
@@ -87,7 +87,6 @@
"header": "第三方外掛程式"
},
"toast_zip": {
"body": "安裝失敗!只支援 ZIP 檔案。",
"title": "Decky"
},
"valve_internal": {
@@ -116,8 +115,7 @@
"header": "參與測試"
},
"developer_mode": {
"label": "開發人員模式",
"desc": "啟用 Decky 的開發人員模式。"
"label": "開發人員模式"
},
"other": {
"header": "其他"
@@ -129,7 +127,6 @@
"SettingsIndex": {
"developer_title": "開發人員",
"general_title": "一般",
"navbar_settings": "Decky 設定",
"plugins_title": "外掛程式"
},
"Store": {
+3
View File
@@ -63,10 +63,13 @@ class PluginWrapper:
environ["DECKY_USER_HOME"] = helpers.get_home_path()
environ["DECKY_HOME"] = helpers.get_homebrew_path()
environ["DECKY_PLUGIN_SETTINGS_DIR"] = path.join(environ["DECKY_HOME"], "settings", self.plugin_directory)
helpers.mkdir_as_user(path.join(environ["DECKY_HOME"], "settings"))
helpers.mkdir_as_user(environ["DECKY_PLUGIN_SETTINGS_DIR"])
environ["DECKY_PLUGIN_RUNTIME_DIR"] = path.join(environ["DECKY_HOME"], "data", self.plugin_directory)
helpers.mkdir_as_user(path.join(environ["DECKY_HOME"], "data"))
helpers.mkdir_as_user(environ["DECKY_PLUGIN_RUNTIME_DIR"])
environ["DECKY_PLUGIN_LOG_DIR"] = path.join(environ["DECKY_HOME"], "logs", self.plugin_directory)
helpers.mkdir_as_user(path.join(environ["DECKY_HOME"], "logs"))
helpers.mkdir_as_user(environ["DECKY_PLUGIN_LOG_DIR"])
environ["DECKY_PLUGIN_DIR"] = path.join(self.plugin_path, self.plugin_directory)
environ["DECKY_PLUGIN_NAME"] = self.name
+1 -1
View File
@@ -36,7 +36,7 @@ export default {
lineEnding: 'auto',
// Control the line ending. See options at https://github.com/ryanve/eol
locales: ['en-US', 'it-IT'],
locales: ['en-US'],
// An array of the locales in your applications
namespaceSeparator: false,
+9
View File
@@ -1,5 +1,6 @@
import { FC, createContext, useContext, useEffect, useState } from 'react';
import { DEFAULT_NOTIFICATION_SETTINGS, NotificationSettings } from '../notification-service';
import { Plugin } from '../plugin';
import { PluginUpdateMapping } from '../store';
import { VerInfo } from '../updater';
@@ -13,6 +14,7 @@ interface PublicDeckyState {
hasLoaderUpdate?: boolean;
isLoaderUpdating: boolean;
versionInfo: VerInfo | null;
notificationSettings: NotificationSettings;
userInfo: UserInfo | null;
}
@@ -30,6 +32,7 @@ export class DeckyState {
private _hasLoaderUpdate: boolean = false;
private _isLoaderUpdating: boolean = false;
private _versionInfo: VerInfo | null = null;
private _notificationSettings = DEFAULT_NOTIFICATION_SETTINGS;
private _userInfo: UserInfo | null = null;
public eventBus = new EventTarget();
@@ -44,6 +47,7 @@ export class DeckyState {
hasLoaderUpdate: this._hasLoaderUpdate,
isLoaderUpdating: this._isLoaderUpdating,
versionInfo: this._versionInfo,
notificationSettings: this._notificationSettings,
userInfo: this._userInfo,
};
}
@@ -93,6 +97,11 @@ export class DeckyState {
this.notifyUpdate();
}
setNotificationSettings(notificationSettings: NotificationSettings) {
this._notificationSettings = notificationSettings;
this.notifyUpdate();
}
setUserInfo(userInfo: UserInfo) {
this._userInfo = userInfo;
this.notifyUpdate();
@@ -1,10 +1,11 @@
import { FC, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { IconContext } from 'react-icons';
import { FaExclamationTriangle, FaQuestionCircle } from 'react-icons/fa';
import { FaExclamationTriangle, FaQuestionCircle, FaUserSlash } from 'react-icons/fa';
export enum FileErrorTypes {
FileNotFound,
PermissionDenied,
Unknown,
None,
}
@@ -25,6 +26,10 @@ const FilePickerError: FC<FilePickerErrorProps> = ({ error, rawError = null }) =
setText(t('FilePickerError.errors.file_not_found'));
setIcon(<FaExclamationTriangle />);
break;
case FileErrorTypes.PermissionDenied:
setText(t('FilePickerError.errors.perm_denied'));
setIcon(<FaUserSlash />);
break;
case FileErrorTypes.Unknown:
setText(t('FilePickerError.errors.unknown', { raw_error: rawError }));
setIcon(<FaQuestionCircle />);
@@ -210,6 +210,9 @@ const FilePicker: FunctionComponent<FilePickerProps> = ({
case theError.match(/\[WinError\s3.*/i)?.input:
setError(FileErrorTypes.FileNotFound);
break;
case theError.match(/\[Errno\s13.*/i)?.input:
setError(FileErrorTypes.PermissionDenied);
break;
default:
setRawError(theError);
setError(FileErrorTypes.Unknown);
@@ -29,6 +29,7 @@ const installFromZip = async () => {
return;
}
window.DeckyPluginLoader.openFilePickerV2(
FileSelectionType.FILE,
path,
true,
true,
@@ -36,7 +37,6 @@ const installFromZip = async () => {
['zip'],
false,
false,
FileSelectionType.FILE,
).then((val) => {
const url = `file://${val.path}`;
console.log(`Installing plugin locally from ${url}`);
@@ -0,0 +1,35 @@
import { Field, Toggle } from 'decky-frontend-lib';
import { FC } from 'react';
import { useTranslation } from 'react-i18next';
import { useDeckyState } from '../../../DeckyState';
const NotificationSettings: FC = () => {
const { notificationSettings } = useDeckyState();
const notificationService = window.DeckyPluginLoader.notificationService;
const { t } = useTranslation();
return (
<>
<Field label={t('SettingsGeneralIndex.notifications.decky_updates_label')}>
<Toggle
value={notificationSettings.deckyUpdates}
onChange={(deckyUpdates) => {
notificationService.update({ ...notificationSettings, deckyUpdates });
}}
/>
</Field>
<Field label={t('SettingsGeneralIndex.notifications.plugin_updates_label')}>
<Toggle
value={notificationSettings.pluginUpdates}
onChange={(pluginUpdates) => {
notificationService.update({ ...notificationSettings, pluginUpdates });
}}
/>
</Field>
</>
);
};
export default NotificationSettings;
@@ -3,6 +3,7 @@ import { useTranslation } from 'react-i18next';
import { useDeckyState } from '../../../DeckyState';
import BranchSelect from './BranchSelect';
import NotificationSettings from './NotificationSettings';
import StoreSelect from './StoreSelect';
import UpdaterSettings from './Updater';
@@ -27,6 +28,10 @@ export default function GeneralSettings({
<BranchSelect />
<StoreSelect />
</DialogControlsSection>
<DialogControlsSection>
<DialogControlsSectionHeader>{t('SettingsGeneralIndex.notifications.header')}</DialogControlsSectionHeader>
<NotificationSettings />
</DialogControlsSection>
<DialogControlsSection>
<DialogControlsSectionHeader>{t('SettingsGeneralIndex.other.header')}</DialogControlsSectionHeader>
<Field label={t('SettingsGeneralIndex.developer_mode.label')}>
+51
View File
@@ -0,0 +1,51 @@
import { DeckyState } from './components/DeckyState';
import { getSetting, setSetting } from './utils/settings';
export interface NotificationSettings {
deckyUpdates: boolean;
pluginUpdates: boolean;
}
export const DEFAULT_NOTIFICATION_SETTINGS: NotificationSettings = {
deckyUpdates: true,
pluginUpdates: true,
};
/**
* A Service class for managing the notification settings
*
* It's mostly responsible for sending setting updates to the server and keeping the local state in sync.
*/
export class NotificationService {
constructor(private deckyState: DeckyState) {}
async init() {
const notificationSettings = await getSetting<Partial<NotificationSettings>>('notificationSettings', {});
// Adding a fallback to the default settings to be backwards compatible if we ever add new notification settings
this.deckyState.setNotificationSettings({
...DEFAULT_NOTIFICATION_SETTINGS,
...notificationSettings,
});
}
/**
* Sends the new notification settings to the server and persists it locally in the decky state
*
* @param notificationSettings The new notification settings
*/
async update(notificationSettings: NotificationSettings) {
await setSetting('notificationSettings', notificationSettings);
this.deckyState.setNotificationSettings(notificationSettings);
}
/**
* For a specific event, returns true if a notification should be shown
*
* @param event The notification event that should be checked
* @returns true if the notification should be shown
*/
shouldNotify(event: keyof NotificationSettings) {
return this.deckyState.publicState().notificationSettings[event];
}
}
+21 -35
View File
@@ -24,6 +24,7 @@ import PluginView from './components/PluginView';
import WithSuspense from './components/WithSuspense';
import { HiddenPluginsService } from './hidden-plugins-service';
import Logger from './logger';
import { NotificationService } from './notification-service';
import { InstallType, Plugin } from './plugin';
import RouterHook from './router-hook';
import { deinitSteamFixes, initSteamFixes } from './steamfixes';
@@ -47,7 +48,9 @@ class PluginLoader extends Logger {
private routerHook: RouterHook = new RouterHook();
public toaster: Toaster = new Toaster();
private deckyState: DeckyState = new DeckyState();
public hiddenPluginsService = new HiddenPluginsService(this.deckyState);
public notificationService = new NotificationService(this.deckyState);
private reloadLock: boolean = false;
// stores a list of plugin names which requested to be reloaded
@@ -121,18 +124,20 @@ class PluginLoader extends Logger {
public async notifyUpdates() {
const versionInfo = await this.updateVersion();
if (versionInfo?.remote && versionInfo?.remote?.tag_name != versionInfo?.current) {
this.toaster.toast({
title: <TranslationHelper trans_class={TranslationClass.PLUGIN_LOADER} trans_text="decky_title" />,
body: (
<TranslationHelper
trans_class={TranslationClass.PLUGIN_LOADER}
trans_text="decky_update_available"
i18n_args={{ tag_name: versionInfo?.remote?.tag_name }}
/>
),
onClick: () => Router.Navigate('/decky/settings'),
});
this.deckyState.setHasLoaderUpdate(true);
if (this.notificationService.shouldNotify('deckyUpdates')) {
this.toaster.toast({
title: <TranslationHelper trans_class={TranslationClass.PLUGIN_LOADER} trans_text="decky_title" />,
body: (
<TranslationHelper
trans_class={TranslationClass.PLUGIN_LOADER}
trans_text="decky_update_available"
i18n_args={{ tag_name: versionInfo?.remote?.tag_name }}
/>
),
onClick: () => Router.Navigate('/decky/settings'),
});
}
}
await sleep(7000);
await this.notifyPluginUpdates();
@@ -146,7 +151,7 @@ class PluginLoader extends Logger {
public async notifyPluginUpdates() {
const updates = await this.checkPluginUpdates();
if (updates?.size > 0) {
if (updates?.size > 0 && this.notificationService.shouldNotify('pluginUpdates')) {
this.toaster.toast({
title: <TranslationHelper trans_class={TranslationClass.PLUGIN_LOADER} trans_text="decky_title" />,
body: (
@@ -220,6 +225,7 @@ class PluginLoader extends Logger {
});
this.hiddenPluginsService.init();
this.notificationService.init();
}
public deinit() {
@@ -365,33 +371,14 @@ class PluginLoader extends Logger {
regex?: RegExp,
): Promise<{ path: string; realpath: string }> {
if (selectFiles) {
return this.openFilePickerV2(
startPath,
true,
true,
regex,
undefined,
undefined,
undefined,
undefined,
FileSelectionType.FILE,
);
return this.openFilePickerV2(FileSelectionType.FILE, startPath, true, true, regex);
} else {
return this.openFilePickerV2(
startPath,
false,
true,
regex,
undefined,
undefined,
undefined,
undefined,
FileSelectionType.FOLDER,
);
return this.openFilePickerV2(FileSelectionType.FOLDER, startPath, false, true, regex);
}
}
openFilePickerV2(
select: FileSelectionType,
startPath: string,
includeFiles?: boolean,
includeFolders?: boolean,
@@ -400,7 +387,6 @@ class PluginLoader extends Logger {
showHiddenFiles?: boolean,
allowAllFiles?: boolean,
max?: number,
select?: FileSelectionType,
): Promise<{ path: string; realpath: string }> {
return new Promise((resolve, reject) => {
const Content = ({ closeModal }: { closeModal?: () => void }) => (