diff --git a/backend/decky_loader/locales/bg-BG.json b/backend/decky_loader/locales/bg-BG.json index 7272f555..0e1f3e98 100644 --- a/backend/decky_loader/locales/bg-BG.json +++ b/backend/decky_loader/locales/bg-BG.json @@ -99,12 +99,14 @@ } }, "PluginListIndex": { + "freeze": "Замразяване на актуализациите", "hide": "Бърз достъп: Скриване", "no_plugin": "Няма инсталирани добавки!", "plugin_actions": "Действия с добавката", "reinstall": "Преинсталиране", "reload": "Презареждане", "show": "Бърз достъп: Показване", + "unfreeze": "Разрешаване на актуализациите", "uninstall": "Деинсталиране", "update_all_one": "Обновяване на 1 добавка", "update_all_other": "Обновяване на {{count}} добавки", @@ -192,9 +194,19 @@ "SettingsIndex": { "developer_title": "Разработчик", "general_title": "Общи", - "plugins_title": "Добавки" + "plugins_title": "Добавки", + "testing_title": "Тестване" }, "Store": { + "download_progress_info": { + "download_zip": "Изтегляне на плъгина", + "increment_count": "Увеличаване на броя изтегляния", + "installing_plugin": "Инсталиране на плъгина", + "open_zip": "Отваряне на zip файла", + "parse_zip": "Разглеждане на zip файла", + "start": "Иницииране", + "uninstalling_previous": "Деинсталиране на предишното копие" + }, "store_contrib": { "desc": "Ако искате да допринесете към магазина за добавки на Decky, разгледайте хранилището SteamDeckHomebrew/decky-plugin-template в GitHub. Може да намерите информация относно разработката и разпространението във файла README.", "label": "Допринасяне" @@ -218,9 +230,17 @@ "about": "Относно", "alph_asce": "По азбучен ред (Я -> А)", "alph_desc": "По азбучен ред (А -> Я)", + "date_asce": "Най-старият първи", + "date_desc": "Най-новият първи", + "downloads_asce": "Най-малко изтеглени първи", + "downloads_desc": "Най-изтеглени първи", "title": "Разглеждане" }, - "store_testing_cta": "Помислете дали искате да тествате новите добавки, за да помогнете на екипа на Decky Loader!" + "store_testing_cta": "Помислете дали искате да тествате новите добавки, за да помогнете на екипа на Decky Loader!", + "store_testing_warning": { + "desc": "Можете да използвате този канал на магазина, за да тествате най-новите версии на плъгините. Не забравяйте да оставите обратна връзка в GitHub, за да може плъгинът да бъде актуализиран за всички потребители.", + "label": "Добре дошли в канала на магазина за тестване" + } }, "StoreSelect": { "custom_store": { @@ -234,6 +254,17 @@ "testing": "Тестване" } }, + "Testing": { + "download": "Изтегляне", + "error": "Грешка при инсталирането на PR", + "header": "Следните версии на Decky Loader са създадени от отворени заявки за изтегляне от трети страни. Екипът на Decky Loader не е проверявал тяхната функционалност или сигурност и е възможно те да са остарели.", + "loading": "Зареждане на отворени заявки за изтегляне...", + "start_download_toast": "Изтегляне на PR #{{id}}" + }, + "TitleView": { + "decky_store_desc": "Отворете Decky Store", + "settings_desc": "Отворете настройките на Decky" + }, "Updater": { "decky_updates": "Обновления на Decky", "no_patch_notes_desc": "няма бележки за промените в тази версия", diff --git a/backend/decky_loader/locales/de-DE.json b/backend/decky_loader/locales/de-DE.json index 71570f93..f0022f75 100644 --- a/backend/decky_loader/locales/de-DE.json +++ b/backend/decky_loader/locales/de-DE.json @@ -198,6 +198,15 @@ "testing_title": "Testen" }, "Store": { + "download_progress_info": { + "download_zip": "Plugin herunterladen", + "increment_count": "Erhöhen der Downloadanzahl", + "installing_plugin": "Plugin installieren", + "open_zip": "Öffnen der Zip-Datei", + "parse_zip": "Parsen der Zip-Datei", + "start": "Initialisieren", + "uninstalling_previous": "Vorherige Kopie deinstallieren" + }, "store_contrib": { "desc": "Wenn du Erweiterungen im Decky Store veröffentlichen willst, besuche die SteamDeckHomebrew/decky-plugin-template Repository auf GitHub. Informationen rund um Entwicklung und Veröffentlichung findest du in der README.", "label": "Mitwirken" @@ -246,7 +255,11 @@ } }, "Testing": { - "download": "Download" + "download": "Download", + "error": "Fehler beim Installieren von PR", + "header": "Die folgenden Versionen von Decky Loader wurden aus offenen Pull Requests von Dritten erstellt. Das Decky Loader-Team hat ihre Funktionalität oder Sicherheit nicht überprüft, und sie können veraltet sein.", + "loading": "Offene Pull Requests laden...", + "start_download_toast": "Herunterladen von PR #{{id}}" }, "TitleView": { "decky_store_desc": "Decky Store Öffnen", diff --git a/backend/decky_loader/locales/nl-NL.json b/backend/decky_loader/locales/nl-NL.json index ad78bc3b..dd13bc3b 100644 --- a/backend/decky_loader/locales/nl-NL.json +++ b/backend/decky_loader/locales/nl-NL.json @@ -2,9 +2,9 @@ "BranchSelect": { "update_channel": { "label": "Updatekanaal", - "prerelease": "Prerelease", + "prerelease": "Vooruitgave", "stable": "Stabiel", - "testing": "Testing" + "testing": "Testen" } }, "Developer": { @@ -188,7 +188,7 @@ "header": "Overige" }, "updates": { - "header": "Updates" + "header": "Bijwerkingen" } }, "SettingsIndex": { @@ -198,6 +198,15 @@ "testing_title": "Testen" }, "Store": { + "download_progress_info": { + "download_zip": "Plugin downloaden", + "increment_count": "Aantal downloads verhogen", + "installing_plugin": "Plugin installeren", + "open_zip": "Zip-bestand openen", + "parse_zip": "Zip-bestand parseren", + "start": "Initialiseren", + "uninstalling_previous": "Vorige kopie verwijderen" + }, "store_contrib": { "desc": "Als je wilt bijdragen aan de Decky Plugin Store, kijk dan in de SteamDeckHomebrew/decky-plugin-template repository op GitHub. Informatie over ontwikkeling en distributie is beschikbaar in de README.", "label": "Bijdragen" @@ -242,11 +251,15 @@ "custom": "Aangepast", "default": "Standaard", "label": "Winkelkanaal", - "testing": "Testing" + "testing": "Testen" } }, "Testing": { - "download": "Downloaden" + "download": "Downloaden", + "error": "Fout bij installatie van PR", + "header": "De volgende versies van Decky Loader zijn gebouwd op basis van open Pull Requests van derden. Het Decky Loader-team heeft hun functionaliteit of veiligheid niet gecontroleerd en ze kunnen verouderd zijn.", + "loading": "Openstaande Pull Requests laden...", + "start_download_toast": "PR #{{id}} downloaden" }, "TitleView": { "decky_store_desc": "Decky Store openen", @@ -261,7 +274,7 @@ "checking": "Bezig met controleren op updates", "cur_version": "Huidige versie: {{ver}}", "install_button": "Bijwerken", - "label": "Updates", + "label": "Bijwerkingen", "lat_version": "Bijwerkt: versie {{ver}}", "reloading": "Bezig met herstarten", "updating": "Bezig met bijwerken" diff --git a/frontend/package.json b/frontend/package.json index b972a7a3..dff45318 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -47,7 +47,7 @@ } }, "dependencies": { - "@decky/ui": "^4.7.1", + "@decky/ui": "^4.7.2", "filesize": "^10.1.2", "i18next": "^23.11.5", "i18next-http-backend": "^2.5.2", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index d6186170..4c8b51db 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@decky/ui': - specifier: ^4.7.1 - version: 4.7.1 + specifier: ^4.7.2 + version: 4.7.2 compare-versions: specifier: ^6.1.1 version: 6.1.1 @@ -218,8 +218,8 @@ packages: '@decky/api@1.1.1': resolution: {integrity: sha512-R5fkBRHBt5QIQY7Q0AlbVIhlIZ/nTzwBOoi8Rt4Go2fjFnoMKPInCJl6cPjXzimGwl2pyqKJgY6VnH6ar0XrHQ==} - '@decky/ui@4.7.1': - resolution: {integrity: sha512-yJwBgW+J2cMDfMkmcDFtzsubhUjekFZAtCnP55QEJ/1UKGR7sLNOvDLFYi1h5PI0K4L1XYcAMKHwbYFFTzcDTA==} + '@decky/ui@4.7.2': + resolution: {integrity: sha512-jYXVhbyyupXAcCuFqr7G2qjYVjp8hlMGF8zl8ALv67y0YhikAtfhA2rGUjCuaV3kdo9YrpBh8djRUJXdFPg/Eg==} '@esbuild/aix-ppc64@0.20.2': resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} @@ -2295,7 +2295,7 @@ snapshots: '@decky/api@1.1.1': {} - '@decky/ui@4.7.1': {} + '@decky/ui@4.7.2': {} '@esbuild/aix-ppc64@0.20.2': optional: true diff --git a/frontend/src/index.ts b/frontend/src/index.ts index 8d67f175..2ee018e0 100644 --- a/frontend/src/index.ts +++ b/frontend/src/index.ts @@ -5,29 +5,19 @@ interface Window { } (async () => { - // Wait for main webpack chunks to definitely be loaded - console.time('[Decky:Boot] Waiting for main Webpack chunks...'); - while (!window.webpackChunksteamui || window.webpackChunksteamui.length < 5) { - await new Promise((r) => setTimeout(r, 10)); // Can't use DFL sleep here. - } - console.timeEnd('[Decky:Boot] Waiting for main Webpack chunks...'); + console.debug('[Decky:Boot] Frontend init'); + + console.time('[Decky:Boot] Waiting for SteamApp init stage 1 to finish...'); - // Wait for the React root to be mounted - console.time('[Decky:Boot] Waiting for React root mount...'); - let root; - while ( - // Does React root node exist? - !(root = document.getElementById('root')) || - // Does it have a child element? - !(root as any)[Object.keys(root).find((k) => k.startsWith('__reactContainer$')) as string].child - ) { - await new Promise((r) => setTimeout(r, 10)); // Can't use DFL sleep here. + // @ts-expect-error TODO type BFinishedInitStageOne in @decky/ui + while (!window.App?.BFinishedInitStageOne()) { + await new Promise((r) => setTimeout(r, 0)); // Can't use DFL sleep here. } - console.timeEnd('[Decky:Boot] Waiting for React root mount...'); + + console.timeEnd('[Decky:Boot] Waiting for SteamApp init stage 1 to finish...'); if (!window.SP_REACT) { console.debug('[Decky:Boot] Setting up Webpack & React globals...'); - await new Promise((r) => setTimeout(r, 500)); // Can't use DFL sleep here. // deliberate partial import const DFLWebpack = await import('@decky/ui/dist/webpack'); window.SP_REACT = DFLWebpack.findModule((m) => m.Component && m.PureComponent && m.useLayoutEffect);