mirror of
https://github.com/SteamDeckHomebrew/decky-loader.git
synced 2026-06-27 21:49:13 +00:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2ba9bce3de | |||
| d4a76da78c | |||
| c7e4eb1b3f | |||
| 5460f95eac | |||
| 3ae4ceb431 | |||
| 7a725935fc | |||
| 9437d7ed99 | |||
| 34cf24f7c0 | |||
| 5a9959f70f | |||
| 96069d3299 | |||
| b4c90683aa | |||
| 6993516ccb | |||
| 37c1a0e964 | |||
| 6d086fb5d5 | |||
| 7c805e9b80 | |||
| 6b3f9e4a9e | |||
| dea08868d3 | |||
| 365866c35f |
@@ -12,7 +12,7 @@ body:
|
||||
- label: I have searched existing issues
|
||||
- label: This issue is not a duplicate of an existing one
|
||||
- label: I have checked the [common issues section in the readme file](https://github.com/SteamDeckHomebrew/decky-loader#-common-issues)
|
||||
- label: I have attached logs to this bug report (failure to include logs will mean your issue will not be responded too).
|
||||
- label: I have attached logs to this bug report (failure to include logs will mean your issue may not be responded to).
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Steam Deck Homebrew Discord Server
|
||||
url: https://discord.gg/ZU74G2NJzk
|
||||
url: https://decky.xyz/discord
|
||||
about: Please ask and answer questions here.
|
||||
|
||||
+27
-10
@@ -31,7 +31,7 @@ permissions:
|
||||
jobs:
|
||||
build:
|
||||
name: Build PluginLoader
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- name: Print input
|
||||
@@ -47,15 +47,32 @@ jobs:
|
||||
with:
|
||||
node-version: 18
|
||||
|
||||
- name: Set up Python 3.10.2 🐍
|
||||
- name: Set up Python 3.11.4 🐍
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: "3.10.2"
|
||||
|
||||
python-version: "3.11.4"
|
||||
|
||||
- name: Upgrade SQLite 3 binary version to 3.42.0 🧑💻
|
||||
run: >
|
||||
cd /tmp &&
|
||||
wget "https://www.sqlite.org/2023/sqlite-autoconf-3420000.tar.gz" &&
|
||||
tar -xvzf sqlite-autoconf-3420000.tar.gz &&
|
||||
cd /tmp/sqlite-autoconf-3420000 &&
|
||||
./configure --prefix=/usr --disable-static CFLAGS="-g" CPPFLAGS="$CPPFLAGS -DSQLITE_ENABLE_COLUMN_METADATA=1 \
|
||||
-DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_ENABLE_DBSTAT_VTAB=1 -DSQLITE_ENABLE_FTS3_TOKENIZER=1 \
|
||||
-DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_SECURE_DELETE -DSQLITE_ENABLE_STMTVTAB -DSQLITE_MAX_VARIABLE_NUMBER=250000 \
|
||||
-DSQLITE_MAX_EXPR_DEPTH=10000 -DSQLITE_ENABLE_MATH_FUNCTIONS" &&
|
||||
make &&
|
||||
sudo make install &&
|
||||
sudo cp /usr/lib/libsqlite3.so /usr/lib/x86_64-linux-gnu/ &&
|
||||
sudo cp /usr/lib/libsqlite3.so.0 /usr/lib/x86_64-linux-gnu/ &&
|
||||
sudo cp /usr/lib/libsqlite3.so.0.8.6 /usr/lib/x86_64-linux-gnu/ &&
|
||||
rm -r /tmp/sqlite-autoconf-3420000
|
||||
|
||||
- name: Install Python dependencies ⬇️
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install pyinstaller==5.5
|
||||
pip install pyinstaller==5.13.0
|
||||
[ -f requirements.txt ] && pip install -r requirements.txt
|
||||
|
||||
- name: Install JS dependencies ⬇️
|
||||
@@ -69,7 +86,7 @@ jobs:
|
||||
run: pnpm run build
|
||||
|
||||
- name: Build Python Backend 🛠️
|
||||
run: pyinstaller --noconfirm --onefile --name "PluginLoader" --add-data ./backend/static:/static --add-data ./backend/locales:/locales --add-data ./backend/legacy:/legacy --add-data ./plugin:/plugin ./backend/*.py
|
||||
run: pyinstaller --noconfirm --onefile --name "PluginLoader" --add-data ./backend/static:/static --add-data ./backend/locales:/locales --add-data ./backend/legacy:/legacy --add-data ./plugin:/plugin --hidden-import=sqlite3 ./backend/*.py
|
||||
|
||||
- name: Upload package artifact ⬆️
|
||||
if: ${{ !env.ACT }}
|
||||
@@ -97,15 +114,15 @@ jobs:
|
||||
with:
|
||||
node-version: 18
|
||||
|
||||
- name: Set up Python 3.10.2 🐍
|
||||
- name: Set up Python 3.11.4 🐍
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: "3.10.2"
|
||||
python-version: "3.11.4"
|
||||
|
||||
- name: Install Python dependencies ⬇️
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install pyinstaller==5.5
|
||||
pip install pyinstaller==5.13.0
|
||||
pip install -r requirements.txt
|
||||
|
||||
- name: Install JS dependencies ⬇️
|
||||
@@ -119,7 +136,7 @@ jobs:
|
||||
run: pnpm run build
|
||||
|
||||
- name: Build Python Backend 🛠️
|
||||
run: pyinstaller --noconfirm --onefile --name "PluginLoader" --add-data "./backend/static;/static" --add-data "./backend/locales;/locales" --add-data "./backend/legacy;/legacy" --add-data "./plugin;/plugin" ./backend/main.py
|
||||
run: pyinstaller --noconfirm --onefile --name "PluginLoader" --add-data "./backend/static;/static" --add-data "./backend/locales;/locales" --add-data "./backend/legacy;/legacy" --add-data "./plugin;/plugin" --hidden-import=sqlite3 ./backend/main.py
|
||||
|
||||
- name: Upload package artifact ⬆️
|
||||
uses: actions/upload-artifact@v3
|
||||
|
||||
@@ -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}} добавки са скрити от този списък"
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,27 @@
|
||||
},
|
||||
"FilePickerIndex": {
|
||||
"folder": {
|
||||
"select": "Použít tuto složku"
|
||||
"select": "Použít tuto složku",
|
||||
"label": "Složka",
|
||||
"show_more": "Zobrazit více souborů"
|
||||
},
|
||||
"filter": {
|
||||
"created_asce": "Vytvořeno (Nejstarší)",
|
||||
"created_desc": "Vytvořeno (Nejnovější)",
|
||||
"modified_asce": "Upraveno (Nejstarší)",
|
||||
"modified_desc": "Upraveno (Nejnovější)",
|
||||
"name_asce": "Z-A",
|
||||
"name_desc": "A-Z",
|
||||
"size_asce": "Velikost (Nejmenší)",
|
||||
"size_desc": "Velikost (Největší)"
|
||||
},
|
||||
"files": {
|
||||
"show_hidden": "Zobrazit skryté soubory",
|
||||
"all_files": "Všechny soubory",
|
||||
"file_type": "Typ souboru"
|
||||
},
|
||||
"file": {
|
||||
"select": "Vybrat tento soubor"
|
||||
}
|
||||
},
|
||||
"PluginView": {
|
||||
@@ -54,7 +74,7 @@
|
||||
},
|
||||
"MultiplePluginsInstallModal": {
|
||||
"title": {
|
||||
"mixed_one": "Upravit 1 plugin",
|
||||
"mixed_one": "Upravit {{count}} plugin",
|
||||
"mixed_few": "Upravit {{count}} pluginů",
|
||||
"mixed_other": "Upravit {{count}} pluginů",
|
||||
"reinstall_one": "Přeinstalovat 1 plugin",
|
||||
@@ -129,10 +149,6 @@
|
||||
"label_url": "Instalovat plugin z URL",
|
||||
"label_zip": "Instalovat plugin ze ZIP souboru"
|
||||
},
|
||||
"toast_zip": {
|
||||
"body": "Instalace selhala! Podporovány jsou pouze soubory ZIP.",
|
||||
"title": "Decky"
|
||||
},
|
||||
"valve_internal": {
|
||||
"desc1": "Zapíná interní vývojářské menu Valve.",
|
||||
"desc2": "Nedotýkejte se ničeho v této nabídce, pokud nevíte, co děláte.",
|
||||
@@ -154,7 +170,6 @@
|
||||
"header": "Účast v betě"
|
||||
},
|
||||
"developer_mode": {
|
||||
"desc": "Zapíná vývojářské nastavení Decky.",
|
||||
"label": "Vývojářský režim"
|
||||
},
|
||||
"other": {
|
||||
@@ -162,12 +177,16 @@
|
||||
},
|
||||
"updates": {
|
||||
"header": "Aktualizace"
|
||||
},
|
||||
"notifications": {
|
||||
"decky_updates_label": "Dostupná aktualizace Decky",
|
||||
"header": "Notifikace",
|
||||
"plugin_updates_label": "Dostupná aktualizace pluginu"
|
||||
}
|
||||
},
|
||||
"SettingsIndex": {
|
||||
"developer_title": "Vývojář",
|
||||
"general_title": "Obecné",
|
||||
"navbar_settings": "Nastavení Decky",
|
||||
"plugins_title": "Pluginy"
|
||||
},
|
||||
"Store": {
|
||||
@@ -224,5 +243,17 @@
|
||||
"decky_updates": "Aktualizace Decky",
|
||||
"patch_notes_desc": "Poznámky k verzi",
|
||||
"no_patch_notes_desc": "žádné poznámky pro tuto verzi"
|
||||
},
|
||||
"DropdownMultiselect": {
|
||||
"button": {
|
||||
"back": "Zpět"
|
||||
}
|
||||
},
|
||||
"FilePickerError": {
|
||||
"errors": {
|
||||
"file_not_found": "Zadaná cesta není platná. Zkontrolujte ji a zadejte znovu správně.",
|
||||
"unknown": "Nastala neznámá chyba. Nezpracovaná chyba je: {{raw_error}}",
|
||||
"perm_denied": "Nemáte přístup k zadanému adresáři. Zkontrolujte, zda jako uživatel (deck na Steam Decku) máte odpovídající oprávnění pro přístup k dané složce/souboru."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,10 +92,6 @@
|
||||
"button_install": "Installieren",
|
||||
"label_url": "Installiere Erweiterung via URL"
|
||||
},
|
||||
"toast_zip": {
|
||||
"body": "Installation fehlgeschlagen! Nur ZIP Datein werden unterstützt.",
|
||||
"title": "Decky"
|
||||
},
|
||||
"valve_internal": {
|
||||
"desc2": "Fasse in diesem Menü nichts an, es sei denn, du weißt was du tust.",
|
||||
"label": "Aktiviere Valve-internes Menü",
|
||||
@@ -111,7 +107,6 @@
|
||||
"header": "Beta Teilnahme"
|
||||
},
|
||||
"developer_mode": {
|
||||
"desc": "Aktiviere Deckys Entwickleroptionen.",
|
||||
"label": "Entwickleroptionen"
|
||||
},
|
||||
"other": {
|
||||
@@ -124,8 +119,7 @@
|
||||
"SettingsIndex": {
|
||||
"developer_title": "Entwickler",
|
||||
"general_title": "Allgemein",
|
||||
"plugins_title": "Erweiterungen",
|
||||
"navbar_settings": "Decky Einstellungen"
|
||||
"plugins_title": "Erweiterungen"
|
||||
},
|
||||
"Store": {
|
||||
"store_contrib": {
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
"label_url": "Εγκατάσταση επέκτασης απο URL",
|
||||
"label_zip": "Εγκατάσταση επέκτασης από αρχείο ZIP"
|
||||
},
|
||||
"toast_zip": {
|
||||
"title": "Decky",
|
||||
"body": "Η εγκατάσταση απέτυχε. Μόνο αρχεία ZIP επιτρέπονται."
|
||||
},
|
||||
"valve_internal": {
|
||||
"desc1": "Ενεργοποιεί το μενού προγραμματιστή της Valve.",
|
||||
"desc2": "Μην αγγίξετε τίποτα σε αυτό το μενού εκτός και αν ξέρετε τι κάνει.",
|
||||
@@ -102,7 +98,6 @@
|
||||
"header": "Σχετικά"
|
||||
},
|
||||
"developer_mode": {
|
||||
"desc": "Ενεργοποιεί το μενού προγραμματιστή του Decky.",
|
||||
"label": "Λειτουργία προγραμματιστή"
|
||||
},
|
||||
"other": {
|
||||
@@ -118,8 +113,7 @@
|
||||
"SettingsIndex": {
|
||||
"plugins_title": "Επεκτάσεις",
|
||||
"developer_title": "Προγραμματιστής",
|
||||
"general_title": "Γενικά",
|
||||
"navbar_settings": "Ρυθμίσεις Decky"
|
||||
"general_title": "Γενικά"
|
||||
},
|
||||
"Store": {
|
||||
"store_contrib": {
|
||||
|
||||
@@ -220,7 +220,11 @@
|
||||
"alph_desc": "Alphabetical (A to Z)",
|
||||
"title": "Browse"
|
||||
},
|
||||
"store_testing_cta": "Please consider testing new plugins to help the Decky Loader team!"
|
||||
"store_testing_cta": "Please consider testing new plugins to help the Decky Loader team!",
|
||||
"store_testing_warning": {
|
||||
"desc": "You can use this store channel to test bleeding-edge plugin versions. Be sure to leave feedback on GitHub so the plugin can be updated for all users.",
|
||||
"label": "Welcome to the Testing Store Channel"
|
||||
}
|
||||
},
|
||||
"StoreSelect": {
|
||||
"custom_store": {
|
||||
@@ -234,6 +238,10 @@
|
||||
"testing": "Testing"
|
||||
}
|
||||
},
|
||||
"TitleView": {
|
||||
"decky_store_desc": "Open Decky Store",
|
||||
"settings_desc": "Open Decky Settings"
|
||||
},
|
||||
"Updater": {
|
||||
"decky_updates": "Decky Updates",
|
||||
"no_patch_notes_desc": "no patch notes for this version",
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
"label": "Activar menú interno de Valve",
|
||||
"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": {
|
||||
"button": "Abrir consola",
|
||||
"label": "Consola CEF",
|
||||
@@ -118,8 +114,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 +126,6 @@
|
||||
"SettingsIndex": {
|
||||
"developer_title": "Desarrollador",
|
||||
"general_title": "General",
|
||||
"navbar_settings": "Ajustes de Decky",
|
||||
"plugins_title": "Plugins"
|
||||
},
|
||||
"Store": {
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
"label_url": "Installer le plugin à partir d'un URL",
|
||||
"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": {
|
||||
"desc1": "Active le menu développeur interne de Valve.",
|
||||
"desc2": "Ne touchez à rien dans ce menu à moins que vous ne sachiez ce qu'il fait.",
|
||||
@@ -139,7 +135,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 +147,6 @@
|
||||
"SettingsIndex": {
|
||||
"developer_title": "Développeur",
|
||||
"general_title": "Général",
|
||||
"navbar_settings": "Paramètres de Decky",
|
||||
"plugins_title": "Plugins"
|
||||
},
|
||||
"Store": {
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"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}}"
|
||||
"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": {
|
||||
@@ -140,14 +141,6 @@
|
||||
"hidden_many": "Sono nascosti {{count}} plugin dalla lista",
|
||||
"hidden_other": "Sono nascosti {{count}} plugin dalla lista"
|
||||
},
|
||||
"updates": {
|
||||
"header": "Aggiornamenti"
|
||||
},
|
||||
"notifications": {
|
||||
"header": "Notifiche",
|
||||
"decky_updates_label": "Aggiornamenti di Decky",
|
||||
"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",
|
||||
@@ -174,10 +167,6 @@
|
||||
"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.",
|
||||
@@ -193,7 +182,6 @@
|
||||
"header": "Partecipazione alla beta"
|
||||
},
|
||||
"developer_mode": {
|
||||
"desc": "Abilità le impostazioni di sviluppo di Decky.",
|
||||
"label": "Modalità sviluppatore"
|
||||
},
|
||||
"other": {
|
||||
@@ -211,7 +199,6 @@
|
||||
"SettingsIndex": {
|
||||
"developer_title": "Sviluppatore",
|
||||
"general_title": "Generali",
|
||||
"navbar_settings": "Impostazioni Decky",
|
||||
"plugins_title": "Plugins"
|
||||
},
|
||||
"Store": {
|
||||
|
||||
@@ -32,6 +32,9 @@
|
||||
"all_files": "모든 파일",
|
||||
"show_hidden": "숨김 파일 표시",
|
||||
"file_type": "파일 형식"
|
||||
},
|
||||
"file": {
|
||||
"select": "이 파일 선택"
|
||||
}
|
||||
},
|
||||
"PluginView": {
|
||||
@@ -110,7 +113,7 @@
|
||||
"title": "{{name}} 설치 제거"
|
||||
},
|
||||
"plugin_update_other": "플러그인 {{count}}개를 업데이트 할 수 있습니다!",
|
||||
"plugin_error_uninstall": "{{name}} 플러그인을 불러올 때 위와 같은 예외가 발생했습니다. 이는 보통 SteamUI 최신 버전에 맞는 플러그인 업데이트가 필요할 때 발생합니다. Decky 설정의 플러그인 탭에서 업데이트가 있는지 확인하거나 설치 제거를 시도 해 보세요."
|
||||
"plugin_error_uninstall": "{{name}} 플러그인을 불러올 때 위와 같은 예외가 발생했습니다. 이는 보통 SteamUI 최신 버전에 맞는 플러그인 업데이트가 필요할 때 발생합니다. Decky 설정의 플러그인 섹션에서 업데이트가 있는지 확인하거나 설치 제거를 시도 해 보세요."
|
||||
},
|
||||
"RemoteDebugging": {
|
||||
"remote_cef": {
|
||||
@@ -138,10 +141,6 @@
|
||||
"label_url": "URL에서 플러그인 설치",
|
||||
"label_zip": "ZIP 파일에서 플러그인 설치"
|
||||
},
|
||||
"toast_zip": {
|
||||
"body": "설치를 실패했습니다! ZIP 파일만이 지원됩니다.",
|
||||
"title": "Decky"
|
||||
},
|
||||
"valve_internal": {
|
||||
"desc1": "Valve 내부 개발자 메뉴를 활성화합니다.",
|
||||
"label": "Valve 내부 개발자 메뉴 활성화",
|
||||
@@ -157,7 +156,6 @@
|
||||
"header": "베타 참가"
|
||||
},
|
||||
"developer_mode": {
|
||||
"desc": "Decky의 개발자 설정을 활성화합니다.",
|
||||
"label": "개발자 모드"
|
||||
},
|
||||
"other": {
|
||||
@@ -165,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": {
|
||||
@@ -231,7 +233,8 @@
|
||||
"FilePickerError": {
|
||||
"errors": {
|
||||
"file_not_found": "지정된 경로가 잘못되었습니다. 확인 후에 다시 입력해 주세요.",
|
||||
"unknown": "알 수 없는 오류가 발생했습니다. Raw 오류: {{raw_error}}"
|
||||
"unknown": "알 수 없는 오류가 발생했습니다. Raw 오류: {{raw_error}}",
|
||||
"perm_denied": "선택한 경로에 접근 할 수 없습니다. 선택한 폴더/파일 접근 권한이 유저(Steam Deck의 deck 유저)에 맞게 올바르게 설정 되었는지 확인하세요."
|
||||
}
|
||||
},
|
||||
"DropdownMultiselect": {
|
||||
|
||||
@@ -156,10 +156,6 @@
|
||||
"button_install": "Installeren",
|
||||
"button_zip": "Bladeren"
|
||||
},
|
||||
"toast_zip": {
|
||||
"title": "Decky",
|
||||
"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.",
|
||||
@@ -175,7 +171,6 @@
|
||||
"header": "Beta deelname"
|
||||
},
|
||||
"developer_mode": {
|
||||
"desc": "Schakelt de ontwikkelaarsinstellingen van Decky in.",
|
||||
"label": "Ontwikkelaars modus"
|
||||
},
|
||||
"other": {
|
||||
@@ -188,7 +183,6 @@
|
||||
"SettingsIndex": {
|
||||
"developer_title": "Ontwikkelaar",
|
||||
"general_title": "Algemeen",
|
||||
"navbar_settings": "Decky instellingen",
|
||||
"plugins_title": "Plugins"
|
||||
},
|
||||
"Store": {
|
||||
|
||||
@@ -0,0 +1,259 @@
|
||||
{
|
||||
"BranchSelect": {
|
||||
"update_channel": {
|
||||
"testing": "Testowy",
|
||||
"label": "Kanał aktualizacji",
|
||||
"stable": "Stabilny",
|
||||
"prerelease": "Przedpremierowy"
|
||||
}
|
||||
},
|
||||
"Developer": {
|
||||
"enabling": "Włączanie React DevTools",
|
||||
"5secreload": "Ponowne załadowanie za 5 sekund",
|
||||
"disabling": "Wyłączanie React DevTools"
|
||||
},
|
||||
"DropdownMultiselect": {
|
||||
"button": {
|
||||
"back": "Powrót"
|
||||
}
|
||||
},
|
||||
"FilePickerError": {
|
||||
"errors": {
|
||||
"perm_denied": "Nie masz dostępu do podanego katalogu. Sprawdź, czy twój użytkownik (deck na Steam Deck) ma odpowiednie uprawnienia dostępu do określonego katalogu/pliku.",
|
||||
"unknown": "Wystąpił nieznany błąd. Surowy błąd to {{raw_error}}",
|
||||
"file_not_found": "Podana ścieżka jest nieprawidłowa. Sprawdź ją i wprowadź ponownie poprawnie."
|
||||
}
|
||||
},
|
||||
"FilePickerIndex": {
|
||||
"file": {
|
||||
"select": "Wybierz ten plik"
|
||||
},
|
||||
"files": {
|
||||
"all_files": "Wszystkie pliki",
|
||||
"file_type": "Typ pliku",
|
||||
"show_hidden": "Pokaż ukryte pliki"
|
||||
},
|
||||
"filter": {
|
||||
"created_asce": "Utworzono (najstarszy)",
|
||||
"created_desc": "Utworzono (najnowszy)",
|
||||
"modified_asce": "Zmodyfikowany (najstarszy)",
|
||||
"modified_desc": "Zmodyfikowany (najnowszy)",
|
||||
"name_asce": "Z-A",
|
||||
"name_desc": "A-Z",
|
||||
"size_asce": "Rozmiar (najmniejszy)",
|
||||
"size_desc": "Rozmiar (największy)"
|
||||
},
|
||||
"folder": {
|
||||
"label": "Katalog",
|
||||
"select": "Użyj tego katalogu",
|
||||
"show_more": "Pokaż więcej plików"
|
||||
}
|
||||
},
|
||||
"MultiplePluginsInstallModal": {
|
||||
"title": {
|
||||
"mixed_one": "Zmodyfikuj {{count}} plugin",
|
||||
"mixed_few": "Zmodyfikuj {{count}} pluginy",
|
||||
"mixed_many": "Zmodyfikuj {{count}} pluginów",
|
||||
"reinstall_one": "Reinstaluj 1 plugin",
|
||||
"reinstall_few": "Reinstaluj {{count}} pluginy",
|
||||
"reinstall_many": "Reinstaluj {{count}} pluginów",
|
||||
"install_one": "Zainstaluj 1 plugin",
|
||||
"install_few": "Zainstaluj {{count}} pluginy",
|
||||
"install_many": "Zainstaluj {{count}} pluginów",
|
||||
"update_one": "Zaktualizuj 1 plugin",
|
||||
"update_few": "Zaktualizuj {{count}} pluginy",
|
||||
"update_many": "Zaktualizuj {{count}} pluginów"
|
||||
},
|
||||
"confirm": "Czy na pewno chcesz wprowadzić następujące modyfikacje?",
|
||||
"description": {
|
||||
"install": "Zainstaluj {{name}} {{version}}",
|
||||
"reinstall": "Reinstaluj {{name}} {{version}}",
|
||||
"update": "Zaktualizuj {{name}} do {{version}}"
|
||||
},
|
||||
"ok_button": {
|
||||
"idle": "Potwierdź",
|
||||
"loading": "W toku"
|
||||
}
|
||||
},
|
||||
"PluginCard": {
|
||||
"plugin_install": "Zainstaluj",
|
||||
"plugin_no_desc": "Brak opisu.",
|
||||
"plugin_version_label": "Wersja pluginu",
|
||||
"plugin_full_access": "Ten plugin ma pełny dostęp do twojego Steam Decka."
|
||||
},
|
||||
"PluginInstallModal": {
|
||||
"install": {
|
||||
"button_idle": "Zainstaluj",
|
||||
"button_processing": "Instalowanie",
|
||||
"desc": "Czy na pewno chcesz zainstalować {{artifact}} {{version}}?",
|
||||
"title": "Zainstaluj {{artifact}}"
|
||||
},
|
||||
"reinstall": {
|
||||
"button_idle": "Reinstaluj",
|
||||
"button_processing": "Reinstalowanie",
|
||||
"desc": "Czy na pewno chcesz ponownie zainstalować {{artifact}} {{version}}?",
|
||||
"title": "Reinstaluj {{artifact}}"
|
||||
},
|
||||
"update": {
|
||||
"button_idle": "Aktualizacja",
|
||||
"button_processing": "Aktualizowanie",
|
||||
"desc": "Czy na pewno chcesz zaktualizować {{artifact}} {{version}}?",
|
||||
"title": "Zaktualizuj {{artifact}}"
|
||||
},
|
||||
"no_hash": "Ten plugin nie ma hasha, instalujesz go na własne ryzyko."
|
||||
},
|
||||
"PluginListIndex": {
|
||||
"hide": "Szybki dostęp: Ukryj",
|
||||
"no_plugin": "Brak zainstalowanych pluginów!",
|
||||
"reload": "Załaduj ponownie",
|
||||
"update_all_one": "Zaktualizuj 1 plugin",
|
||||
"update_all_few": "Zaktualizuj {{count}} pluginy",
|
||||
"update_all_many": "Zaktualizuj {{count}} pluginów",
|
||||
"plugin_actions": "Akcje pluginów",
|
||||
"reinstall": "Reinstalacja",
|
||||
"show": "Szybki dostęp: Pokaż",
|
||||
"uninstall": "Odinstaluj",
|
||||
"update_to": "Zaktualizuj do {{name}}"
|
||||
},
|
||||
"PluginLoader": {
|
||||
"decky_title": "Decky",
|
||||
"decky_update_available": "Dostępna aktualizacja do {{tag_name}}!",
|
||||
"error": "Błąd",
|
||||
"plugin_error_uninstall": "Ładowanie {{name}} spowodowało wyjątek, jak pokazano powyżej. Zwykle oznacza to, że plugin wymaga aktualizacji do nowej wersji SteamUI. Sprawdź, czy aktualizacja jest obecna lub rozważ usunięcie go w ustawieniach Decky, w sekcji Pluginy.",
|
||||
"plugin_load_error": {
|
||||
"message": "Błąd ładowania plugin {{name}}",
|
||||
"toast": "Błąd ładowania {{name}}"
|
||||
},
|
||||
"plugin_uninstall": {
|
||||
"button": "Odinstaluj",
|
||||
"title": "Odinstaluj {{name}}",
|
||||
"desc": "Czy na pewno chcesz odinstalować {{name}}?"
|
||||
},
|
||||
"plugin_update_one": "Aktualizacje dostępne dla 1 pluginu!",
|
||||
"plugin_update_few": "Aktualizacje dostępne dla {{count}} pluginów!",
|
||||
"plugin_update_many": "Aktualizacje dostępne dla {{count}} pluginów!"
|
||||
},
|
||||
"PluginListLabel": {
|
||||
"hidden": "Ukryty w menu szybkiego dostępu"
|
||||
},
|
||||
"PluginView": {
|
||||
"hidden_one": "1 plugin jest ukryty na tej liście",
|
||||
"hidden_few": "{{count}} pluginy jest ukryty na tej liście",
|
||||
"hidden_many": "{{count}} pluginów jest ukryty na tej liście"
|
||||
},
|
||||
"RemoteDebugging": {
|
||||
"remote_cef": {
|
||||
"desc": "Zezwalaj na nieuwierzytelniony dostęp do debugera CEF wszystkim osobom w Twojej sieci",
|
||||
"label": "Zezwól na zdalne debugowanie CEF"
|
||||
}
|
||||
},
|
||||
"SettingsDeveloperIndex": {
|
||||
"cef_console": {
|
||||
"button": "Otwórz konsolę",
|
||||
"desc": "Otwiera konsolę CEF. Przydatne tylko do celów debugowania. Rzeczy tutaj są potencjalnie niebezpieczne i powinny być używane tylko wtedy, gdy jesteś twórcą wtyczek lub zostałeś tu przez kogoś skierowany.",
|
||||
"label": "Konsola CEF"
|
||||
},
|
||||
"header": "Inne",
|
||||
"react_devtools": {
|
||||
"desc": "Umożliwia połączenie z komputerem z uruchomionym React DevTools. Zmiana tego ustawienia spowoduje ponowne załadowanie Steam. Ustaw adres IP przed włączeniem.",
|
||||
"ip_label": "IP",
|
||||
"label": "Włącz React DevTools"
|
||||
},
|
||||
"third_party_plugins": {
|
||||
"button_install": "Zainstaluj",
|
||||
"button_zip": "Przeglądaj",
|
||||
"header": "Pluginy zewnętrzne",
|
||||
"label_desc": "URL",
|
||||
"label_url": "Zainstaluj plugin z adresu URL",
|
||||
"label_zip": "Zainstaluj plugin z pliku ZIP"
|
||||
},
|
||||
"valve_internal": {
|
||||
"desc1": "Włącza wewnętrzne menu programisty Valve.",
|
||||
"desc2": "Nie dotykaj niczego w tym menu, chyba że wiesz, co robi.",
|
||||
"label": "Włącz Valve Internal"
|
||||
}
|
||||
},
|
||||
"SettingsGeneralIndex": {
|
||||
"notifications": {
|
||||
"decky_updates_label": "Dostępna aktualizacja Decky",
|
||||
"header": "Powiadomienia",
|
||||
"plugin_updates_label": "Dostępne aktualizacje pluginów"
|
||||
},
|
||||
"other": {
|
||||
"header": "Inne"
|
||||
},
|
||||
"updates": {
|
||||
"header": "Aktualizacje"
|
||||
},
|
||||
"about": {
|
||||
"header": "Informacje",
|
||||
"decky_version": "Wersja Decky"
|
||||
},
|
||||
"beta": {
|
||||
"header": "Udział w becie"
|
||||
},
|
||||
"developer_mode": {
|
||||
"label": "Tryb dewelopera"
|
||||
}
|
||||
},
|
||||
"SettingsIndex": {
|
||||
"developer_title": "Deweloper",
|
||||
"general_title": "Ogólne",
|
||||
"plugins_title": "Pluginy"
|
||||
},
|
||||
"Store": {
|
||||
"store_contrib": {
|
||||
"desc": "Jeśli chcesz przyczynić się do rozwoju Decky Plugin Store, sprawdź repozytorium SteamDeckHomebrew/decky-plugin-template na GitHub. Informacje na temat rozwoju i dystrybucji są dostępne w pliku README.",
|
||||
"label": "Współtworzyenie"
|
||||
},
|
||||
"store_filter": {
|
||||
"label": "Filtr",
|
||||
"label_def": "Wszystko"
|
||||
},
|
||||
"store_search": {
|
||||
"label": "Szukaj"
|
||||
},
|
||||
"store_sort": {
|
||||
"label": "Sortowanie",
|
||||
"label_def": "Ostatnia aktualizacja (najnowsza)"
|
||||
},
|
||||
"store_source": {
|
||||
"desc": "Cały kod źródłowy pluginów jest dostępny w repozytorium SteamDeckHomebrew/decky-plugin-database na GitHub.",
|
||||
"label": "Kod źródłowy"
|
||||
},
|
||||
"store_tabs": {
|
||||
"alph_asce": "Alfabetycznie (od Z do A)",
|
||||
"alph_desc": "Alfabetycznie (od Z do A)",
|
||||
"title": "Przeglądaj",
|
||||
"about": "Informacje"
|
||||
},
|
||||
"store_testing_cta": "Rozważ przetestowanie nowych pluginów, aby pomóc zespołowi Decky Loader!"
|
||||
},
|
||||
"StoreSelect": {
|
||||
"custom_store": {
|
||||
"label": "Sklep niestandardowy",
|
||||
"url_label": "URL"
|
||||
},
|
||||
"store_channel": {
|
||||
"custom": "Niestandardowy",
|
||||
"default": "Domyślny",
|
||||
"label": "Kanał sklepu",
|
||||
"testing": "Testowy"
|
||||
}
|
||||
},
|
||||
"Updater": {
|
||||
"decky_updates": "Aktualizacje Decky",
|
||||
"no_patch_notes_desc": "Brak informacji o poprawkach dla tej wersji",
|
||||
"patch_notes_desc": "Opis zmian",
|
||||
"updates": {
|
||||
"check_button": "Sprawdź aktualizacje",
|
||||
"checking": "Sprawdzanie",
|
||||
"cur_version": "Aktualna wersja: {{ver}}",
|
||||
"install_button": "Zainstaluj aktualizację",
|
||||
"label": "Aktualizacje",
|
||||
"lat_version": "Aktualne: działa {{ver}}",
|
||||
"reloading": "Ponowne ładowanie",
|
||||
"updating": "Aktualizowanie"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -150,10 +150,6 @@
|
||||
"label_zip": "Instalar Plugin a partir de um arquivo ZIP",
|
||||
"label_desc": "URL"
|
||||
},
|
||||
"toast_zip": {
|
||||
"title": "Decky",
|
||||
"body": "Falha na instalação! Somente arquivos ZIP são suportados."
|
||||
},
|
||||
"valve_internal": {
|
||||
"desc1": "Habilita o menu interno de desenvolvedor da Valve.",
|
||||
"desc2": "Não toque em nada neste menu, a não ser que você saiba o que está fazendo.",
|
||||
@@ -166,7 +162,6 @@
|
||||
"header": "Sobre"
|
||||
},
|
||||
"developer_mode": {
|
||||
"desc": "Habilita as configurações de desenvolvedor do Decky.",
|
||||
"label": "Modo Deselvolvedor"
|
||||
},
|
||||
"other": {
|
||||
@@ -182,7 +177,6 @@
|
||||
"SettingsIndex": {
|
||||
"developer_title": "Desenvolvedor",
|
||||
"general_title": "Geral",
|
||||
"navbar_settings": "Configurações do Decky",
|
||||
"plugins_title": "Plugins"
|
||||
},
|
||||
"Store": {
|
||||
|
||||
@@ -129,10 +129,6 @@
|
||||
"label_url": "Instalar plugin a partir dum URL",
|
||||
"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": {
|
||||
"label": "Activar menu interno da Valve",
|
||||
"desc1": "Activa o menu interno de programador da Valve.",
|
||||
@@ -154,8 +150,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 +162,6 @@
|
||||
"SettingsIndex": {
|
||||
"developer_title": "Programador",
|
||||
"general_title": "Geral",
|
||||
"navbar_settings": "Definições do Decky",
|
||||
"plugins_title": "Plugins"
|
||||
},
|
||||
"Store": {
|
||||
|
||||
+247
-21
@@ -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": "Плагины"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -124,10 +124,6 @@
|
||||
"label_zip": "Встановити плагін з ZIP-файлу",
|
||||
"button_zip": "Огляд"
|
||||
},
|
||||
"toast_zip": {
|
||||
"title": "Decky",
|
||||
"body": "Помилка встановлення! Підтримуються лише ZIP-файли."
|
||||
},
|
||||
"valve_internal": {
|
||||
"desc1": "Вмикає внутрішнє розробницьке меню Valve.",
|
||||
"label": "Увімкнути Valve Internal",
|
||||
@@ -143,7 +139,6 @@
|
||||
"header": "Участь у Beta"
|
||||
},
|
||||
"developer_mode": {
|
||||
"desc": "Вмикає розробницькі налаштування Decky.",
|
||||
"label": "Розробницький режим"
|
||||
},
|
||||
"other": {
|
||||
@@ -156,7 +151,6 @@
|
||||
"SettingsIndex": {
|
||||
"developer_title": "Розробник",
|
||||
"general_title": "Загальне",
|
||||
"navbar_settings": "Налаштування Decky",
|
||||
"plugins_title": "Плагіни"
|
||||
},
|
||||
"Store": {
|
||||
|
||||
@@ -111,10 +111,6 @@
|
||||
"label_url": "从 URL 安装插件",
|
||||
"label_zip": "从 ZIP 压缩文件安装插件"
|
||||
},
|
||||
"toast_zip": {
|
||||
"title": "Decky",
|
||||
"body": "安装失败!只有 ZIP 格式的插件被支持。"
|
||||
},
|
||||
"valve_internal": {
|
||||
"desc1": "启用 Valve 内部开发者菜单。",
|
||||
"desc2": "除非你知道你在干什么,否则请不要修改此菜单中的任何内容。",
|
||||
@@ -136,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": {
|
||||
@@ -239,7 +238,8 @@
|
||||
"FilePickerError": {
|
||||
"errors": {
|
||||
"file_not_found": "指定路径无效。请检查并输入正确的路径。",
|
||||
"unknown": "发生了一个为止错误。原始错误为:{{raw_error}}"
|
||||
"unknown": "发生了一个未知错误。原始错误为:{{raw_error}}",
|
||||
"perm_denied": "你没有访问特定目录的权限。请检查你的用户(Steam Deck 中的 deck 账户)有着相对应的权限以访问特定的文件夹或文件。"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,27 @@
|
||||
},
|
||||
"FilePickerIndex": {
|
||||
"folder": {
|
||||
"select": "使用此資料夾"
|
||||
"select": "使用此資料夾",
|
||||
"show_more": "顯示更多檔案",
|
||||
"label": "資料夾"
|
||||
},
|
||||
"filter": {
|
||||
"modified_asce": "修改日期(舊到新)",
|
||||
"created_desc": "建立日期(新到舊)",
|
||||
"modified_desc": "修改日期(新到舊)",
|
||||
"name_desc": "子母排序(A到Z)",
|
||||
"name_asce": "子母排序(Z到A)",
|
||||
"size_asce": "檔案大小(小到大)",
|
||||
"size_desc": "檔案大小(大到小)",
|
||||
"created_asce": "建立日期(舊到新)"
|
||||
},
|
||||
"file": {
|
||||
"select": "選擇此檔案"
|
||||
},
|
||||
"files": {
|
||||
"all_files": "所有檔案",
|
||||
"file_type": "檔案類型",
|
||||
"show_hidden": "顯示隱藏檔"
|
||||
}
|
||||
},
|
||||
"PluginCard": {
|
||||
@@ -86,10 +106,6 @@
|
||||
"button_install": "安裝",
|
||||
"header": "第三方外掛程式"
|
||||
},
|
||||
"toast_zip": {
|
||||
"body": "安裝失敗!只支援 ZIP 檔案。",
|
||||
"title": "Decky"
|
||||
},
|
||||
"valve_internal": {
|
||||
"desc2": "除非您知道它的作用,否則不要碰這個選單中的任何東西。",
|
||||
"desc1": "啟用 Valve 內建開發人員選單。",
|
||||
@@ -104,7 +120,7 @@
|
||||
"cef_console": {
|
||||
"button": "開啟控制台",
|
||||
"label": "CEF 控制台",
|
||||
"desc": "開啟 CEF 控制台。僅用於偵錯。這裡的東西有潛在的風險,只有當你是一個外掛程式開發者或者被外掛程式開發者引導到這裡時,才應該使用。"
|
||||
"desc": "開啟 CEF 控制台。僅用於偵錯。這裡的東西有潛在的風險,只有當您是一個外掛程式開發者或者被外掛程式開發者引導到這裡時,才應該使用。"
|
||||
}
|
||||
},
|
||||
"SettingsGeneralIndex": {
|
||||
@@ -116,20 +132,23 @@
|
||||
"header": "參與測試"
|
||||
},
|
||||
"developer_mode": {
|
||||
"label": "開發人員模式",
|
||||
"desc": "啟用 Decky 的開發人員模式。"
|
||||
"label": "開發人員模式"
|
||||
},
|
||||
"other": {
|
||||
"header": "其他"
|
||||
},
|
||||
"updates": {
|
||||
"header": "更新"
|
||||
},
|
||||
"notifications": {
|
||||
"decky_updates_label": "Decky 可更新",
|
||||
"header": "通知",
|
||||
"plugin_updates_label": "外掛程式有更新"
|
||||
}
|
||||
},
|
||||
"SettingsIndex": {
|
||||
"developer_title": "開發人員",
|
||||
"general_title": "一般",
|
||||
"navbar_settings": "Decky 設定",
|
||||
"plugins_title": "外掛程式"
|
||||
},
|
||||
"Store": {
|
||||
@@ -210,5 +229,17 @@
|
||||
"update": "更新 {{name}} 到 {{version}}",
|
||||
"reinstall": "重新安裝 {{name}} {{version}}"
|
||||
}
|
||||
},
|
||||
"FilePickerError": {
|
||||
"errors": {
|
||||
"perm_denied": "您沒有瀏覽此目錄的權限。請檢查您的使用者(Steam Deck 中的 deck 帳號)有權限瀏覽特定的資料夾或檔案。",
|
||||
"unknown": "發生未知錯誤。錯誤詳細資料:{{raw_error}}",
|
||||
"file_not_found": "指定路徑無效。請檢查並輸入正確路徑。"
|
||||
}
|
||||
},
|
||||
"DropdownMultiselect": {
|
||||
"button": {
|
||||
"back": "返回"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,4 +40,7 @@ def get_keep_systemd_service() -> bool:
|
||||
def get_log_level() -> int:
|
||||
return {"CRITICAL": 50, "ERROR": 40, "WARNING": 30, "INFO": 20, "DEBUG": 10}[
|
||||
os.getenv("LOG_LEVEL", "INFO")
|
||||
]
|
||||
]
|
||||
|
||||
def get_selinux() -> bool:
|
||||
return os.getenv("DECKY_SELINUX", "0") == "1"
|
||||
|
||||
@@ -60,6 +60,8 @@ def chown(path : str, user : UserType = UserType.HOST_USER, recursive : bool =
|
||||
return result == 0
|
||||
|
||||
def chmod(path : str, permissions : int, recursive : bool = True) -> bool:
|
||||
if _get_effective_user_id() != 0:
|
||||
return True
|
||||
result = call(["chmod", "-R", str(permissions), path] if recursive else ["chmod", str(permissions), path])
|
||||
return result == 0
|
||||
|
||||
@@ -191,4 +193,4 @@ def get_unprivileged_user() -> str:
|
||||
logger.warn("Unprivileged user is not properly configured. Defaulting to 'deck'")
|
||||
user = 'deck'
|
||||
|
||||
return user
|
||||
return user
|
||||
|
||||
+4
-1
@@ -24,7 +24,7 @@ from aiohttp_jinja2 import setup as jinja_setup
|
||||
# local modules
|
||||
from browser import PluginBrowser
|
||||
from helpers import (REMOTE_DEBUGGER_UNIT, csrf_middleware, get_csrf_token,
|
||||
mkdir_as_user, get_system_pythonpaths)
|
||||
mkdir_as_user, get_system_pythonpaths, get_effective_user_id)
|
||||
|
||||
from injector import get_gamepadui_tab, Tab, get_tabs, close_old_tabs
|
||||
from loader import Loader
|
||||
@@ -178,6 +178,9 @@ if __name__ == "__main__":
|
||||
|
||||
# Required for multiprocessing support in frozen files
|
||||
multiprocessing.freeze_support()
|
||||
else:
|
||||
if get_effective_user_id() != 0:
|
||||
logger.warning(f"decky is running as an unprivileged user, this is not officially supported and may cause issues")
|
||||
|
||||
# Append the loader's plugin path to the recognized python paths
|
||||
sys.path.append(path.join(path.dirname(__file__), "plugin"))
|
||||
|
||||
+4
-1
@@ -6,7 +6,7 @@ from ensurepip import version
|
||||
from json.decoder import JSONDecodeError
|
||||
from logging import getLogger
|
||||
from os import getcwd, path, remove
|
||||
from localplatform import chmod, service_restart, ON_LINUX, get_keep_systemd_service
|
||||
from localplatform import chmod, service_restart, ON_LINUX, get_keep_systemd_service, get_selinux
|
||||
|
||||
from aiohttp import ClientSession, web
|
||||
|
||||
@@ -208,6 +208,9 @@ class Updater:
|
||||
remove(path.join(getcwd(), download_filename))
|
||||
shutil.move(path.join(getcwd(), download_temp_filename), path.join(getcwd(), download_filename))
|
||||
chmod(path.join(getcwd(), download_filename), 777, False)
|
||||
if get_selinux():
|
||||
from subprocess import call
|
||||
call(["chcon", "-t", "bin_t", path.join(getcwd(), download_filename)])
|
||||
|
||||
logger.info("Updated loader installation.")
|
||||
await tab.evaluate_js("window.DeckyUpdater.finish()", False, False)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { DialogButton, Focusable, Router, staticClasses } from 'decky-frontend-lib';
|
||||
import { CSSProperties, VFC } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { BsGearFill } from 'react-icons/bs';
|
||||
import { FaArrowLeft, FaStore } from 'react-icons/fa';
|
||||
|
||||
@@ -13,6 +14,7 @@ const titleStyles: CSSProperties = {
|
||||
|
||||
const TitleView: VFC = () => {
|
||||
const { activePlugin, closeActivePlugin } = useDeckyState();
|
||||
const { t } = useTranslation();
|
||||
|
||||
const onSettingsClick = () => {
|
||||
Router.CloseSideMenus();
|
||||
@@ -31,12 +33,14 @@ const TitleView: VFC = () => {
|
||||
<DialogButton
|
||||
style={{ height: '28px', width: '40px', minWidth: 0, padding: '10px 12px' }}
|
||||
onClick={onStoreClick}
|
||||
onOKActionDescription={t('TitleView.decky_store_desc')}
|
||||
>
|
||||
<FaStore style={{ marginTop: '-4px', display: 'block' }} />
|
||||
</DialogButton>
|
||||
<DialogButton
|
||||
style={{ height: '28px', width: '40px', minWidth: 0, padding: '10px 12px' }}
|
||||
onClick={onSettingsClick}
|
||||
onOKActionDescription={t('TitleView.settings_desc')}
|
||||
>
|
||||
<BsGearFill style={{ marginTop: '-4px', display: 'block' }} />
|
||||
</DialogButton>
|
||||
@@ -45,15 +49,15 @@ const TitleView: VFC = () => {
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={staticClasses.Title} style={titleStyles}>
|
||||
<Focusable className={staticClasses.Title} style={titleStyles}>
|
||||
<DialogButton
|
||||
style={{ height: '28px', width: '40px', minWidth: 0, padding: '10px 12px' }}
|
||||
onClick={closeActivePlugin}
|
||||
>
|
||||
<FaArrowLeft style={{ marginTop: '-4px', display: 'block' }} />
|
||||
</DialogButton>
|
||||
<div style={{ flex: 0.9 }}>{activePlugin.name}</div>
|
||||
</div>
|
||||
{activePlugin?.titleView || <div style={{ flex: 0.9 }}>{activePlugin.name}</div>}
|
||||
</Focusable>
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import { useTranslation } from 'react-i18next';
|
||||
|
||||
import logo from '../../../assets/plugin_store.png';
|
||||
import Logger from '../../logger';
|
||||
import { StorePlugin, getPluginList } from '../../store';
|
||||
import { Store, StorePlugin, getPluginList, getStore } from '../../store';
|
||||
import PluginCard from './PluginCard';
|
||||
|
||||
const logger = new Logger('Store');
|
||||
@@ -21,6 +21,7 @@ const logger = new Logger('Store');
|
||||
const StorePage: FC<{}> = () => {
|
||||
const [currentTabRoute, setCurrentTabRoute] = useState<string>('browse');
|
||||
const [data, setData] = useState<StorePlugin[] | null>(null);
|
||||
const [isTesting, setIsTesting] = useState<boolean>(false);
|
||||
const { TabCount } = findModule((m) => {
|
||||
if (m?.TabCount && m?.TabTitle) return true;
|
||||
return false;
|
||||
@@ -33,6 +34,9 @@ const StorePage: FC<{}> = () => {
|
||||
const res = await getPluginList();
|
||||
logger.log('got data!', res);
|
||||
setData(res);
|
||||
const storeRes = await getStore();
|
||||
logger.log(`store is ${storeRes}, isTesting is ${storeRes === Store.Testing}`);
|
||||
setIsTesting(storeRes === Store.Testing);
|
||||
})();
|
||||
}, []);
|
||||
|
||||
@@ -58,7 +62,7 @@ const StorePage: FC<{}> = () => {
|
||||
tabs={[
|
||||
{
|
||||
title: t('Store.store_tabs.title'),
|
||||
content: <BrowseTab children={{ data: data }} />,
|
||||
content: <BrowseTab children={{ data: data, isTesting: isTesting }} />,
|
||||
id: 'browse',
|
||||
renderTabAddon: () => <span className={TabCount}>{data.length}</span>,
|
||||
},
|
||||
@@ -75,7 +79,7 @@ const StorePage: FC<{}> = () => {
|
||||
);
|
||||
};
|
||||
|
||||
const BrowseTab: FC<{ children: { data: StorePlugin[] } }> = (data) => {
|
||||
const BrowseTab: FC<{ children: { data: StorePlugin[]; isTesting: boolean } }> = (data) => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const sortOptions = useMemo(
|
||||
@@ -178,6 +182,36 @@ const BrowseTab: FC<{ children: { data: StorePlugin[] } }> = (data) => {
|
||||
</div>
|
||||
</Focusable>
|
||||
</div>
|
||||
{data.children.isTesting && (
|
||||
<div
|
||||
style={{
|
||||
alignItems: 'center',
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
marginLeft: '20px',
|
||||
marginRight: '20px',
|
||||
marginBottom: '20px',
|
||||
padding: '8px 36px',
|
||||
background: 'rgba(255, 255, 0, 0.067)',
|
||||
textAlign: 'center',
|
||||
border: '2px solid rgba(255, 255, 0, 0.467)',
|
||||
}}
|
||||
>
|
||||
<h2 style={{ margin: 0 }}>{t('Store.store_testing_warning.label')}</h2>
|
||||
<span>
|
||||
{`${t('Store.store_testing_warning.desc')} `}
|
||||
<a
|
||||
href="https://decky.xyz/testing"
|
||||
target="_blank"
|
||||
style={{
|
||||
textDecoration: 'none',
|
||||
}}
|
||||
>
|
||||
decky.xyz/testing
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
)}
|
||||
<div>
|
||||
{data.children.data
|
||||
.filter((plugin: StorePlugin) => {
|
||||
@@ -229,13 +263,13 @@ const AboutTab: FC<{}> = () => {
|
||||
<span>
|
||||
{t('Store.store_testing_cta')}{' '}
|
||||
<a
|
||||
href="https://deckbrew.xyz/testing"
|
||||
href="https://decky.xyz/testing"
|
||||
target="_blank"
|
||||
style={{
|
||||
textDecoration: 'none',
|
||||
}}
|
||||
>
|
||||
deckbrew.xyz/testing
|
||||
decky.xyz/testing
|
||||
</a>
|
||||
</span>
|
||||
<span className="deckyStoreAboutHeader">{t('Store.store_contrib.label')}</span>
|
||||
|
||||
@@ -5,6 +5,7 @@ export interface Plugin {
|
||||
content?: JSX.Element;
|
||||
onDismount?(): void;
|
||||
alwaysRender?: boolean;
|
||||
titleView?: JSX.Element;
|
||||
}
|
||||
|
||||
export enum InstallType {
|
||||
|
||||
@@ -22,6 +22,8 @@ declare global {
|
||||
}
|
||||
}
|
||||
|
||||
const isPatched = Symbol('is patched');
|
||||
|
||||
class RouterHook extends Logger {
|
||||
private router: any;
|
||||
private memoizedRouter: any;
|
||||
@@ -90,9 +92,10 @@ class RouterHook extends Logger {
|
||||
...routeList[index].props,
|
||||
children: {
|
||||
...cloneElement(routeList[index].props.children),
|
||||
type: (props) => createElement(oType, props),
|
||||
type: routeList[index].props.children[isPatched] ? oType : (props) => createElement(oType, props),
|
||||
},
|
||||
}).children;
|
||||
routeList[index].props.children[isPatched] = true;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -32,6 +32,10 @@ export interface PluginInstallRequest {
|
||||
// name: version
|
||||
export type PluginUpdateMapping = Map<string, StorePluginVersion>;
|
||||
|
||||
export async function getStore(): Promise<Store> {
|
||||
return await getSetting<Store>('store', Store.Default);
|
||||
}
|
||||
|
||||
export async function getPluginList(): Promise<StorePlugin[]> {
|
||||
let version = await window.DeckyPluginLoader.updateVersion();
|
||||
let store = await getSetting<Store>('store', Store.Default);
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
aiohttp==3.8.1
|
||||
aiohttp-jinja2==1.5.0
|
||||
aiohttp==3.8.4
|
||||
aiohttp-jinja2==1.5.1
|
||||
aiohttp_cors==0.7.0
|
||||
watchdog==2.1.7
|
||||
certifi==2022.12.7
|
||||
certifi==2022.12.7
|
||||
|
||||
Reference in New Issue
Block a user