diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index fe246cc2..8a7bdc1a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -24,14 +24,15 @@ jobs: with: node-version: 22.11.0 cache: "npm" + + # Install and setup rpm/Flatpak for Ubuntu + - name: Install rpm/flatpak packages (Ubuntu only) + if: matrix.os == 'ubuntu-latest' + run: sudo apt-get install -y flatpak flatpak-builder rpm libarchive-tools + - run: npm ci - run: npm run package - # Install and setup Flatpak for Ubuntu - - name: Install flatpak packages (Ubuntu only) - if: matrix.os == 'ubuntu-latest' - run: sudo apt-get install -y flatpak flatpak-builder - - name: Setup flatpak repo (Ubuntu only) if: matrix.os == 'ubuntu-latest' run: | diff --git a/.github/workflows/release-linux.yaml b/.github/workflows/release-linux.yaml index 0996f1ae..7e361647 100644 --- a/.github/workflows/release-linux.yaml +++ b/.github/workflows/release-linux.yaml @@ -20,8 +20,8 @@ jobs: - name: Check out Git repository uses: actions/checkout@v4 - - name: Install flatpak packages - run: sudo apt-get install -y flatpak flatpak-builder + - name: Install rpm/flatpak packages + run: sudo apt-get install -y flatpak flatpak-builder rpm libarchive-tools - name: Setup flatpak repo run: | @@ -39,6 +39,9 @@ jobs: - name: Build deb run: npx electron-builder --config electron-builder.config.js --publish always --linux deb --x64 + - name: Build rpm + run: npx electron-builder --config electron-builder.config.js --publish always --linux rpm --x64 + - name: Build flatpak run: env DEBUG="@malept/flatpak-bundler" npx electron-builder --config electron-builder.config.js --publish always --linux flatpak diff --git a/CHANGELOG.md b/CHANGELOG.md index 933d3a8a..0aca4d39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,148 @@ ## Not released yet ~ +[PR Merged since the last release](https://github.com/Zagrios/bs-manager/pulls?q=is%3Apr+is%3Amerged+merged%3A%3E2025-01-18)\ +[PR Merged since the last alpha](https://github.com/Zagrios/bs-manager/pulls?q=is%3Apr+is%3Amerged+merged%3A%3E2025-01-11+) + +## [1.4.18](https://github.com/Zagrios/bs-manager/releases/edit/v1.4.18) (Jan 18, 2025) + +### Fixes +- Fixed an issue where enabling Oculus sideloading was not working if BSManager installation path contained spaces #735 +- The IPA folder is now cleared each time BSIPA is installed to prevent potential crashes caused by conflicts with old BSIPA files #746 +- Added a check to ensure the file system supports symlinks before moving contents to the shared folder #739 + +### Other changes +- Events occurring in `bs-admin-start.exe` and `oculus-allow-dev-sideloaded.exe` are now logged #735 + +## [1.4.17](https://github.com/Zagrios/bs-manager/releases/edit/v1.4.17) (Jan 2, 2025) + +### Fixes +- Fixed an issue where original Steam installations of Beat Saber did not have any mods available +- Mod descriptions should no longer contain HTML tags + +## [1.4.16](https://github.com/Zagrios/bs-manager/releases/edit/v1.4.16) (Jan 2, 2025) + +### Fixes +- Fixed infinite mod loading when a mod file could not be found on BeatMods #725 (Thanks to @silentrald) +- Fixed an issue where no mods were shown as installed when a mod dependency could not be found #726 (Thanks to @silentrald) +- Fixed minor UI issues + +## [1.4.15](https://github.com/Zagrios/bs-manager/releases/edit/v1.4.15) (Jan 2, 2025) + +### Fixes +- Use the sideloading feature of Oculus to prevent errors when launching Oculus versions of Beat Saber #720 +- Oculus token starting with `OC` are now accepted + +### Other changes +- Mods now load faster #508 +- Switched to the new BeatMods API for loading mods + + +## [1.4.14](https://github.com/Zagrios/bs-manager/releases/edit/v1.4.14) (Dec 2, 2024) + +### Fixes +- Fixed an issue where downloading private playlists through OneClick was always resulting in an error #679 (Thanks to @Top-Cat) +- Beat Saber file verification was broken due to an error in DepotDownloader #677 + + +## [1.4.13](https://github.com/Zagrios/bs-manager/releases/edit/v1.4.13) (Nov 26, 2024) + +### Features +- Added the possibility to unselect all mods from the mods panel #666 + +### Fixes +- Fixed an issue where downloading maps with subfolders was not possible #649 (Thanks to @silentrald) +- Corrected the mods search bar color in the light theme #660 (Thanks to @chk1) + +### Other changes +- Added the BeatLeader icon to the OneClick playlist settings #653 +- A warning now appears before downloading an outdated BeatSaber version #654 +- Oculus BeatSaber versions no longer launch if the Oculus library is not found #657 (Thanks to @LiamillionSS) +- Maps from BeatSaver are now sorted by relevance by default #662 (Thanks to @Top-Cat) +- Removed the `--no-yeet` argument when launching original copies of BeatSaber #667 +- Added warnings for outdated versions in the versions view #673 + + +## [1.4.12](https://github.com/Zagrios/bs-manager/releases/edit/v1.4.12) (Nov 6, 2024) + +### Fixes +- Fixed OneClick playlist download that has been broken in the previous release #645 +- Fixed an issue where downloading playlists could fail if the playlist's file contained special characters #645 + +## [1.4.11](https://github.com/Zagrios/bs-manager/releases/edit/v1.4.11) (Nov 4, 2024) + +### Fixes +- BSManager was not working if the path to BSM's installation folder contained URL special characters #636 +- Linking folders was no longer working if the folders contained files +- Under certain conditions, loading maps could result in a black screen + +### Other changes +- The "Broken Models" notification has been removed #640 + + +## [1.4.10](https://github.com/Zagrios/bs-manager/releases/edit/v1.4.10) (Oct 27, 2024) + +### Fixes +- Mods using a manifest file were sometimes not detected as installed #564 +- BSIPA installation was always considered as successfull even if an error occured #511 +- Some map filter tags were no longer working #619 (Thanks to @silentrald) +- Fixed an issue where, under certain conditions, linking a folder could result in the loss of its contents #568 + +### Other changes +- Default mods are no longer reselected when mods are already installed #535 +- The `DLC` folder has been removed from the default list of folders that can be linked #628 +- The naming scheme for downloaded maps and playlists has been updated to prevent duplicates when downloading maps or playlists from Beat Saber or other tools + + +## [1.4.9](https://github.com/Zagrios/bs-manager/releases/edit/v1.4.9) (Oct 15, 2024) + +### Fixes +- Updated DepotDownloader dependency to fix connection errors with Steam + +### Other changes +- Added support for `info.dat` v4 + + +## [1.4.8](https://github.com/Zagrios/bs-manager/releases/edit/v1.4.8) (Aug 1, 2024) + +### Other changes +- Added checks to avoid logging sensitive data in log files +- The oldest log files are deleted to retain a maximum of 5 log files + + +## [1.4.7](https://github.com/Zagrios/bs-manager/releases/edit/v1.4.7) (Mar 13, 2024) + +### Fixes +- Fixed being unable to download models with BSManager #436 + +### Other changes +- Fixed a typo in german translation (Thanks to @fllppi) + +## [1.4.6](https://github.com/Zagrios/bs-manager/releases/edit/v1.4.6) (Mar 6, 2024) + +### Features +- It's now possible to exclude already installed maps when downloading maps from BSManager #426 (Thanks to @Liborsaf) + +### Fixes +- Fixed an issue where BSManager couldn't get path to user's documents under certain conditions, preventing any action from the user #431 +- To prevent the last launched Beat Saber version getting wiped by Oculus auto-updates, the symlink created to launch the version is now deleted after the game stops #432 + +## [1.4.5](https://github.com/Zagrios/bs-manager/releases/edit/v1.4.5) (Feb 12, 2024) + +### Fixes +- Fixed an issue preventing launching downgraded Steam versions under certain conditions #415 +- Fixed an issue preventing launching downgraded Oculus versions under certain conditions #421 +- Fixed an issue where SteamVR was not properly restored after launching Beat Saber from a shortcut with FPFC mode #417 (Thanks to @slinkstr) + +## [1.4.4](https://github.com/Zagrios/bs-manager/releases/edit/v1.4.4) (Feb 1, 2024) + +### Fixes +- When launching an Oculus Beat Saber version, the Oculus app is also started if needed to avoid crashes #405 +- If Steam is running as admin, Beat Saber is now also started as admin to avoid crashes #404 +- Fixed the issue where BSManager could fail to start due to a missing DLL #400 +- Fixed the issue where BSManager could not locate the Oculus library #398 + +### Other changes +- Added some tooltips to the maps UIs #397 +- Updated the maps panel UI for consistency with the rest of BSManager UIs #399 ## [1.4.3](https://github.com/Zagrios/bs-manager/releases/tag/v1.4.3) (Dec 27, 2023) diff --git a/README.md b/README.md index 6b47a043..e887788b 100644 --- a/README.md +++ b/README.md @@ -559,7 +559,7 @@
  • GaetanGrd - Co-Developer & Co-Founder, Documentation Lead.
  • cheddZy - Icon Creator.
  • Insprill - Co-Developer, Linux Developer, AUR Maintainer.
  • -
  • silentrald - Co-Developer, Linux Developer, deb and flatpak Maintainer.
  • +
  • silentrald - Co-Developer, Linux Developer, deb/rpm/flatpak Maintainer.
  • diff --git a/assets/jsons/patreons.json b/assets/jsons/patreons.json index 33bd4a11..9bd6acc1 100644 --- a/assets/jsons/patreons.json +++ b/assets/jsons/patreons.json @@ -138,5 +138,9 @@ { "username": "Alexander Herman", "type": "gold" + }, + { + "username": "Arts Rimuro Suraimu", + "type": "gold" } ] diff --git a/assets/jsons/translations/de.json b/assets/jsons/translations/de.json index c7e7a533..c7eadb2d 100644 --- a/assets/jsons/translations/de.json +++ b/assets/jsons/translations/de.json @@ -28,6 +28,11 @@ "pin": "Anheften", "unpin": "Lösen" }, + "generic": { + "env": { + "parse": "Konnte den Umgebungsvariablen-String nicht richtig parsen." + } + }, "title-bar": { "outdated": "veraltet" }, @@ -51,7 +56,7 @@ "outdated-tippy": "Diese Version ist veraltet, und einige Mods oder Funktionen funktionieren möglicherweise nicht wie erwartet. Es wird empfohlen, die empfohlene Version ({recommendedVersion}) von Beat Saber zu verwenden, um die neuesten Funktionen und Fehlerbehebungen zu genießen.", "advanced-launch": { "button": "Startoptionen", - "placeholder": "Weitere Argumente, bspw: --revert; --nowait" + "placeholder": "Startoptionen, bspw: KEY=VALUE %command% fpfc" }, "skipsteam": "Steam überspringen", "skipsteam-description": "Verhindert, dass Steam automatisch mit Beat Saber geöffnet wird. Aktivieren Sie dies, wenn Sie eine andere VR-Laufzeit wie WiVRn oder Monado verwenden, mit der SteamVR interferieren könnte.", @@ -148,6 +153,14 @@ "all-mods-already-installed": { "title": "Mods bereits installiert", "description": "Alle ausgewählten Mods sind bereits installiert" + }, + "outdated-mods": { + "title": "Veraltetes Mod", + "title-plural": "Veraltete Mods", + "description": "Das Mod {name} ist veraltet. Möchten Sie es aktualisieren?", + "description-plural": "Diese Version enthält {nb} veraltete Mods. Möchten Sie sie aktualisieren?", + "dont-remind-me": "Nicht mehr daran erinnern", + "update": "Aktualisieren" } }, "drop-zone": { @@ -227,6 +240,7 @@ "es-ES": "Español", "it-IT": "Italiano", "de-DE": "Deutsch", + "pt-BR": "Português (Brasil)", "ru-RU": "Русский", "zh-CN": "简体中文", "zh-TW": "正體中文", @@ -237,6 +251,7 @@ "en-US": "Englisch, USA", "fr-FR": "Französisch", "es-ES": "Spanisch", + "pt-BR": "Portugiesisch", "it-IT": "Italienisch", "de-DE": "Deutsch", "ru-RU": "Russisch", diff --git a/assets/jsons/translations/en.json b/assets/jsons/translations/en.json index 8b769c7d..3054223e 100644 --- a/assets/jsons/translations/en.json +++ b/assets/jsons/translations/en.json @@ -28,6 +28,11 @@ "pin": "Pin", "unpin": "Unpin" }, + "generic": { + "env": { + "parse": "Could not properly parse the env var string." + } + }, "title-bar": { "outdated": "outdated" }, @@ -51,7 +56,7 @@ "outdated-tippy": "This version is outdated, and some mods or features may no longer work as expected. Prefer using the recommended version ({recommendedVersion}) of Beat Saber to enjoy the latest features and bugfixes.", "advanced-launch": { "button": "Launch options", - "placeholder": "Additional arguments ex: --revert; --nowait" + "placeholder": "Launch options ex: KEY=VALUE %command% fpfc" }, "skipsteam": "Skip Steam", "skipsteam-description": "Stops Steam from opening automatically with Beat Saber, enable if you are using a different VR runtime like WiVRn or Monado that SteamVR may interfere with.", @@ -148,6 +153,14 @@ "all-mods-already-installed": { "title": "Mods already installed", "description": "All selected mods are already installed" + }, + "outdated-mods": { + "title": "Outdated Mod", + "title-plural": "Outdated Mods", + "description": "{name} mod is outdated. Do you want to update it?", + "description-plural": "This version has {nb} outdated mods. Do you want to update them?", + "dont-remind-me": "Don't remind me", + "update": "Update" } }, "drop-zone": { @@ -227,6 +240,7 @@ "es-ES": "Español", "it-IT": "Italiano", "de-DE": "Deutsch", + "pt-BR": "Português (Brasil)", "ru-RU": "Русский", "zh-CN": "简体中文", "zh-TW": "正體中文", @@ -239,6 +253,7 @@ "es-ES": "Spanish", "it-IT": "Italian", "de-DE": "German", + "pt-BR": "Portuguese (Brazil)", "ru-RU": "Russian", "zh-CN": "Chinese (Simplified)", "zh-TW": "Chinese (Traditional)", diff --git a/assets/jsons/translations/es.json b/assets/jsons/translations/es.json index 61cba828..c7681628 100644 --- a/assets/jsons/translations/es.json +++ b/assets/jsons/translations/es.json @@ -28,6 +28,11 @@ "pin": "Fijar", "unpin": "Desfijar" }, + "generic": { + "env": { + "parse": "No se pudo analizar correctamente la cadena de la variable de entorno." + } + }, "title-bar": { "outdated": "obsoleto" }, @@ -51,7 +56,7 @@ "outdated-tippy": "Esta versión está desactualizada, y algunos mods o funciones pueden no funcionar como se espera. Es mejor usar la versión recomendada ({recommendedVersion}) de Beat Saber para disfrutar de las últimas características y correcciones.", "advanced-launch": { "button": "Opciones de lanzamiento", - "placeholder": "Argumentos adicionales ej: --revert; --no-wait" + "placeholder": "Opciones de lanzamiento ej: KEY=VALUE %command% fpfc" }, "skipsteam": "Saltar Steam", "skipsteam-description": "Evita que Steam se abra automáticamente con Beat Saber, habilita esto si estás usando un runtime de VR diferente como WiVRn o Monado que SteamVR podría interferir.", @@ -148,6 +153,14 @@ "all-mods-already-installed": { "title": "Mods ya instalados", "description": "Todos los mods seleccionados ya están instalados" + }, + "outdated-mods": { + "title": "Mod desactualizado", + "title-plural": "Mods desactualizados", + "description": "El mod {name} está desactualizado. ¿Quieres actualizarlo?", + "description-plural": "Esta versión tiene {nb} mods desactualizados. ¿Quieres actualizarlos?", + "dont-remind-me": "No me lo recuerdes", + "update": "Actualizar" } }, "drop-zone": { @@ -227,6 +240,7 @@ "es-ES": "Español", "it-IT": "Italiano", "de-DE": "Deutsch", + "pt-BR": "Português (Brasil)", "ru-RU": "Русский", "zh-CN": "简体中文", "zh-TW": "正體中文", @@ -239,6 +253,7 @@ "es-ES": "Español", "it-IT": "Italiano", "de-DE": "Alemán", + "pt-BR": "Portugués (Brasil)", "ru-RU": "Ruso", "zh-CN": "Chino simplificado", "zh-TW": "Chino tradicional", diff --git a/assets/jsons/translations/fr.json b/assets/jsons/translations/fr.json index 09ff7267..d065f6d5 100644 --- a/assets/jsons/translations/fr.json +++ b/assets/jsons/translations/fr.json @@ -28,6 +28,11 @@ "pin": "Épingler", "unpin": "Désépingler" }, + "generic": { + "env": { + "parse": "Impossible d'analyser correctement la chaîne de variable d'environnement." + } + }, "title-bar": { "outdated": "obsolète" }, @@ -51,7 +56,7 @@ "outdated-tippy": "Cette version est obsolète et certains mods ou fonctionnalités peuvent ne plus fonctionner comme prévu. Préférez utiliser la version recommandée ({recommendedVersion}) de Beat Saber pour profiter des dernières fonctionnalités et correctifs.", "advanced-launch": { "button": "Options de lancement", - "placeholder": "Arguments supplémentaires ex: --revert; --nowait" + "placeholder": "Options de lancement ex: KEY=VALUE %command% fpfc" }, "skipsteam": "Ignorer Steam", "skipsteam-description": "Empêche Steam de s'ouvrir automatiquement avec Beat Saber, activez-le si vous utilisez un autre runtime VR comme WiVRn ou Monado avec lequel SteamVR pourrait interférer.", @@ -148,6 +153,14 @@ "all-mods-already-installed": { "title": "Mods déjà installées", "description": "Tous les mods séléctionnées sont déjà installées" + }, + "outdated-mods": { + "title": "Mod obsolète", + "title-plural": "Mods obsolètes", + "description": "Le mod {name} est obsolète. Voulez-vous le mettre à jour ?", + "description-plural": "Cette version contient {nb} mods obsolètes. Voulez-vous les mettre à jour ?", + "dont-remind-me": "Ne plus me rappeler", + "update": "Mettre à jour" } }, "drop-zone": { @@ -227,6 +240,7 @@ "es-ES": "Español", "it-IT": "Italiano", "de-DE": "Deutsch", + "pt-BR": "Português (Brasil)", "ru-RU": "Русский", "zh-CN": "简体中文", "zh-TW": "正體中文", @@ -237,6 +251,7 @@ "en-US": "Anglais, États-Unis", "fr-FR": "Français", "es-ES": "Espagnol", + "pt-BR": "Portugais (Brésil)", "it-IT": "Italien", "de-DE": "Allemand", "ru-RU": "Russe", diff --git a/assets/jsons/translations/it.json b/assets/jsons/translations/it.json index 6be54279..0bb01e70 100644 --- a/assets/jsons/translations/it.json +++ b/assets/jsons/translations/it.json @@ -28,6 +28,11 @@ "pin": "Fissa", "unpin": "Rimuovi Fissaggio" }, + "generic": { + "env": { + "parse": "Impossibile analizzare correttamente la stringa della variabile d'ambiente." + } + }, "title-bar": { "outdated": "obsoleta" }, @@ -51,7 +56,7 @@ "outdated-tippy": "Questa versione è obsoleta, e alcune mod o funzioni non potrebbero più funzionare correttamente. Consigliamo di usare la versione raccomandata ({recommendedVersion}) di Beat Saber per godere delle ultime funzioni e bugfix.", "advanced-launch": { "button": "Opzioni di Lancio", - "placeholder": "Argomenti aggiuntivi es: --revert; --nowait" + "placeholder": "Opzioni di Lancio es: KEY=VALUE %command% fpfc" }, "skipsteam": "Salta Steam", "skipsteam-description": "Ferma Steam da aprirsi automaticamente con Beat Saber, abilitalo se stai usando un VR runtime differente come WiVRn o Monado con cui SteamVR potrebbe interferire.", @@ -148,6 +153,14 @@ "all-mods-already-installed": { "title": "Mod già installata", "description": "Tutte le mod selezionate sono già installate" + }, + "outdated-mods": { + "title": "Mod obsoleto", + "title-plural": "Mod obsoleti", + "description": "Il mod {name} è obsoleto. Vuoi aggiornarlo?", + "description-plural": "Questa versione ha {nb} mod obsoleti. Vuoi aggiornarli?", + "dont-remind-me": "Non ricordarmelo", + "update": "Aggiorna" } }, "drop-zone": { @@ -227,6 +240,7 @@ "es-ES": "Español", "it-IT": "Italiano", "de-DE": "Deutsch", + "pt-BR": "Português (Brasil)", "ru-RU": "Русский", "zh-CN": "简体中文", "zh-TW": "正體中文", @@ -239,6 +253,7 @@ "es-ES": "Spagnolo", "it-IT": "Italiano", "de-DE": "Tedesco", + "pt-BR": "Portoghese (Brasile)", "ru-RU": "Russo", "zh-CN": "Cinese (Semplificato)", "zh-TW": "Cinese (Tradizionale)", diff --git a/assets/jsons/translations/ja.json b/assets/jsons/translations/ja.json index 356fb81e..32e8c7ed 100644 --- a/assets/jsons/translations/ja.json +++ b/assets/jsons/translations/ja.json @@ -28,6 +28,11 @@ "pin": "固定", "unpin": "固定解除" }, + "generic": { + "env": { + "parse": "環境変数の文字列を正しく解析できませんでした。" + } + }, "title-bar": { "outdated": "時代遅れ" }, @@ -51,7 +56,7 @@ "outdated-tippy": "このバージョンは古いため、一部のMODや機能が期待通りに動作しない可能性があります。最新の機能やバグ修正を楽しむには、推奨バージョン ({recommendedVersion}) のBeat Saberを使用することをお勧めします。", "advanced-launch": { "button": "起動オプション", - "placeholder": "追加引数 例:--revert; --nowait" + "placeholder": "起動オプション 例:KEY=VALUE %command% fpfc" }, "skipsteam": "Steamをスキップ", "skipsteam-description": "Beat Saberと一緒にSteamが自動的に開くのを防ぎます。SteamVRが干渉する可能性のあるWiVRnやMonadoなど、別のVRランタイムを使用している場合は有効にしてください。", @@ -148,6 +153,14 @@ "all-mods-already-installed": { "title": "すでにインストール済みのMOD", "description": "選択したすべてのMODはすでにインストールされています" + }, + "outdated-mods": { + "title": "古いMod", + "title-plural": "古いMod", + "description": "{name} Modが古くなっています。更新しますか?", + "description-plural": "このバージョンには古いModが{nb}個あります。更新しますか?", + "dont-remind-me": "もう知らせない", + "update": "更新する" } }, "drop-zone": { @@ -227,6 +240,7 @@ "es-ES": "Español", "it-IT": "Italiano", "de-DE": "Deutsch", + "pt-BR": "Português (Brasil)", "ru-RU": "Русский", "zh-CN": "简体中文", "zh-TW": "正體中文", @@ -239,6 +253,7 @@ "es-ES": "スペイン語", "it-IT": "イタリア語", "de-DE": "ドイツ語", + "pt-BR": "ポルトガル語 (ブラジル)", "ru-RU": "ロシア語", "zh-CN": "簡体字中国", "zh-TW": "繁体字中国", diff --git a/assets/jsons/translations/ko.json b/assets/jsons/translations/ko.json index d95476be..035fefed 100644 --- a/assets/jsons/translations/ko.json +++ b/assets/jsons/translations/ko.json @@ -28,6 +28,11 @@ "pin": "고정", "unpin": "고정 해제" }, + "generic": { + "env": { + "parse": "환경 변수 문자열을 제대로 파싱할 수 없습니다." + } + }, "title-bar": { "outdated": "구식" }, @@ -51,7 +56,7 @@ "outdated-tippy": "이 버전은 오래되어 일부 모드나 기능이 예상대로 작동하지 않을 수 있습니다. 최신 기능과 버그 수정을 사용하려면 권장 버전({recommendedVersion})의 Beat Saber를 사용하는 것이 좋습니다.", "advanced-launch": { "button": "실행 옵션", - "placeholder": "추가 인수 예: --revert; --nowait" + "placeholder": "실행 옵션 예: KEY=VALUE %command% fpfc" }, "skipsteam": "Steam 실행 건너뛰기", "skipsteam-description": "Beat Saber와 함께 Steam이 자동으로 열리는 것을 방지합니다. SteamVR이 간섭할 수 있는 WiVRn 또는 Monado와 같은 다른 VR 런타임을 사용하는 경우 활성화하세요.", @@ -148,7 +153,16 @@ "all-mods-already-installed": { "title": "이미 설치된 모드", "description": "선택한 모든 모드가 이미 설치되었습니다." + }, + "outdated-mods": { + "title": "구식 모드", + "title-plural": "구식 모드", + "description": "{name} 모드가 오래되었습니다. 업데이트하시겠습니까?", + "description-plural": "이 버전에는 {nb}개의 구식 모드가 있습니다. 업데이트하시겠습니까?", + "dont-remind-me": "다시는 알리지 않기", + "update": "업데이트" } + }, "drop-zone": { "text": "모드를 가져오기", @@ -227,6 +241,7 @@ "es-ES": "Español", "it-IT": "Italiano", "de-DE": "Deutsch", + "pt-BR": "Português (Brasil)", "ru-RU": "Русский", "zh-CN": "简体中文", "zh-TW": "正體中文", @@ -239,6 +254,7 @@ "es-ES": "스페인어", "it-IT": "이탈리아어", "de-DE": "독일어", + "pt-BR": "포르투갈 인 (브라질)", "ru-RU": "러시아어", "zh-CN": "중국어 (간체)", "zh-TW": "중국어 (번체)", diff --git a/assets/jsons/translations/pt-br.json b/assets/jsons/translations/pt-br.json new file mode 100644 index 00000000..ba034dcd --- /dev/null +++ b/assets/jsons/translations/pt-br.json @@ -0,0 +1,1321 @@ +{ + "misc": { + "download": "Baixar", + "add": "Adicionar", + "verify": "Verificar", + "launch": "Iniciar", + "mods": "Mods", + "maps": "Mapas", + "playlists": "Playlists", + "models": "Modelos", + "avatars": "Avatares", + "sabers": "Sabres", + "platforms": "Platformas", + "blocks": "Blocos", + "cancel": "Cancelar", + "delete": "Deletar", + "accept": "Aceitar", + "refuse": "Recusar", + "apply": "Aplicar", + "copy": "Copiar", + "copied": "Copiado!", + "confirm": "Confirmar", + "choose-folder": "Escolher pasta", + "unknown": "Um erro desconhecido aconteceu ¯\\_(ツ)_/¯", + "warning": "Aviso", + "continue": "Continuar", + "shared": "Compartilhados", + "pin": "Fixar", + "unpin": "Desafixar" + }, + "generic": { + "env": { + "parse": "Não foi possível interpretar corretamente a string da variável de ambiente." + } + }, + "title-bar": { + "outdated": "Desatualizado" + }, + "nav-bar": { + "add-version": "Adicionar uma versão", + "settings": "Configurações", + "shared": { + "text": "Compartilhados", + "tooltip": "Conteúdos compartilhados" + } + }, + "pages": { + "version-viewer": { + "launch-mods": { + "oculus": "Modo Oculus", + "oculus-description": "Se você está utilizando Beat Saber pela Steam, isso permite que você use o compositor do Oculus VR sem passar pelo SteamVR, para possíveis ganhos de performance. Isso não é necessário para utilizar o Oculus.", + "desktop": "Modo FPFC", + "desktop-description": "O modo Controle Voador em Primeira Pessoa permite utilizar WASD e o mouse para navegar pelo menu do jogo. Isso facilita testes, pois não é necessário colocar o Oculus!", + "debug": "Modo Debug", + "debug-description": "Habilita a janela com logs de saída para IPA. Isso vai mostrar o console de debug que os mods usam.", + "outdated-tippy": "Essa versão está desatualizada, e alguns mods ou funções podem não funcionar mais como esperado. Prefira utilizar a versão recomendada ({recommendedVersion}) de Beat Saber para aproveitar todas as últimas novidades e correções de erros.", + "advanced-launch": { + "button": "Opções de Inicialização", + "placeholder": "Opções de lançamento, ex: KEY=VALUE %command% fpfc" + }, + "skipsteam": "Pular Steam", + "skipsteam-description": "Faz com que a Steam pare de abrir automaticamente com Beat Saber, ative se você está utilizando algum outro executável de VR como WiVRn ou Monado, que pode interferir com o SteamVR.", + "map-editor": "Editor de Mapas", + "map-editor-description": "Iniciar o editor oficial de mapas do Beat Saber ao invés do jogo.", + "proton-logs": "Logs do Proton", + "proton-logs-description": "Habilita a gravação de logs do proton para essa instalação do Beat Saber Saber em \"{versionPath}\"." + }, + "maps": { + "search-bar": { + "search-placeholder": "Procurar um mapa", + "filters-btn": "Filtros", + "dropdown": { + "export-maps": "Exportar mapas", + "delete-maps": "Deletar mapas", + "delete-duplicate-maps": "Deletar duplicatas" + } + }, + "tabs": { + "maps": { + "actions": { + "drop-down": { + "browse-maps": "Explorar mapas", + "import-maps": "Importar mapas" + }, + "link-maps": { + "tooltips": { + "link": "Vincular mapas", + "unlink": "Desvincular mapas" + } + } + }, + "empty-maps": { + "text": "Sem mapas", + "button": "Baixar mapas" + }, + "drop-zone": { + "text": "Importar seus mapas", + "subtext": "Jogue seus arquivos zip aqui para importar seus mapas" + }, + "sort": { + "name": "Nome", + "song-author": "Autor da Música", + "map-author": "Autor do Mapa", + "bpm": "BPM", + "duration": "Duração", + "likes": "Gostei", + "date-uploaded": "Data de envio" + } + }, + "playlists": { + "drop-down": { + "browse-playlists": "Explorar playlists", + "create-a-playlist": "Criar uma playlist", + "import-playlists": "Importar playlists" + }, + "drop-zone": { + "text": "Importar suas playlists", + "subtext": "Jogue seu arquivos \".bplist\" ou \".json\" aqui para importá-los" + }, + "sort": { + "title": "Título", + "author": "Autor", + "number-of-maps": "Quantidade de Mapas", + "duration": "Duração", + "notes-per-second": "NPS" + } + } + } + }, + "mods": { + "loading-mods": "Carregando mods...", + "no-internet": "Sem internet", + "mods-not-available": "Nenhum mod está disponível para essa versão de Beat Saber ainda", + "buttons": { + "more-infos": "Mais informações", + "install-or-update": "Instalar ou Atualizar", + "reinstall-all": "Reinstalar todos" + }, + "mods-grid": { + "header-bar": { + "name": "Nome", + "installed": "Instalado", + "latest": "Mais recente", + "description": "Descrição", + "dropdown": { + "import-mods": "Importar mods", + "desinstalar-all": "Desinstalar todos", + "unselect-all": "Desmarcar todos" + } + } + }, + "notifications": { + "all-mods-already-installed": { + "title": "Mods já instalados", + "description": "Todos os mods selecionados já estão instalados" + }, + "outdated-mods": { + "title": "Mod Desatualizado", + "title-plural": "Mods Desatualizados", + "description": "O mod {name} está desatualizado. Deseja atualizá-lo?", + "description-plural": "Esta versão possui {nb} mods desatualizados. Deseja atualizá-los?", + "dont-remind-me": "Não me lembre", + "update": "Atualizar" + } + }, + "drop-zone": { + "text": "Importar seus mods", + "subtext": "Jogue seus arquivos \"zip\" ou \"dll\" aqui para importá-los" + } + }, + "dropdown": { + "open-folder": "Abrir pasta", + "verify-files": "Verificar arquivos", + "clone": "Clonar", + "edit": "Editar", + "desinstalar": "Desintalar", + "create-shortcut": "Criar um atalho", + "shared-folders": "Pastas compartilhadas" + } + }, + "available-versions": { + "title": "Baixar uma versão", + "steam-release": "Página do lançamento", + "dropdown": { + "refresh": "Atualizar versões", + "import-version": "Importar uma versão" + }, + "recommended": "Recomendado", + "recommended-tooltip": "Versão mais modificável" + }, + "settings": { + "steam-and-oculus": { + "title": "Steam & Oculus", + "description": "Desconectar irá te permitir trocar de contas no próximo download de Beat Saber.", + "logout": "Deslogar", + "logout-success": "Deslogado com sucesso", + "download-platform": { + "title": "Plataforma padrão", + "desc": "Escolha a plataforma padrão que será utilizada para baixar as versões de Beat Saber.", + "always-ask": "Sempre perguntar" + } + }, + "appearance": { + "title": "Aparências", + "description": "Escolha entre as duas cores principais do BSManager.", + "reset": "Resetar", + "sub-title": "Tema", + "themes": { + "dark": "Escuro", + "light": "Claro", + "os": "Sincronizar com seu computador" + } + }, + "installation-folder": { + "title": "Pasta de instalação", + "description": "Alterar a pasta que contem todos os conteúdos baixados pelo BSManager." + }, + "proton-folder": { + "title": "Pasta do Proton ", + "description": "Alterar a pasta do Proton. (exemplo: Proton - Experimental)", + "errors": { + "title": "Alteração na pasta do Proton falhou", + "invalid-folder": "Caminho inválido para a pasta do Proton" + } + }, + "additional-content": { + "title": "Conteúdo Adicional", + "description": "Conteúdo Adicional que te permite customizar Beat Saber!", + "deep-links": { + "sub-title": "Instalações em apenas um clique" + } + }, + "language": { + "title": "Idiomas", + "description": "Selecione um idioma.", + "languages": { + "en-EN": "English, UK", + "en-US": "English, US", + "fr-FR": "Français", + "es-ES": "Español", + "it-IT": "Italiano", + "de-DE": "Deutsch", + "pt-BR": "Português (Brasil)", + "ru-RU": "Русский", + "zh-CN": "简体中文", + "zh-TW": "正體中文", + "ja-JP": "日本語", + "ko-KR": "한국어", + "translated": { + "en-EN": "Inglês, Reino Unido", + "en-US": "Inglês, Estados Unidos", + "fr-FR": "Francês", + "es-ES": "Espanhol", + "it-IT": "Italiano", + "de-DE": "Alemão", + "pt-BR": "Português (Brasil)", + "ru-RU": "Russo", + "zh-CN": "Chinês (Simplificado)", + "zh-TW": "Chinês (Tradicional)", + "ja-JP": "Japonês", + "ko-KR": "Coreano" + } + } + }, + "patreon": { + "title": "Apoie BSManager 💖", + "description": "Apoie o projeto e nos ajude a continuar trazendo melhorias para o BSManager.", + "buttons": { + "support": "Apoie BSManager 🥰", + "supporters": "Apoiadores 👀" + }, + "view": { + "no-supporters": "Nenhum apoiador no momento", + "sponsors": "Patrocinadores", + "supporters": "Apoiadores" + } + }, + "discord": { + "description": "Junte-se a comunidade do BSManager nos seguindo nas nossas redes sociais!" + }, + "contribution": { + "description": "Sugira uma nova função ou reporte um erro para nos ajudar a melhorar BSManager!", + "buttons": { + "request-features": "Solicitar nova função", + "report-bug": "Reportar um erro", + "open-logs": "Abrir logs" + } + }, + "advanced": { + "title": "Avançado", + "description": "Configurações avançadas para BSManager.", + "hardware-acceleration": { + "title": "Aceleração de Hardware", + "description": "Ativar aceleração de hardware para utilizar a sua GPU e melhorar a performance do BSManager. Desligue isso se você está enfrentando perda de quadros.", + "modal": { + "title": "Reinício necessário", + "body": "Alterar a configuração de aceleração de hardware irá fechar e reabrir BSManager. Você quer continuar com isso?", + "confirm-btn": "Sim, eu quero" + }, + "error-notification": { + "message": "Um erro aconteceu, não foi possível desabilitar a aceleração de hardware." + } + }, + "use-symlinks": { + "title": "Usar SymLinks", + "description": "Use SymLinks ao invés de atalhos para pastas. Só ative isso se você realmente precisar.", + "modal": { + "title": "Permissões de Symlink", + "body": "Quando criando symlinks, BSManager irá solicitar privilégios de administrador ou modo desenvolvedor habilitado no seu sistema. Você quer continuar com isso?", + "confirm-btn": "Sim, eu quero" + }, + "error-notification": { + "message": "Um erro aconteceu, não foi possível alterar a configuração de Symlinks." + } + }, + "use-system-proxy": { + "title": "Usar proxy de sistema", + "description": "BSManager irá enviar chamadas de rede pelo seu proxy de sistema.", + "error-notification": { + "message": "Um erro aconteceu, não foi possível alterar a configuração de proxy de sistema." + } + } + } + } + }, + "notifications": { + "types": { + "error": "🚨 Erro", + "warning": "⚠️ Perigo", + "success": "🎉 Succeso" + }, + "common": { + "msg": { + "error-occurred": "Um erro aconteceu" + } + }, + "shared": { + "errors": { + "titles": { + "operation-running": "Operação em andamento", + "no-internet": "Sem internet", + "file-not-supported": "Arquivo não suportado" + }, + "msg": { + "operation-running": "Espere a operação atual terminar, e então tente novamente.", + "no-internet": "Verifique sua conexão e tente novamente.", + "file-not-supported": "Apenas os arquivos {types} são suportados." + } + } + }, + "bs-download": { + "success": { + "titles": { + "download-success": "Download completo", + "verification-finished": "Verificação completa" + } + }, + "steam-download": { + "warnings": { + "msg": { + "ManifestChecksum": "O manifesto baixado anteriormente não é igual ao novo 🤔", + "ConnectionTimeout": "Sua conexão de internet parece instável 🥶", + "ConnectionLost": "A conexão foi perdida, tente novamente...", + "ConnectionError": "Não foi possível conectar a Steam, tente novamente...", + "Unknown": "Algo estranho aconteceu 🤔 sua conexão provavelmente está instável." + } + }, + "errors": { + "msg": { + "401": "Steam não está nos permitindo baixar Beat Saber 😢", + "404": "Não foi possível conectar com os servidores da Steam.", + "ExeNotFoundWindows": "\"DepotDownloader.exe\" está faltando. Por favor verifique se o executável está em quarentena pelo seu anti-virus.", + "ExeNotFoundLinux": "\"DepotDownloader\" executable está faltando.", + "Password": "Senha inválida.", + "InvalidCredentials": "Credenciais de login inválidas, conexão negada, ou muitas tentativas de login foram feitas.", + "NoManifest": "Nenhum manifesto foi encontrado", + "DirectoryCreate": "Não foi possível criar as pastas necessárias.", + "NotAvailableApp": "Você está tentando baixar BeatSaber sem ter comprado o jogo? 🤣", + "DepotNotFound": "Não foi possivel baixar Beat Saber 😥 tente novamente mais tarde 😕", + "NotCompleted": "Não foi possível completar o download ¯\\_(ツ)_/¯", + "InvalidManifest": "Não foi possível baixar Beat Saber 😥 tente novamente mais tarde 😕", + "NoValidKey": "Não foi possível baixar Beat Saber 😥 tente novamente mais tarde 😕", + "NoManifestCode": "Não foi possível baixar Beat Saber 😥 tente novamente mais tarde 😕", + "Unknown": "Um erro desconhecido aconteceu ¯\\_(ツ)_/¯", + "NoServer": "Não foi possível conectar aos servidores da Steam.", + "NotAllowed": "Aparentemente você não tem permissão para baixar Beat Saber 🥱", + "ConnectionTimeout": "Não foi possível conectar na Steam 😕", + "SteamLib": "Se você tiver esse erro, reporte no GitHub com os logs, por favor.", + "ConnectionError": "Não foi possível conectar na Steam depois de 10 tentativas 🤯", + "LicenceError": "Não foi possível pegar a lista de licenças.", + "RateLimitExceeded": "Você tentou muitas vezes, por favor espere um momento e tente novamente mais tarde", + "TokenRejected": "Seu token de login foi rejeitado 😕 Por favor tente novamente.", + "AccessDenied": "Seu acesso a Steam foi negado." + } + } + }, + "oculus-download": { + "errors": { + "msg": { + "DOWNLOAD_MANIFEST_FAILED": "Não foi possível baixar o manifesto para essa versão; seu token de login pode estár inválido.", + "MANIFEST_FILE_NOT_FOUND": "Não foi possível encontrar o manifesto para essa versão.", + "PARSE_MANIFEST_FILE_FAILED": "Um erro aconteceu enquanto o manifesto estava sendo lido.", + "ALREADY_DOWNLOADING": "Uma versão já está sendo baixada.", + "UNABLE_TO_GET_MANIFEST": "Não foi possível obter o manifesto necessário para baixar.", + "VERIFY_INTEGRITY_FAILED": "Um erro aconteceu durante a verificação de arquivos.", + "SOME_FILES_FAILED_TO_DOWNLOAD": "Alguns arquivos falharam na hora de serem baixados.", + "META_LOGIN_TIMED_OUT": "O token de login demorou tempo de mais para chegar.", + "META_LOGIN_WINDOW_CLOSED_BY_USER": "A tela de login da Meta foi fechada.", + "NO_META_AUTH_TOKEN": "Não foi possível recuperar o token de login da Meta necessário para baixar.", + "UNKNOWN_ERROR": "Um erro desconhecido aconteceu." + } + } + } + }, + "bs-import-version": { + "success": { + "start-import": { + "title": "Importação em progresso 👌", + "desc": "A importação pode levar muitos minutos dependendo das suas configurações." + }, + "imported": { + "title": "Versão importada 🎉" + } + }, + "errors": { + "import-error": { + "desc": "Verifique que a pasta selecionada contém uma instalação de Beat Saber." + } + } + }, + "settings": { + "move-folder": { + "success": { + "titles": { + "transfer-started": "Movendo arquivos", + "transfer-finished": "Mudança completa" + }, + "descs": { + "transfer-started": "A transferência de arquivos começou e pode levar muitos minutos dependendo das suas configurações." + } + }, + "errors": { + "titles": { + "transfer-failed": "A mudança de arquivos falhou 😕" + }, + "descs": { + "COPY_TO_SUBPATH": "A pasta destino não pode ser uma subpasta de uma pasta raiz.", + "restore-linked-folders": "Um erro aconteceu enquanto restaurando as pastas compartilhadas. Você ainda pode manualmente restaurara elas pelo menu 'Pastas Compartilhadas' na página de versões." + } + } + }, + "steam": { + "success": { + "titles": { + "logout": "Desconectado da Steam." + } + } + }, + "additional-content": { + "deep-link": { + "select-all": "Selecionar todos", + "activation": { + "success": { + "title": "UmClique ativado!", + "description": "Instalações em UmClique foram ativadas." + }, + "error": { + "description": "Não foi possível ativar instalações em UmClique." + } + }, + "deactivation": { + "success": { + "title": "UmClique desativado!", + "description": "Instalações em UmClique foram desativadas." + }, + "error": { + "description": "Um erro aconteceu." + } + }, + "check-all-enabled": { + "title": "UmClique desabilitado", + "description": "Uma ou mais instalações UmClique estão desabilitadas. Vá nas configurações para habilitá-las", + "actions": { + "settings": "Configurações", + "not-remind": "Não me lembrar novamente" + } + } + } + } + }, + "bs-launch": { + "success": { + "titles": { + "BS_LAUNCHING": "Iniciando...🚀", + "STEAM_LAUNCHING": "Iniciando Steam!", + "SKIPPING_STEAM_LAUNCH": "Pulando início da Steam" + }, + "msg": { + "BS_LAUNCHING": "Não se esqueça do aquecimento 😉", + "STEAM_LAUNCHING": "Beat Saber irá automaticamente iniciar após a Steam.", + "SKIPPING_STEAM_LAUNCH": "Eu espero que você saiba o que está fazendo :)" + } + }, + "errors": { + "titles": { + "UNKNOWN_ERROR": "Não foi possível iniciar", + "STEAM_NOT_RUNNING": "Steam não está iniciando", + "OCULUS_NOT_RUNNING": "Oculus não está iniciando", + "BS_ALREADY_RUNNING": "Beat Saber já está rodando", + "EXE_NOT_FINDED": "Arquivos faltando", + "PROTON_NOT_SET": "Pasta do Proton não está configurada", + "PROTON_NOT_FOUND": "Binário do Proton não encontrado", + "EXIT": "Interrupção Abrupta", + "OCULUS_LIB_NOT_FOUND": "Biblioteca Oculus não encontrada", + "ORIGINAL_OCULUS_NOT_INSTALLED": "Versão original do Oculus não encontrada" + }, + "msg": { + "UNKNOWN_ERROR": "Um erro desconhecido aconteceu.", + "STEAM_NOT_RUNNING": "Steam precisa estar rodando para iniciar BeatSaber.", + "OCULUS_NOT_RUNNING": "Oculus precisa estar rodando para iniciar.", + "BS_ALREADY_RUNNING": "Feche BeatSaber antes de iniciar novamente.", + "EXE_NOT_FINDED": "Alguns arquivos parecem estar faltando, tente verificar os arquivos.", + "EXIT": "BeatSaber parou abruptamente, tente verificar os arquivos.", + "OCULUS_LIB_NOT_FOUND": "Verifique que o aplicativo Oculus está instalado corretamente, e que as bibliotecas estão definidas no Oculus.", + "PROTON_NOT_SET": "Defina o Proton nas configurações.", + "PROTON_NOT_FOUND": "Defina o caminho da pasta do proton nas configurações.", + "ORIGINAL_OCULUS_NOT_INSTALLED": "Beat Saber precisa estar instalado no aplicativo do Oculus antes de iniciar." + }, + "actions": { + "STEAM_NOT_RUNNING": "Iniciar Steam" + } + } + }, + "steam": { + "steam-launching": { + "title": "Iniciando Steam!", + "description": "Beat Saber irá automaticamente iniciar depois da Steam." + } + }, + "custom-version": { + "errors": { + "titles": { + "CantEditSteam": "Não foi possível editar", + "CantRename": "Impossível renomear", + "VersionAlreadExist": "Essa versão já existe", + "CantClone": "Impossível clonar", + "UnknownError": "Um erro desconhecido aconteceu" + }, + "msg": { + "CantEditSteam": "Você não pode editar a versão da Steam, mas você pode cloná-la." + } + }, + "success": { + "titles": { + "CloningFinished": "Clonagem completa 🎉" + } + } + }, + "mods": { + "install-mods": { + "titles": { + "success": "Mods instalados 🎉", + "warning": "Mods instalados 🤔" + }, + "msg": { + "success": "Todos os mods foram instalados.", + "warning": "Um ou mais mods não foram instalados.", + "errors": { + "no-mods": "Nenhum mod para instalar.", + "cannot-install-bsipa": "Instalação BSIPA falhou 😨" + } + } + }, + "desinstalar-mod": { + "titles": { + "success": "Mod desinstalado 🎉" + }, + "msg": { + "errors": { + "no-mods": "Esse mod não está instalado 😑" + } + } + }, + "desinstalar-all-mods": { + "titles": { + "success": "Mods desinstalados 🎉" + }, + "msg": { + "success": "Todos os mods foram desinstalados.", + "errors": { + "no-mods": "Nenhum mod está instalado nessa versão 😑" + } + } + }, + "import-mod": { + "titles": { + "success": "Importação de mods completa", + "error": "Um erro aconteceu durante a importação de mods" + }, + "msgs": { + "success": "Importação de Mods foi concluída.", + "some-success": "Alguns mods foram importados com sucesso.", + "no-dlls": "Os arquivos não possuem nenhum arquivo \"dll\"." + } + } + }, + "maps": { + "one-click-install": { + "success": "Mapa instalado com sucesso", + "error": "Um erro aconteceu durante a instalação do mapa" + }, + "no-duplicates-maps": { + "title": "Sem duplicatas", + "msg": "Nenhum mapa foi deletado" + }, + "duplicates-maps-deleted": { + "title": "Duplicatas Deletadas", + "msg": "Duplicatas foram deletadas" + }, + "import-map": { + "titles": { + "success": "Importação de Maps concluída", + "error": "Um erro aconteceu durante a importação de mapas" + }, + "msgs": { + "success": "Mapas importados com sucesso.", + "some-success": "Alguns mapas foram importados com sucesso.", + "only-accept-zip": "Apenas arquivos zip são suportados.", + "invalid-zip": "O arquivo zip não possui nenhum mapa.", + "unknown": "Um erro desconhecido aconteceu" + } + } + }, + "playlists": { + "one-click-install": { + "success": "Instalação de playlist concluída", + "error": "Um erro aconteceu durante a importação da playlist" + } + }, + "models": { + "one-click-install": { + "success": "Instalação do Modelo concluída", + "error": "Um erro aconteceu durante a importação do modelo" + } + }, + "shared-folder": { + "info": { + "userdata-backup-created": { + "title": "Backup criado", + "msg": "Compartilhar a past 'UserData' pode gerar erros, em aso de problemas, remova o link da pasta e restaure o backup" + } + }, + "linking-error": { + "title": "Erro durante linkagem do arquivos", + "msg": { + "EPERM": "BSManager não tem as permissões necessárias para abrir a pasta.", + "EACCES": "BSManager não tem as permissões necessárias para linkagem da pasta.", + "ENOSPC": "O disco está cheio, abra algum espaço e tente novamente", + "LinkingNotSupported": "Linkagem de pastas não é suportada nesse sistema de arquivos.", + "UNKNOWN_ERROR": "Um erro desconhecido aconteceu durante a linkagem de arquivos." + } + }, + "adding-error": { + "title": "Adição de pasta compartilhada falhou", + "msg": "Você não pode adicionar \"{folder}\" às pastas compartilhadas." + } + }, + "create-launch-shortcut": { + "success": { + "title": "Atalho criado", + "msg": "O atalho foi criado na Área de Trabalho.", + "msg-steam": "O atalho foi criado na biblioteca da Steam." + }, + "error": { + "msg": "Um erro aconteceu enquanto o atalho era criado." + } + }, + "bs-version-oudated": { + "title": "Versão desatualizada", + "msg": "Essa versão do Beat Saber está desatualizada, use a versão recomendada para utilizar as funções mais recentes e correções de erros", + "actions": { + "do-not-remind": "Não me lembrar novamente", + "ok": "Ok" + } + } + }, + "modals": { + "misc": { + "remember-my-choice": "Lembrar minhas escolhas" + }, + "choose-store": { + "title": "Qual platforma?", + "body": "Selecione a plataforma na qual você quer baixar Beat Saber.", + "set-in-settings": "Configura a plataforma padrão nas configurações" + }, + "guard": { + "title": "Steam Guard", + "inputs": { + "guard-code": { + "label": "Código Guard", + "placeholder": "Digite seu Código do Guard" + } + }, + "buttons": { + "submit": "Login" + } + }, + "steam-login": { + "title": "Steam Login", + "inputs": { + "username": { + "label": "Entrar com seu usuário", + "placeholder": "Digite seu usuário" + }, + "password": { + "label": "Senha", + "placeholder": "Digite sua senha", + "max-length-warning": "Sua senha ultrapassa 64 caracteres! Se a senha é inválida, tente digitar apenas os primeiros 64 caracteres." + }, + "qr": { + "label": "Ou com um QR code", + "note": { + "use-the": "Use o ", + "steam-mobile-app": "Aplicativo móvel da Steam", + "to-connect-with-qr": "Para entrar com o QR code." + } + }, + "stay": "Lembre-se de mim" + }, + "why-credentials": "Por que minhas credenciais são necessárias?", + "need-help-to-connect": "Eu preciso de ajuda para acessar minha conta!", + "buttons": { + "submit": "Entrar" + } + }, + "steam-auth-approve": { + "title": "Esperando confirmação", + "protected-by-mobile-auth": "Conta progeida por autenticador móvel.", + "use-steam-app-to-approve": "Use o aplicativo móvel da steam para confirmar essa conexão...", + "not-access-to-steam-app": "Eu não tenho acesso ao aplicativo móvel da Steam" + }, + "steam-credentials": { + "title": "Credenciais Steam", + "p-1": "Suas credenciais da Steam são necessárias apenas para baixar as versões de Beat Saber, nós usamos DepotDownloader para fazer isso, e verificar que você possuí o jogo na sua biblioteca antes de baixar o jogo. Suas credenciais não são armazenadas ou salvas, e são passadas direto para o DepotDownloader. Entretanto, se você não quiser fazer isso, você pode seguir esse tutorial: ", + "p-2": "Após isso, você pode apertar no ícone de engrenagem no topo direito da tela e selecionar \"Importar uma versãp\", e então selecionar a pasta com a instalação do Beat Saber. (Se você seguiu o tutorial, você vai ter a pasta correta)" + }, + "bs-import-version": { + "title": "Importar uma versão", + "description": "Importa uma versão de Beat Saber para usar com o BSManager. Isso vai copiar a pasta de instalação selecionada para a pasta de versões do BSManager.", + "oculus-version": "Versão do Oculus", + "oculus-version-tooltip": "Verifique se é uma versão do Oculus", + "buttons": { + "submit": "Importar uma versão" + } + }, + "bs-desinstalar": { + "title": "Desinstalar", + "description": "Você tem certeza que quer desinstalar Beat Saber {version}? Você vai ter que baixar ela novamente se quiser jogá-la.", + "buttons": { + "submit": "Desinstalar" + } + }, + "install-folder": { + "title": "Pasta de instalação", + "description": "Alterar a pasta padrão de instalação vai resultar em mover todos os arquivos instalados para a nova pasta.", + "buttons": { + "submit": "Escolher pasta" + } + }, + "edit-version": { + "title": "Editar a versão", + "buttons": { + "submit": "Editar" + } + }, + "clone-version": { + "title": "Clonar a versão", + "description": "Clonar a versão te perimte separar conteúdos adicionais entre duas versões.", + "inputs": { + "name": { + "label": "Nome", + "placeholder": "Nome da versão" + }, + "color": { + "label": "Cor" + } + }, + "buttons": { + "submit": "Clonar" + } + }, + "desinstalar-mod": { + "title": "Desinstalar", + "description": "Você tem certeza que quer desinstalar Beat Saber {mod}? Pode fazer com que outros mods parem de funcionar.", + "description-bsipa": "Você tem certeza que quer desinstalar BSIPA? Depois, nenhum mod irá funcionar." + }, + "desinstalar-all-mods": { + "title": "Desinstalando mods", + "description": "Você tem certeza que quer desinstalar todos os mods da versão {version}? Essa operação não pode ser desfeita." + }, + "maps-actions": { + "delete-maps": { + "title": { + "single": "Deletar esse mapa?", + "multiple": "Deletar mapas?" + }, + "desc": { + "single": "Você tem certeza que quer desinstalar o mapa {name}?", + "multiple": "Você tem certeza que quer desinstalar {nb} mapas?" + }, + "info": { + "desc": { + "single": "Esse mapa faz parte de um mapa compartilhado", + "multiple": "Esses mapas fazem parte de mapas compartilhados" + }, + "title": { + "single": "Esse mapa também será removido de suas versões utilizando mapas compartilhados", + "multiple": "Esses mapas também serão removidos de suas versões utilizando mapas compartilhados" + } + } + } + }, + "link-contents":{ + "title": "Vincular {contentType}", + "p-1": "Vincular {contentType} permite compartilhar {contentType} entre todas as suas versões que possuam essa função habilitada. Uma vez vinculados, essa versão irá se beneficiar dos {contentType} compartilhados.", + "p-2": "Para que possa aproveitar a função de vinculação, todos os seus {itemsHtml} serão movidos para a pasta {sharedHtml}. Depois disso, um link simbólico apontando para a pasta compartilhada {contentType} irá substituir sua pasta original {contentType}.", + "warning": "Por favor, observe que qualquer mudança que afete {contentType} também irá afetar todas as versões com essa função habilitada.", + "what-is-a-symbolic-link": "O que é um link simbólico?", + "i-need-help": "Eu preciso de ajuda", + "valid-btn": "Link {contentType}" + }, + "unlink-contents":{ + "title": "Desvincular {contentType}", + "p-1": "Cuidado! Desvincular {contentType} irá desabilitar o compartilhamento de {contentType} para essa versão, até que seja habilitado novamente.", + "p-2": "Para que possa desvincular seus mapas, o link simbólico criado anteriomente para {sharedHtml} será removido. Depois disso, todos os mapas na pasta compartilhada serão copiados para a pasta {itemsHtml} da sua versão do Beat Saber.", + "do-not-copy-contents": "Não copie {contentType}", + "do-not-copy-contents-tip": "Se habilitado, {contentType} na pasta compartilhada não será copiado para sua versão de Beat Saber. Como consequência, nenhum {contentType} irá se manter na sua versão do Beat Saber depois da desvinculação.", + "valid-btn": "Desvincular {contentType}" + }, + "download-maps": { + "search-btn": "Procurar", + "loading-maps": "Carregando mapas...", + "no-maps-found": "Nenhum mapa encontrado", + "no-internet": "Sem internet" + }, + "mods-disclaimer": { + "title": "Aviso", + "p-1": "Ao escolher utilizar mods, você entende que:", + "li-1": "Você pode experienciar problemas que não existem no jogo convencional. 99.9% dos bugs, crashes, e lags acontecem por causa de mods.", + "li-2": "Mods estão sujeitos a serem quebrados por atualizações e isso é normal - seja paciente e respeitoso quando isso acontecer, visto que as pessoas são voluntárias com vidas reais.", + "li-3": "A empresa não está propositalmente tentando quebrar os mods. Eles apenas querem trabalhar no código base e as vezes isso quebra os mods, mas eles não estão tentando matá-los.", + "p-2": "Não ataque os desenvolvedores do jogo por problemas relacionados aos mods e vice-versa. Os desenvolvedores do jogo e dos mods são 2 grupos separados. Apenas não seja um idiota, ok?." + }, + "shared-folders": { + "title": "Pastas compartilhadas", + "description": "Vincule pastas do Beat Saber para sincronizar seus conteúdos com pastas compartilhadas entre as versões. Observe que deleções também são compartilhadas.", + "buttons": { + "add-folder": "Adicionar Pasta", + "link-folder": "Vincular Pasta", + "unlink-folder": "Desvincular Pasta", + "link-all": "Vincular todas", + "remove-from-the-list": "Remover da lista" + } + }, + "adding-shared-folder": { + "title": "Adicionando pasta compartilhada", + "description": "Você pode experienciar problemas vinculando a pasta \"{folder}\". Você tem certeza que quer adicioná-la?" + }, + "create-launch-shortcut": { + "title": "Criar um atalho", + "desc": "Criar um atalho irá permitir que você inicie o Beat Saber com as opções escolhidas sem ter que entrar no BSManager.", + "launch-options": "Iniciar opções", + "advanced-launch": "Início Avançado", + "valid-btn": "Criar o atalho", + "create-steam-shortcut": "Criar um atalho da Steam", + "steam-shortcut-tippy": "Se habilitado, ao invés de criar um atalho na área de trabalho, o atalho será criado na Steam." + }, + "connect-to-meta": { + "title": "Conectar a Meta", + "body": { + "token-needed": "Seu token de conexão com a Meta é necessário para baixar Beat Saber.", + "need-cookie-enabled": "Ao entrar na Meta, uma janela de login irá aparecer e então você pode iniciar o processo de login. Por favor, lembre de aceitar os cookies, caso contrário, podemos não conseguir recuperar seu token para começar o download.", + "enter-token-manually": "Digitar meu token de login manualmente", + "enter-token-manually-tooltip": "Isso irá lhe permitir digitar seu token de login sem ter que passar pelo login da Meta." + }, + "stay": "Lembre-se de mim", + "connect-to-meta": "Conectar a Meta" + }, + "enable-oculus-sideloaded-apps": { + "title": "Habilitar Aplicativos Externos", + "info-1": "Para que possamos iniciar Beat Saber, a possibilidade de executar aplicativos carregados externamente precisam estar habilitados. BSManager irá solicitar acesso de administrador para habilitar essa função automaticamente.", + "info-2": "A função de aplicativos externos irá permitir que jogos sejam iniciados por fora da sua pasta de biblioteca do Oculus.", + "info-3": "Após ativar os aplicativos externos, a função irá se manter ativa, e não pediremos mais para habilitá-la.", + "i-want-to-do-it-myself": "Eu quero fazer isso eu mesmo", + "understood": "Entendido" + }, + "enter-meta-token": { + "title": "Token Oculus", + "body": { + "info-enter-token": "Para baixar Beat Saber, seu token de login do Oculus é necessário.", + "how-obtain-token": "Como eu obtenho meu token Oculus?", + "oculus-token": "Token Oculus", + "token-is-invalid": "O token é inválido.", + "save-my-token": "Salvar meu token", + "have-token-saved": "Eu já tenho um token salvo", + "save-token-info": "Isso irá salvar seu token para facilitar o reuso. Você precisará criar uma senha para criptografar seu token a fim de armazená-lo com segurança. Se você esquecer sua senha, só precisará fornecer o token novamente.", + "password": "Senha", + "password-too-short": "Senha muito curta", + "info-enter-password": "Para baixar Beat Saber, seu token de login é necessário. Digite a senha anteriormente utilizada para salvar seu token.", + "info-disabled-btn-password": "Não foi possível descriptografar o token com essa senha. Tenha certeza que a senha é a mesma utilizada para salvar o token anteriormente.", + "enter-oculus-token": "Digite um token Oculus" + }, + "valid-btn": "Validar" + }, + "launch-as-admin": { + "title": "Permissões de Administrador", + "body": { + "info": "Steam está rodando com permissões de administrador. Para comunicar com a Steam, o Beat Saber também precisa ser iniciado como administrador. Caso contrário, Beat Saber pode experiênciar problemas e fechar após iniciar.", + "info-2": "Iniciar Beat Saber no modo administrador também irá dar permissões de administrador para os mods instalados. Dessa forma, é recomendado que você reinicie a Steam sem permissões de administrador.", + "info-3": "Observe que não é recomendado dar permissões de administrador para a Steam, visto que afeta os mods e os jogos instalados, podendo ser um risco de segurança." + }, + "launch-as-admin": "Iniciar como Administrador", + "not-remind-me": "Não me perguntar novamente" + }, + "ask-install-path": { + "title": "Pasta de instalação", + "choose-folder-description": "Escolha a pasta que irá conter todos os conteúdos baixados pelo BSManager. (versões, mods, mapas, playlists, etc.)", + "default": "Padrão", + "default-tooltip": "Utiliza sua pasta padrão" + }, + "choose-proton-folder": { + "title": "Pasta Proton", + "proton-folder-description": "No linux, BSManager precisa do Proton para funcionar. Escolha a pasta de instalação do Proton para continuar.", + "proton-folder-placeholder": "Pasta de instalação do Proton Proton", + "where-is-proton-installed": "Onde Proton é instalado?" + }, + "bs-version-outdated": { + "body": "Essa versão {outdatedVersion} está desatualizada, e alguns mods ou funções podem não funcionar como esperado. Por favor baixe a versão mais recente ({recommendedVersion}) de Beat Saber para aproveitar as últimas novidades e correções." + } + }, + "maps": { + "map-filter-panel": { + "duration": "Duração", + "nps": "Notas Por Segundo", + "njs": "Velocidade de Aparecimento das Notas", + "tags": "Rótulos", + "specificities": "Gerais", + "requirements": "Requerimentos", + "exclude": "Excluir", + "leaderboard": "leaderboard" + }, + "map-types": { + "accuracy": "Acurácia", + "balanced": "Balanceado", + "challenge": "Desafios", + "dance-style": "dança", + "fitness": "fitness", + "speed": "velocidade", + "tech": "técnica" + }, + "map-styles": { + "dance": "dança", + "swing": "swing", + "nightcore": "nightcore", + "folk-acoustic": "folk & acústica", + "kids-family": "crianças & familia", + "ambient": "ambiente", + "funk-disco": "funk & disco", + "jazz": "jazz", + "soul": "soul", + "speedcore": "speedcore", + "punk": "punk", + "rb": "r&b", + "holiday": "festivas", + "vocaloid": "vocaloid", + "j-rock": "j-rock", + "trance": "trance", + "drum-and-bass": "bateria & baixo", + "comedy-meme": "comedia & memes", + "instrumental": "instrumental", + "hardcore": "hardcore", + "k-pop": "k-pop", + "indie": "indie", + "techno": "techno", + "house": "house", + "video-game-soundtrack": "video game", + "tv-movie-soundtrack": "TV & film", + "alternative": "alternativos", + "dubstep": "dubstep", + "metal": "metal", + "anime": "anime", + "hip-hop-rap": "hip hop & rap", + "j-pop": "j-pop", + "rock": "rock", + "pop": "pop", + "electronic": "electrônica", + "classical-orchestral": "Classica & Orquestras" + }, + "map-specificities": { + "automapper": "AI", + "curated": "Curadas", + "verified": "verificadas", + "fullSpread": "full spread" + }, + "map-leaderboard": { + "All": "All", + "Ranked": "Ranqueada", + "BeatLeader": "BeatLeader", + "ScoreSaber": "ScoreSaber" + }, + "map-excludes": { + "installed": "instaladas" + }, + "difficulties": { + "Easy": "fácil", + "Normal": "normal", + "Hard": "difícil", + "Expert": "expert", + "ExpertPlus": "expert+" + }, + "map-item": { + "by": "Por {songAutor}", + "mapped-by": "Mapeado por", + "delete": "Deletar", + "preview": "Pré-visualização do mapa", + "bsr-code": "código BSR", + "download": "Baixar mapa", + "downloading": "Baixando mapa", + "cancel-download": "Cancelar download", + "hightlight-difficulty": "Destacar dificuldade" + } + }, + "models": { + "types": { + "singular": { + "avatar": "avatar", + "saber": "sabre", + "platform": "platforma", + "bloq": "bloco" + }, + "plural": { + "avatar": "avatares", + "saber": "sabres", + "platform": "platformas", + "bloq": "blocos" + } + }, + "sorts": { + "name": "Nome", + "date": "Data", + "author": "Autor" + }, + "panel": { + "actions": { + "search": "Procurar um modelo", + "drop-down": { + "delete": "Deletar modelos", + "export": "Exportar modelos" + }, + "link-models": "Vincular modelos", + "unlink-models": "Desvincular modelos" + }, + "grid": { + "loading": "Carregando modelos...", + "no-models": "Nenhum modelo", + "download-models": "Baixar modelos" + } + }, + "modals": { + "delete-model": { + "title": "Deletar o modelo", + "desc": "Tem certeza que quer deletar o modelo {modelName}?", + "linked-annotation": "Esse modelo será removido de todas as suas versões vinculadas." + }, + "delete-models": { + "title": "Deletar modelos", + "desc": "Tem certeza que quer deletar {nb} modelos?", + "linked-annotation": "Esses modelos serão removidos de todas as suas versões vinculadas." + }, + "download-models": { + "search-btn": "Procurar", + "search-placeholder": "Procurar um modelo", + "search-tips": { + "header": { + "tag": "Rótulo", + "desc": "Descrição" + }, + "author-desc": "Mostrar apenas modelos desse autor específico.", + "hash-desc": "Mostrar apenas modelos com essa hash específica.", + "tag-desc": "Mostrar apenas modelos com esse rótulo.", + "name-desc": "Mostrar apenas modelos com o nome especificado.", + "discordid-desc": "Mostrar apenas modelos desse usuário do discord.", + "status-desc": "Mostrar apenas modelos com esse status específico. (apenas perfil, e apenas do autor)" + }, + "no-models": "Nenhum modelo encontrado.", + "no-internet": "Sem conexão com a internet.", + "error-occurred": "Um erro aconteceu, tente novamente" + } + }, + "notifications": { + "prevent-for-mods": { + "title": "Mods necessários", + "desc": "Certifique-se de instalar os mods necessários par autilizar esse modelo em Beat Saber", + "go-to-mods": "Ir para mods", + "not-remind": "Não me lembrar novamente" + }, + "export-success": { + "title": "Exportação completa 🎉" + } + } + }, + "beat-saver": { + "maps-sorts": { + "Latest": "Mais recente", + "Relevance": "Relevância", + "Rating": "Avaliação", + "Curated": "Curados" + } + }, + "auto-update": { + "checking": "Verificando atualizações", + "downloading": "Baixando atualizações" + }, + "bs-shortcut-launch": { + "beat-saber-launching": "Iniciando Beat Saber", + "launching": "Iniciando", + "open-bsmanager": "Abra BSManager", + "status-text": { + "init": "Inicializando...", + "success": { + "BS_LAUNCHING": "Inicializando Beat Saber...", + "STEAM_LAUNCHING": "Iniciando Steam...", + "STEAM_LAUNCHED": "Steam iniciada com sucesso!", + "UNABLE_TO_LAUNCH_STEAM": "Não foi possível iniciar Steam, obrigando Beat Saber a iniciar..." + } + } + }, + "drop-zone": { + "or-browse-files": "Ou navegar pelos arquivos" + }, + "playlist": { + "error-playlist-creation-title": "Erro criando playlist", + "error-playlist-creation-desc": "Um erro aconteceu enquanto criávamos a playlist.", + "playlist-created-title": "Playlist criada", + "playlist-created-desc": "A playlist foi criada com sucesso, agora você pode sincronizar seus mapas!", + "download-playlist": "Baixar playlist", + "synchronize-playlist": "Sincronizar playlist", + "synchronize-maps": "Sincronizar maps", + "error-playlists-synchronization-title": "Erro ao sincronizar playlists", + "error-playlists-synchronization-desc": "Um erro aconteceu enquanto sincronizávamos as playlists.", + "playlists-synchronized-title": "Playlists sincronizadas!", + "playlists-synchronized-desc": "Playlists e seus mapas foram baixados.", + "playlists-export-error-title": "Erro ao exportar playlists", + "playlists-export-error-desc": "Um erro aconteceu enquanto exportávamos as playlists.", + "playlists-exported-title": "Playlists exportadas!", + "playlists-exported-desc": "Playlists foram exportadas com sucesso.", + "playlists-with-maps-exported-desc": "Playlists e seus mapas foram exportados com sucesso.", + "playlist-delete-error-title": "Erro ao deletar playlist", + "playlist-delete-error-desc": "Um erro aconteceu enquanto tentávamos deletar a playlist.", + "playlists-deleted-title": "Playlists deletadas!", + "playlists-deleted-desc": "Playlists foram deletadas com sucesso.", + "edit-playlist": "Editar playlist", + "playlist-edit-error-title": "Erro ao editar playlist", + "playlist-edit-error-desc": "Um erro aconteceu enquanto editavamos a playlist.", + "playlist-edited-title": "Playlist editada!", + "playlist-edited-desc": "A playlist foi modificada com sucesso. Agora você pode sincronizar seus mapas!", + "playlists-loading": "Carregando playlists...", + "no-playlists": "Nenhuma playlists", + "download-playlists": "Baixar playlists", + "created-by": "Criado por", + "stop-download": "Pausar download", + "cancel-download": "Cancelar download", + "open-file": "Abrir arquivo", + "delete-playlist-ask": "Deletar playlist?", + "delete-playlists-ask": "Deletar playlists?", + "delete-playlist-desc": "Tem certeza que quer deletar a playlist \"{playlistTitle}\"?", + "delete-playlists-desc": "Tem certeza que quer deletar {nb} playlists?", + "delete-maps": "Deletar mapas", + "delete-playlist-maps-tip": "Se habilitado, todos os mapas na playlist serão deletados", + "delete-playlists-maps-tip": "Se habilitado, todos os mapas na playlist serão deletados", + "export-playlist-ask": "Exportar playlist?", + "export-playlists-ask": "Exportar playlists?", + "export-playlist-desc": "Tem certeza que quer exportar a playlist \"{playlistTitle}\"?", + "export-playlists-desc": "Tem certeza que quer exportar {nb} playlists?", + "export-maps": "Exportar mapas", + "export-playlist-maps-tip": "Se habilitado, todos os mapas na playlist também serão exportados", + "export-playlists-maps-tip": "Se habilitado, todos os mapas na playlist também serão exportados", + "export": "Exportar", + "need-clone-title": "Aviso", + "need-clone-desc-1": "Essa playlist foi baixada de um site externo e contém um vínculo de sincronização.", + "need-clone-desc-2": "Para impedir que perca suas alterações durante a sincronização, essa playlist será duplicada e sua vinculação será removida.", + "need-clone-desc-3": "Você pode depois, se desejar, deletar a playlist original.", + "understood": "Eu entendi", + "synchronize-playlist-ask": "Sincronizar playlist?", + "synchronize-playlists-ask": "Sincronizar playlists?", + "synchronize-playlist-desc": "Tem certeza que quer sincronizar a playlist \"{playlistTitle}\"?", + "synchronize-playlists-desc": "Tem certeza que quer sincronizar {nb} playlists?", + "synchronize-playlist-tip": "Essa ação atualizará as playlists e baixará mapas que estão faltando; Pode levar vários minutos.", + "synchronize": "Sincronizar", + "curated": "Curadas", + "verified-mapper": "Criador de mapas Verificado", + "empty-playlists": "Playlists vazias", + "search-playlist": "Procurar por uma playlist", + "no-playlists-found": "Nenhuma playlists encontrada", + "error-occur-while-loading-playlists": "Um erro aconteceu enquanto carregávamos a playlist", + "error-occur-while-loading-playlist": "Um erro aconteceu enquanto carregávamos a playlist", + "loading-maps": "Carregando mapas...", + "no-maps-found-for-playlist": "Nenhum mapa encontrado para essa playlist", + "playlist-contain-no-maps": "Essa playlist não possui mapas", + "no-map-installed-for-playlist": "Nenhum mapa instalado para essa playlist", + "playlist-is-waiting-to-download": "A playlist está esperando para ser baixada", + "download-maps": "Baixar mapas", + "download-missing-maps": "Baixar mapas que estão faltando", + "playlist-is-downloading": "A playlist está sendo baixada", + "some-playlist-maps-are-missing": "Alguns mapas nessa playlist estão faltando", + "create-a-playlist": "Criar uma playlist", + "synchronize-playlists": "Sincronizar playlists", + "export-playlists": "Exportar playlists", + "delete-playlists": "Deletar playlists", + "choose-image": "Escolher uma imagem", + "title": "Título", + "playlist-title": "Título da Playlist", + "description": "Descrição", + "playlist-description": "Descrição da Playlist", + "author": "Autor", + "playlist-author": "Autor da Playlist", + "save": "Salvar", + "loading": "Carregando...", + "installed": "Instalado", + "no-map-found": "Nenhum mapa encontrado", + "edit-playlist-shortcuts": "Segure Shift ou Ctrl para selecionar múltiplos mapas", + "add-to-playlist": "Adicionar à playlist", + "remove-from-playlist": "Remover da playlist", + "playlist-is-empty": "A playlist está vazia", + "continue": "Continuar", + "nb-maps": "Quantidade de mapas", + "nb-mappers": "Quantidade de editores de mapa", + "duration": "Duração", + "nps": "Notas por segundo", + "date-picker": { + "start-date-end-date": "Date ínicio — Data Fim", + "all": "Todos", + "last-24h": "Últimas 24hrs", + "last-week": "Última semana", + "last-month": "Último mês", + "3-last-month": "Últimos 3 meses" + }, + "playlists-imported": "Playlists importadas", + "all-playlists-have-been-successfully-imported": "Todas as playlists foram importadas com sucesso", + "no-playlist-found": "Nenhuma playlist encontrada", + "no-playlist-found-in-selected-files": "Nenhuma playlist encontrada nos arquivos selecionados", + "some-playlists-not-imported": "Algumas playlists não foram importadas", + "some-playlists-have-been-imported": { + "INVALID_SOURCE": "Algumas playlists não puderam ser encontradas", + "INVALID_PLAYLIST_FILE": "Algumas playlists são inválidas", + "CANNOT_PARSE_PLAYLIST": "Algumas playlists não podem ser lidas", + "unknown": "Algumas playlists não puderam ser importadas" + }, + "no-playlists-imported": "Nenhuma playlists importada", + "no-playlists-imported-errors": { + "INVALID_SOURCE": "Playlists não foram encontradas", + "INVALID_PLAYLIST_FILE": "Playlists são invalidas", + "CANNOT_PARSE_PLAYLIST": "Playlists não podem ser lidas", + "unknown": "Nenhuma playlist pode ser importada" + } + }, + "dateformat": { + "dayNames": [ + "Dom", + "Seg", + "Ter", + "Qua", + "Qui", + "Sex", + "Sab", + "Domingo", + "Segunda", + "Terça", + "Quarta", + "Quinta", + "Sexta", + "Sábado" + ], + "monthNames": [ + "Jan", + "Fev", + "Mar", + "Abr", + "Maio", + "Jun", + "Jul", + "Ago", + "Set", + "Out", + "Nov", + "Dez", + "Janeiro", + "Fevereiro", + "Março", + "Abril", + "Maio", + "Junho", + "Julho", + "Agosto", + "Setembro", + "Outubro", + "Novembro", + "Dezembro" + ], + "timeNames": [ + "a", + "p", + "am", + "pm", + "A", + "P", + "AM", + "PM" + ] + } +} diff --git a/assets/jsons/translations/ru.json b/assets/jsons/translations/ru.json index d583e90e..4a4500a1 100644 --- a/assets/jsons/translations/ru.json +++ b/assets/jsons/translations/ru.json @@ -28,6 +28,11 @@ "pin": "Закрепить", "unpin": "Открепить" }, + "generic": { + "env": { + "parse": "Не удалось правильно разобрать строку переменной окружения." + } + }, "title-bar": { "outdated": "устаревший" }, @@ -51,7 +56,7 @@ "outdated-tippy": "Эта версия устарела, и некоторые моды или функции могут работать не так, как ожидалось. Рекомендуется использовать рекомендуемую версию ({recommendedVersion}) Beat Saber, чтобы воспользоваться последними функциями и исправлениями ошибок.", "advanced-launch": { "button": "Параметры запуска", - "placeholder": "Параметры запуска, например: --revert; --nowait" + "placeholder": "Параметры запуска, например: KEY=VALUE %command% fpfc" }, "skipsteam": "Пропустить Steam", "skipsteam-description": "Предотвращает автоматическое открытие Steam с Beat Saber, включите, если вы используете другую VR-среду, такую как WiVRn или Monado, с которой SteamVR может мешать.", @@ -148,6 +153,14 @@ "all-mods-already-installed": { "title": "Моды уже установлены", "description": "Все выбранные моды уже установлены" + }, + "outdated-mods": { + "title": "Устаревший мод", + "title-plural": "Устаревшие моды", + "description": "Мод {name} устарел. Хотите его обновить?", + "description-plural": "В этой версии есть {nb} устаревших модов. Хотите их обновить?", + "dont-remind-me": "Не напоминать мне", + "update": "Обновить" } }, "drop-zone": { @@ -227,6 +240,7 @@ "es-ES": "Español", "it-IT": "Italiano", "de-DE": "Deutsch", + "pt-BR": "Português (Brasil)", "ru-RU": "Русский", "zh-CN": "简体中文", "zh-TW": "正體中文", @@ -239,6 +253,7 @@ "es-ES": "Испанский", "it-IT": "Итальянец", "de-DE": "Немецкий", + "pt-BR": "португальский (Бразилия)", "ru-RU": "Русский", "zh-CN": "Китайский (упрощенный)", "zh-TW": "Китайский (традиционный)", diff --git a/assets/jsons/translations/zh-tw.json b/assets/jsons/translations/zh-tw.json index bec5592d..cacac60a 100644 --- a/assets/jsons/translations/zh-tw.json +++ b/assets/jsons/translations/zh-tw.json @@ -28,6 +28,11 @@ "pin": "固定", "unpin": "取消固定" }, + "generic": { + "env": { + "parse": "無法正確解析環境變數字串。" + } + }, "title-bar": { "outdated": "過時" }, @@ -51,7 +56,7 @@ "outdated-tippy": "此版本已過時,某些模組或功能可能無法按預期運作。建議使用推薦版本的 Beat Saber ({recommendedVersion}),以享受最新功能和修復。", "advanced-launch": { "button": "啟動選項", - "placeholder": "額外啟動參數,例如: --revert; --nowait" + "placeholder": "啟動選項,例如: KEY=VALUE %command% fpfc" }, "skipsteam": "跳過 Steam", "skipsteam-description": "防止 Steam 與 Beat Saber 自動打開,如果您使用的是其他 VR 執行時,如 WiVRn 或 Monado,SteamVR 可能會干擾,請啟用此選項。", @@ -148,6 +153,14 @@ "all-mods-already-installed": { "title": "模組已安裝", "description": "所有選中的模組已經安裝" + }, + "outdated-mods": { + "title": "過時的模組", + "title-plural": "過時的模組", + "description": "{name} 模組已過時。您想更新嗎?", + "description-plural": "此版本有 {nb} 個過時的模組。您想更新它們嗎?", + "dont-remind-me": "不要提醒我", + "update": "更新" } }, "drop-zone": { @@ -227,6 +240,7 @@ "es-ES": "Español", "it-IT": "Italiano", "de-DE": "Deutsch", + "pt-BR": "Português (Brasil)", "ru-RU": "Русский", "zh-CN": "簡體中文", "zh-TW": "正體中文", @@ -239,6 +253,7 @@ "es-ES": "西班牙語", "it-IT": "義大利語", "de-DE": "德語", + "pt-BR": "葡萄牙語 (巴西)", "ru-RU": "俄語", "zh-CN": "簡體中文", "zh-TW": "正體中文", diff --git a/assets/jsons/translations/zh.json b/assets/jsons/translations/zh.json index 93434081..da08ac9b 100644 --- a/assets/jsons/translations/zh.json +++ b/assets/jsons/translations/zh.json @@ -28,6 +28,11 @@ "pin": "固定", "unpin": "取消固定" }, + "generic": { + "env": { + "parse": "无法正确解析环境变量字符串。" + } + }, "title-bar": { "outdated": "过时" }, @@ -51,7 +56,7 @@ "outdated-tippy": "此版本已过时,某些模组或功能可能无法按预期运行。建议使用推荐版本的 Beat Saber ({recommendedVersion}),以享受最新功能和修复。", "advanced-launch": { "button": "启动选项", - "placeholder": "额外启动参数,例如: --revert; --nowait" + "placeholder": "启动选项,例如: KEY=VALUE %command% fpfc" }, "skipsteam": "跳过 Steam", "skipsteam-description": "防止 Steam 与 Beat Saber 自动打开,如果您使用的是其他 VR 运行时,如 WiVRn 或 Monado,SteamVR 可能会干扰,请启用此选项。", @@ -148,6 +153,14 @@ "all-mods-already-installed": { "title": "模组已安装", "description": "所有选中的模组已经安装" + }, + "outdated-mods": { + "title": "过时的模组", + "title-plural": "过时的模组", + "description": "{name} 模组已过时。您想更新吗?", + "description-plural": "此版本有 {nb} 个过时的模组。您想更新它们吗?", + "dont-remind-me": "不要提醒我", + "update": "更新" } }, "drop-zone": { @@ -239,6 +252,7 @@ "es-ES": "西班牙语", "it-IT": "意大利语", "de-DE": "德语", + "pt-BR": "葡萄牙语 (巴西)", "ru-RU": "俄语", "zh-CN": "简体中文", "zh-TW": "正体中文", diff --git a/build/after-install.sh b/build/after-install.sh index a9e1aedd..f2ec23df 100644 --- a/build/after-install.sh +++ b/build/after-install.sh @@ -1,6 +1,2 @@ -# Add write permissions to anybody so that this can be sync with the -# github's bs-versions.json when starting bsmanager -/usr/bin/chmod +002 /opt/BSManager/resources/assets/jsons/bs-versions.json - # https://github.com/electron/electron/issues/42510 /usr/bin/chmod 4755 /opt/BSManager/chrome-sandbox diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md index a0fbf9a7..737d8fce 100644 --- a/docs/wiki/Home.md +++ b/docs/wiki/Home.md @@ -49,7 +49,6 @@ Guidance on fixing errors during setup or version updates - __🐧Linux__: - [Missing Icons in Game]([Linux]-Missing-Icons-in-Game) - - [Permission Denied on "bs-versions.json"]([Linux]-Permission-Denied-on-bs-version.json) - [[Deb] The SUID Sandbox Helper Binary Was Found]([Linux]-[deb]-The-SUID-Sandbox-Helper-Binary-Was-Found) - [[Flatpak] Steam Beat Saber Version Not Showing / Proton Not Detected]([Linux]-[Flatpak]-Steam-Beat-Saber-Version-Not-Showing-Proton-Not-Detected) - [[Flatpak] Changing Installation Folder]([Linux]-[Flatpak]-Changing-Installation-Folder) diff --git a/docs/wiki/Troubleshoots/Installation-Problems/Linux/[Linux]-Permission-Denied-on-bs-version.json/[Linux]-Permission-Denied-on-bs-version.json.md b/docs/wiki/Troubleshoots/Installation-Problems/Linux/[Linux]-Permission-Denied-on-bs-version.json/[Linux]-Permission-Denied-on-bs-version.json.md deleted file mode 100644 index 81e9af5d..00000000 --- a/docs/wiki/Troubleshoots/Installation-Problems/Linux/[Linux]-Permission-Denied-on-bs-version.json/[Linux]-Permission-Denied-on-bs-version.json.md +++ /dev/null @@ -1,13 +0,0 @@ -
    -Unhandled Exception UnhandledRejection Error: EACCES: permission denied, open '/opt/BSManager/resources/assets/jsons/bs-versions.json'
    -
    - -To fix this issue, the current user must have write permissions to the "bs-versions.json". To correct the permissions do command below: - -```bash -chmod +002 /opt/BSManager/resources/assets/jsons/bs-versions.json - -# or - -chown $(whoami) /opt/BSManager/resources/assets/jsons/bs-versions.json -``` diff --git a/docs/wiki/_Sidebar.md b/docs/wiki/_Sidebar.md index d114fbc6..1c5eddab 100644 --- a/docs/wiki/_Sidebar.md +++ b/docs/wiki/_Sidebar.md @@ -71,7 +71,6 @@ 🐧 Linux