Compare commits

..

528 Commits

Author SHA1 Message Date
MathieuG-P 413996f9f3 Merge pull request #760 from Zagrios/chore/update-changelog
[Chore] update changelog
2025-01-30 19:46:58 +01:00
MathieuG-P cda4e000ee Merge pull request #759 from GaetanGrd/master
[Chore]Update Wiki for 1.5
2025-01-30 19:46:23 +01:00
Zagrios 2e9f62d415 bumb to v1.5.0 2025-01-29 22:51:21 +01:00
Zagrios 4ef821adc9 Fix angry TS 2025-01-29 22:40:59 +01:00
Zagrios 21f4eacefb [hotfix] Fix no mods available if an error occurs while resolving installed mods 2025-01-29 22:37:04 +01:00
Zagrios 72738a256b [chore] this error is already logged by request.service 2025-01-29 22:21:34 +01:00
Zagrios a54c146772 [hotfix] show skip steam only if the lauch option is enabled 2025-01-29 22:15:27 +01:00
Zagrios 43a4cdfe45 [hotfix] Fix wrong translation keys in brazilian translation 2025-01-29 21:58:37 +01:00
Zagrios 39d481467a [hotfix] Fix false error when deleting a playlist with no maps installed 2025-01-29 21:43:59 +01:00
Zagrios 3afcf1c12e Merge branch 'master' of https://github.com/Zagrios/bs-manager 2025-01-29 21:34:09 +01:00
Zagrios da140848ba [hotfix] wrong translation keys in brazilian translation 2025-01-29 21:34:08 +01:00
MathieuG-P 288853a6cc Merge pull request #763 from silentrald/hotfix/inject-env-vars
[hotfix] properly inject the env variable to the launch command
2025-01-29 12:14:57 +01:00
MathieuG-P 365e251408 Merge pull request #761 from silentrald/bugfix/uninstall-null-mod
[hotfix] fixed handling for filtering out mods to uninstall
2025-01-29 12:12:52 +01:00
Iluhadesu eaa5eccb98 Add v1.40.1 to bs-versions.json 2025-01-29 11:07:03 +00:00
silentrald eabeae00d6 [hotfix] properly inject the env variable to the launch command 2025-01-29 18:00:52 +08:00
silentrald d209d6c336 [hotfix] fixed handling for filtering out mods to uninstall 2025-01-29 09:31:55 +08:00
Zagrios eff5d5728f mods in pending folders must be loaded first 2025-01-28 22:44:04 +01:00
GaetanGrd 2ee7a904d6 Merge branch 'master' into master 2025-01-28 19:52:54 +01:00
GaetanGrd f477870f74 Update README.md 2025-01-28 19:51:28 +01:00
Shidorien 2ccb3d469f Update readme for 1.5 (no image update) 2025-01-28 19:47:01 +01:00
Zagrios 37ad1d2d19 bumb to v1.5.0-alpha.10 2025-01-28 18:39:53 +01:00
Zagrios 88f3467882 Do not use multiple hashes yet, its broken 2025-01-28 18:38:45 +01:00
GaetanGrd c63b39ff01 Merge pull request #5 from Zagrios/master
update master
2025-01-28 18:17:52 +01:00
Shidorien 4bb01146e6 fix: correct spelling and improve headings in installation guides 2025-01-28 18:14:32 +01:00
Shidorien 35a476f6ab fix: update section title from "Import Maps" to "Import Mods" in installation guide 2025-01-28 18:06:10 +01:00
Shidorien 1744ae1dcc add instructions for importing mods with BSManager 2025-01-28 18:05:46 +01:00
Shidorien 7a38bb22f1 fix: remove manual installation section from the model modification guide 2025-01-28 18:01:06 +01:00
Shidorien b325bf2a39 fix: update headings and add manual installation section in model modification guide 2025-01-28 18:00:57 +01:00
MathieuG-P 43ddfc652d Merge pull request #758 from Zagrios/bugfix/min-nps-playlist-is-always-zero
[bugfix] Min nps of playlists was always zero
2025-01-28 17:41:01 +01:00
Shidorien 52d1049c98 update shortcut creation instructions for clarity and add visual 2025-01-28 17:39:47 +01:00
Zagrios 4c4b783aa7 [bugfix] Min nps of playlists was always zero 2025-01-28 16:08:17 +01:00
Zagrios 2c1c94640f bump version to 1.5.0-alpha.9 and update license to GPL-3.0-only 2025-01-28 15:18:44 +01:00
Zagrios 8476f869b4 Bumb to v1.5.0-alpha.9 2025-01-28 15:16:44 +01:00
Zagrios ad87874e09 update changelog 2025-01-28 15:10:07 +01:00
Zagrios fd299e1267 fix z index 2025-01-28 14:54:42 +01:00
MathieuG-P 374bfe6834 Merge pull request #751 from arthurmluz/feature/pt-br-language
[TRANSLATION] brazilian portuguese language
2025-01-28 14:39:01 +01:00
Zagrios 47158a264a Add missing translations 2025-01-28 14:30:14 +01:00
Zagrios 812600a3ec Fix brazil flag icon 2025-01-28 14:23:21 +01:00
MathieuG-P 8efba693b3 Merge branch 'master' into feature/pt-br-language 2025-01-28 14:10:56 +01:00
MathieuG-P 39afc09df9 Merge pull request #749 from silentrald/bugfix/linux-env-parser
[feat] inject env vars to launch options with steam format %command%
2025-01-28 14:10:04 +01:00
silentrald b94fe0a053 [feat] follow launch command string even if its hidden 2025-01-28 20:58:24 +08:00
silentrald 1c2321b438 [feat] support %command% env args to windows and oculus
* refactored additionalArgs to command and change its type to string instead of string array
2025-01-28 13:41:16 +08:00
MathieuG-P e6d96088fb Merge pull request #756 from Zagrios/bugfix/add-file-size-check-when-moving-folder-content
[chore] Enhance folder linking reliability by ensuring file size consistency during content movement
2025-01-27 16:03:48 +01:00
Zagrios 5466ad61c3 Ensure file size consistency during folder content movement 2025-01-26 15:57:45 +01:00
MathieuG-P 0a2e2a2f47 Merge pull request #755 from Zagrios/feature/outdated-mods-notification
[feature] Outdated mods notification
2025-01-26 15:21:21 +01:00
MathieuG-P 950ca71a0a [feature] Outdated mod notification 2025-01-26 04:04:07 +01:00
silentrald 889e792b3c [feat] added translations for env parser error 2025-01-24 20:37:46 +08:00
silentrald c6ff848bfa [feat] inject env vars to launch options with steam format %command% 2025-01-24 20:27:36 +08:00
silentrald 5d4b79c041 [feat] added a way to parse env strings 2025-01-24 20:27:36 +08:00
MathieuG-P 28be0da96e Merge pull request #747 from silentrald/build/rpm
[chore] added rpm build for linux
2025-01-23 21:46:12 +01:00
MathieuG-P a74c6bba10 Merge branch 'master' into build/rpm 2025-01-23 20:26:33 +01:00
MathieuG-P ebd4d4115a Merge pull request #745 from silentrald/bugfix/flatpak-stuff
[bugfix] fixed flatpack issues
2025-01-23 20:22:20 +01:00
MathieuG-P b91f0b06ab Merge pull request #750 from silentrald/feat/change-log-file-behavior
[feat] change how file log names are created
2025-01-22 17:05:14 +01:00
MathieuG-P 41af98dbfb Merge pull request #752 from FliegendeWurst/patch-1
package.json: correct license value based on ./LICENSE
2025-01-22 11:17:30 +01:00
Arne Keller cf0e092705 package.json: correct license value based on ./LICENSE 2025-01-22 09:36:42 +01:00
silentrald 93bcd358cb [feat] just set the deleteLogFolders than appending the new list 2025-01-22 08:35:47 +08:00
Arthur Luz 3cb744bf6c Merge branch 'master' into feature/pt-br-language 2025-01-21 17:51:12 -03:00
arthurmluz 53c9f92344 feat: adds brazilian portuguese language 2025-01-21 17:50:17 -03:00
MathieuG-P 5f6cf77f53 Add patreon 2025-01-21 20:51:24 +01:00
Shidorien 7caca61c1e fix: simplify installation instructions by removing redundant steps for downloading playlists, maps, and models 2025-01-21 20:31:39 +01:00
Shidorien 3f5b5ca4a0 fix: reorder download sources for BSManager in installation guides 2025-01-21 20:29:42 +01:00
silentrald ec0ae76d70 [feat] delete obsolete log files from previous handling 2025-01-21 12:19:05 +08:00
silentrald 13984f886f [feat] change how file log names are created 2025-01-21 12:07:22 +08:00
Shidorien 29e5b1946d fix: streamline instructions for searching and installing playlists and maps in the installation guide 2025-01-20 18:37:02 +01:00
Shidorien 09ffdcae32 enhance installation guide with detailed steps for installing and importing maps using BSManager 2025-01-20 18:35:22 +01:00
Shidorien 7fc6ffdda9 fix: reorder steps for installing playlists in the installation guide 2025-01-20 18:34:35 +01:00
Shidorien 0085d1e52e fix: update link for importing playlists in installation guide 2025-01-20 18:28:17 +01:00
Shidorien ccd36913de enhance installation guide with detailed steps for importing playlists using BSManager 2025-01-20 18:27:47 +01:00
Shidorien 4dcc4e92a2 fix: correct formatting in installation guide for playlist installation steps 2025-01-20 18:20:26 +01:00
Shidorien a4dab93c36 fix: update installation guide to improve clarity on playlist installation steps 2025-01-20 18:20:16 +01:00
Shidorien 39adbc42f0 update installation guide for playlists with BSManager 2025-01-20 18:16:30 +01:00
GaetanGrd 71da1d9484 Merge pull request #4 from Zagrios/master
update master
2025-01-20 18:00:04 +01:00
silentrald 8020084e77 [chore] updated contributor title to add rpm maintainer 2025-01-20 09:00:44 +08:00
MathieuG-P 0b4331bef2 bsm icon as default playlist cover 2025-01-19 00:09:53 +01:00
silentrald b284b33669 [chore] added rpm build for linux 2025-01-18 22:29:39 +08:00
silentrald effe0608e1 [bugfix] fix light theming pin icon color 2025-01-18 22:25:02 +08:00
silentrald 773b54ca08 [bugfix] recursively create the compatdata folder 2025-01-18 22:14:07 +08:00
silentrald 0c3a5b9e75 [bugfix] use static config for bs-version writing/reading for linux 2025-01-18 22:14:07 +08:00
silentrald dc3ae1971d [bugfix-742] launch bs version directly with steam shortcut 2025-01-18 22:14:07 +08:00
silentrald 350dff37cf [bugfix] refactored bs launch + launch bs version directly with shortcut 2025-01-18 22:14:07 +08:00
silentrald a47616086c [bugfix] fixed issue when proton logs with flatpak 2025-01-18 22:14:07 +08:00
silentrald 96fb2ed8c7 [bugfix-738] fixed issue when creating Beat Saber shortcuts 2025-01-18 22:14:07 +08:00
MathieuG-P bacead72ae Merge pull request #746 from Zagrios/bugfix/clear-ipa-folder-when-installing-bsipa
[bugfix] clear the IPA folder when installing BSIPA
2025-01-18 01:05:18 +01:00
MathieuG-P 56450f73c8 [bugfix] clear the IPA folder when installing BSIPA 2025-01-16 23:16:27 +01:00
MathieuG-P 68e260f831 Merge pull request #744 from silentrald/bugfix/light-launch-mods
[bugfix] fix light theming for launch mod buttons
2025-01-15 23:45:37 +01:00
silentrald 1559224ff9 [bugfix] fix light theming for launch mod buttons 2025-01-15 13:19:24 +08:00
MathieuG-P 4b8004ea80 Merge pull request #739 from Zagrios/bugfix/check-if-symlink-is-supported-before-linking
[bugfix] Check if symlink is supported on the current filesystem before linking
2025-01-14 16:38:10 +01:00
MathieuG-P e3fef23ef0 [bugfix] check if symlink is supported on current filesystem before linking 2025-01-14 16:23:45 +01:00
MathieuG-P 5f43a8fd4f Merge pull request #736 from silentrald/bugfix/733
[bugfix-733] custom compatdata folder for specific BSManager usage
2025-01-13 16:05:31 +01:00
MathieuG-P e4766f8a25 minor ui fixes 2025-01-12 16:31:17 +01:00
MathieuG-P 17deb2658e Merge pull request #737 from Zagrios/chore/move-import-mods-button
[chore] move import mods button
2025-01-12 15:37:26 +01:00
MathieuG-P b4d934f22a [chore] move import mods button 2025-01-12 12:45:30 +01:00
silentrald 11e61b72b3 [bugfix-733] custom compatdata folder for specific BSManager usage 2025-01-12 10:44:31 +08:00
MathieuG-P 689a57e014 bumb to v1.5.0-alpha.8 2025-01-11 20:47:48 +01:00
MathieuG-P a891ecb0db Merge pull request #735 from Zagrios/bugfix/reduce-dll-deps-and-add-logs-file-to-external-scripts
Reduce DLL dependencies for "oculus-allow-dev-sideloaded.exe"  and add logging for external scripts
2025-01-11 18:27:41 +01:00
MathieuG-P 17bd2e8463 [bugfix] reduce DLL deps of "oculus-allow-dev-sideload.exe" and add log file to all external scripts 2025-01-11 18:14:41 +01:00
MathieuG-P 467ca6e300 Merge pull request #734 from silentrald/bugfix/733
[bugfix-733] manually set WINEPREFIX when executing IPA.exe
2025-01-11 14:34:01 +01:00
MathieuG-P 66595dac06 Merge branch 'master' into bugfix/733 2025-01-11 13:09:13 +01:00
MathieuG-P 1301bfe358 Merge pull request #601 from silentrald/feat/216
[feat-216] support for sorting maps/songs and playlists
2025-01-11 12:59:15 +01:00
MathieuG-P 1732191be3 try fix unit test type 2025-01-11 12:55:05 +01:00
silentrald fb7f68cd04 [bugfix-733] point to the correct compat folder 2025-01-10 10:02:49 +08:00
silentrald e89333ea09 [feat-216] refactored sorting services to classes and const 2025-01-10 01:02:39 +08:00
silentrald f2ad6c1531 [bugfix-733] fix issue with unit tests 2025-01-09 23:55:17 +08:00
silentrald 65d26dc819 [bugfix-733] manually set WINEPREFIX when executing IPA.exe 2025-01-09 23:42:56 +08:00
MathieuG-P 664e28ad05 update deps 2025-01-08 21:03:28 +01:00
silentrald 1d70c867f3 [feat-216] fix ui issues + change some dropdown options 2025-01-08 21:31:39 +08:00
MathieuG-P 99ce770592 little css adjustment 2025-01-07 19:37:19 +01:00
MathieuG-P afb4075408 Merge pull request #732 from Zagrios/Chore/Patch-Wiki-sidebar
Update _Sidebar.md
2025-01-06 20:18:01 +01:00
MathieuG-P 9e20239328 Merge pull request #731 from Zagrios/feature/create-steam-shortcut
[feature] create steam shortcut
2025-01-06 20:17:22 +01:00
Shidorien 989b045be7 Fix URL encoding in Linux sidebar links 2025-01-06 18:30:45 +01:00
GaetanGrd 5fb44d1adc Update _Sidebar.md 2025-01-06 18:28:43 +01:00
MathieuG-P 2a99c76d09 [feature] we can now create launch shortcut in steam library 2025-01-06 18:17:47 +01:00
MathieuG-P cc7237fef2 Merge pull request #730 from silentrald/bugfix/allow-compat-folder-create-perms
[bugfix] allow compat folder create permission for linux flatpak
2025-01-06 15:56:16 +01:00
silentrald e3d27e4b4f [feat-216] applied ui for filter/sorting map/playlist
* also applied change to model filter ui
2025-01-06 19:25:51 +08:00
MathieuG-P 3ff2b729c9 Merge branch 'master' of https://github.com/Zagrios/bs-manager 2025-01-06 11:15:09 +01:00
MathieuG-P 35238685ce add patreon 2025-01-06 11:15:06 +01:00
silentrald 48e77920af [bugfix] allow compat folder create permission for linux flatpak 2025-01-06 12:57:05 +08:00
Shidorien bbe708b767 Remove redundant line in installation guide 2025-01-06 00:22:19 +01:00
Shidorien b6513fb096 Merge branch 'master' of https://github.com/GaetanGrd/bs-manager 2025-01-06 00:21:46 +01:00
Shidorien a4d9069a3d Fix image src 2025-01-06 00:21:45 +01:00
GaetanGrd be49f1e02b Merge pull request #3 from Zagrios/master
update local fork
2025-01-06 00:21:04 +01:00
Shidorien 0417f3d4fa Update Install or import a version for 1.5 2025-01-06 00:20:15 +01:00
Shidorien 3feca3769a Update BSManager installation instructions to include multiple download sources 2025-01-06 00:19:17 +01:00
MathieuG-P c7d6bc54e4 Merge pull request #729 from GaetanGrd/master
Update BSManager wiki for actual release
2025-01-05 21:52:38 +01:00
Shidorien 80c555711f fix forget element to restore orignal name for oculus token page 2025-01-05 21:47:18 +01:00
MathieuG-P a148ddaee2 add patreon 2025-01-05 21:45:33 +01:00
Shidorien 023f8d31b0 Add sidebar navigation and troubleshooting sections to the wiki 2025-01-05 21:37:22 +01:00
Shidorien 14a7f5f00b restore orignal name and original link for How-to-obtain-your-Oculus-Token 2025-01-05 21:36:48 +01:00
Shidorien ec8b41187e Correct capitalization in Linux installation instructions and error guidance 2025-01-05 21:33:52 +01:00
MathieuG-P 774c3a2954 [feature] advancement on steam shortcut 2025-01-05 21:33:23 +01:00
Shidorien 4381bb4696 Add markdownlint extension to VSCode recommendations 2025-01-05 20:45:51 +01:00
silentrald 6d1418dd7c [feat-216] aligned with change with v4 schema maps
* linted/auto-formatted sorter.service.ts files
* changed generics.type to comparator.type
2025-01-05 14:43:37 +08:00
silentrald 22af4610eb [feat-216] added translations for playlists sorting 2025-01-05 14:43:37 +08:00
silentrald b4874eced4 [feat-216] support for sorting playlists 2025-01-05 14:43:37 +08:00
silentrald 61b728ed55 [feat-216] added translations for maps/songs sorting 2025-01-05 14:43:37 +08:00
silentrald 1310d16597 [feat-216] support for sorting maps/songs 2025-01-05 14:43:37 +08:00
GaetanGrd 1985f5e6be Merge pull request #2 from Zagrios/master
add patreon
2025-01-05 00:26:25 +01:00
MathieuG-P 30c6058edb add patreon 2025-01-05 00:21:54 +01:00
Shidorien c69b110595 Fix image alt text in Oculus token guide for clarity 2025-01-05 00:21:36 +01:00
Shidorien 1f02551408 Add browser methode to get oculus token 2025-01-05 00:20:12 +01:00
MathieuG-P cab1fb93de [feature] add checkbox to create a steam shortcut + fix create shortcut modal 2025-01-05 00:06:04 +01:00
Shidorien 74ed168f98 Reorder "Activate Oculus Sideloading" link in Home.md for better visibility 2025-01-04 23:19:07 +01:00
Shidorien ea04073772 fix nexusmods links 2025-01-04 23:17:23 +01:00
Shidorien 8ac1683fab delete useless file 2025-01-04 19:50:53 +01:00
Shidorien 38ef6191e4 Remove video elements from shortcut creation and version import guides 2025-01-04 19:39:28 +01:00
Shidorien ed4b39598f Update video source path in installation guide for importing versions 2025-01-04 19:31:38 +01:00
Shidorien 4f58df6280 Fix video source path in installation guide for importing versions 2025-01-04 19:07:26 +01:00
Shidorien ba26f3a01e Recreate and restore the installation guide for importing versions of Beat Saber 2025-01-04 19:01:50 +01:00
Shidorien 661a90883c Fix image path for Linux missing icons troubleshooting guide 2025-01-04 19:00:13 +01:00
Shidorien 87a7e08e5f Update image paths in Linux missing icons and Oculus sideloading troubleshooting guides 2025-01-04 18:55:05 +01:00
Shidorien 6c4acec8a2 Remove troubleshooting section for Linux installation guide 2025-01-04 17:31:41 +01:00
Shidorien 6345e9148b Capitalize heading for Linux installation guide in Home.md 2025-01-04 17:30:54 +01:00
Shidorien c76e585d71 Refactor installation problems section to improve heading formatting and clarity 2025-01-04 17:30:31 +01:00
Shidorien b20f6328e9 Update installation problems section to enhance Linux heading formatting 2025-01-04 17:29:49 +01:00
Shidorien bc220e6692 Add troubleshooting guides for Linux installation issues 2025-01-04 17:27:06 +01:00
Shidorien 88f8dc7d5c Remove outdated installation guide for importing versions 2025-01-04 16:43:09 +01:00
Shidorien f0b7294ac5 Update installation guide to improve heading level for Arch (AUR) section 2025-01-04 16:37:43 +01:00
Shidorien 7815e35506 Update installation guide to improve heading hierarchy and consistency 2025-01-04 16:36:48 +01:00
Shidorien 32d604345f Add missing line breaks in installation guide for improved readability 2025-01-04 16:35:06 +01:00
Shidorien 1f07c35cc6 Remove unnecessary line breaks in installation guide for improved readability 2025-01-04 16:34:35 +01:00
Shidorien c8ec5db4d7 Add warning about login information and clarify use of DepotDownloader in installation guide 2025-01-04 16:33:53 +01:00
Shidorien 4d90102127 Update installation guide to improve heading structure and consistency 2025-01-04 16:33:26 +01:00
Shidorien b0c2a7c872 Add table of contents and restructure installation guide for clarity 2025-01-04 16:31:03 +01:00
Shidorien 149e6bbc9d Refactor installation guide to improve heading structure and consistency 2025-01-04 16:25:55 +01:00
Shidorien b12e90a32a Enhance installation guide by updating section headings for improved readability 2025-01-04 16:25:11 +01:00
Shidorien 5a4df356bf Update installation guide headings for consistency and clarity 2025-01-04 16:22:31 +01:00
Shidorien 97fbeb01a4 test 2025-01-04 16:21:36 +01:00
Shidorien 6beb675139 Add Oculus sideloading activation guide and restructure documentation 2025-01-04 16:10:23 +01:00
Shidorien 79693e2070 Merge branch 'Zagrios-master' 2025-01-04 15:34:24 +01:00
Shidorien 6708071b7a Merge branch 'master' of https://github.com/Zagrios/bs-manager into Zagrios-master 2025-01-04 15:34:06 +01:00
Shidorien 7ea75bd50a Update links in README and modal component for consistency in token retrieval instructions 2025-01-04 15:32:20 +01:00
Shidorien 62abe32696 Remove unnecessary detail tags and improve the structure of the installation guide 2025-01-04 15:06:49 +01:00
Shidorien b8fb1781aa test 2025-01-04 15:06:07 +01:00
Shidorien 379e7cfaf5 test 2025-01-04 15:05:58 +01:00
Shidorien 9cfcf28373 Replace caution and important emojis with warning and note callouts for consistency in documentation 2025-01-04 15:01:41 +01:00
Shidorien 67f102738a Fix formatting and capitalization in multiple documentation files for consistency 2025-01-04 14:49:15 +01:00
Shidorien 025d6f8ccd Add troubleshooting guide for keyboard shortcut conflicts with AMD Software 2025-01-04 14:43:41 +01:00
Shidorien 69496221b2 Fix formatting and capitalization in How-to-find-your-logs.md for consistency 2025-01-04 14:41:56 +01:00
Shidorien 7b1ae3772a Fix formatting and punctuation in Get-your-Oculus-token.md for consistency and clarity 2025-01-04 14:40:25 +01:00
Shidorien f92b621174 Fix formatting and capitalization in Install-or-import-a-version.md for consistency 2025-01-04 14:40:07 +01:00
Shidorien 3f2147b796 Fix formatting and capitalization in Create-a-shortcut.md for consistency 2025-01-04 14:39:03 +01:00
Shidorien b61d540d0e Fix formatting in help-us-update-the-wiki.md for consistency 2025-01-04 14:36:55 +01:00
Shidorien 9984780a99 Fix formatting in Modify-models-in-your-beat-saber.md for consistency 2025-01-04 14:35:05 +01:00
Shidorien d7e1e0daad Fix punctuation in installation guide for clarity 2025-01-04 14:34:47 +01:00
Shidorien 03cacc7fc8 Fix formatting and capitalization in installation guide for consistency 2025-01-04 14:34:28 +01:00
Shidorien 4dff8f5765 Improve formatting and consistency in Modify-models-in-your-beat-saber.md 2025-01-04 14:31:13 +01:00
Shidorien 3463a63e1d test 2025-01-04 14:30:17 +01:00
Shidorien 5926a72fab Fix formatting and capitalization in installation guides for consistency 2025-01-04 14:28:51 +01:00
Shidorien 5824166a22 Grammar and spelling fixes 2025-01-04 14:25:51 +01:00
MathieuG-P 29eba3d572 Capitalize mods categories 2025-01-04 01:52:11 +01:00
MathieuG-P 29426f21b2 bumb to v1.5.0alpha-7 2025-01-03 16:55:53 +01:00
MathieuG-P db1e51b90a Refresh mods after import 2025-01-03 16:52:00 +01:00
MathieuG-P eba7e55539 [docs] put the "Known bugs" section at the bottom 2025-01-03 16:21:01 +01:00
MathieuG-P ef5f6ee5f6 Merge pull request #674 from basti564/patch-1
wiki: easier method to obtain oculus token
2025-01-03 16:15:57 +01:00
MathieuG-P 7c185b9d2c Merge branch 'master' into patch-1 2025-01-03 16:14:52 +01:00
MathieuG-P 8766809fb8 [docs] Update Oculus Token retrieval instructions and add known bugs section 2025-01-03 16:08:55 +01:00
MathieuG-P a424651f9d Merge pull request #728 from Zagrios/apply-changes-from-1.4.15-1.4.16-1.4.17
Apply changes from [1.4.15-1.4.17]
2025-01-03 15:52:42 +01:00
MathieuG-P 5113d72db2 fix lint issue 2025-01-03 15:46:51 +01:00
MathieuG-P 4968022b7e remove old mods models from the index 2025-01-03 15:43:03 +01:00
MathieuG-P 0c65b7b537 Add "OC" token pattern to log filter 2025-01-03 15:36:05 +01:00
MathieuG-P 8270ec800e Apply mods changes from [1.4.15-1.4.17] + some clean 2025-01-03 15:27:51 +01:00
MathieuG-P a70229c80b add patreon 2025-01-03 10:21:26 +01:00
MathieuG-P bf4e5aefa4 Merge pull request #721 from Davitekk/master
[Translation] Add Italian translation
2025-01-03 01:21:25 +01:00
Davitekk 3c49570f76 Update it.json 2025-01-02 17:17:27 +01:00
Davitekk 0f80f6ae28 Update it.json 2025-01-02 17:10:05 +01:00
Davitekk 066e740a62 Update it.json 2025-01-02 13:15:19 +01:00
Davitekk f296f34e62 Merge branch 'Zagrios:master' into master 2025-01-02 12:46:29 +01:00
Davitekk fb174b4451 Update it.json 2025-01-02 10:50:37 +01:00
Davitekk dfad8a09cc Update italy-icon.component.tsx 2025-01-02 10:47:01 +01:00
MathieuG-P 69b246949f Merge pull request #712 from silentrald/wiki/deb
[wiki] added deb install thru ppa repo in github
2025-01-02 02:33:57 +01:00
MathieuG-P 93ea2e1233 Merge pull request #724 from eaglesemanation/master
Update flatpak dependencies to non-EOL versions
2025-01-02 02:31:16 +01:00
MathieuG-P 11139bb658 Merge branch 'master' into master 2025-01-02 01:04:26 +01:00
MathieuG-P d6b07ccf56 Merge pull request #722 from silentrald/bugfix/null-version-unhandled
[bugfix] handle version view page if state/version becomes null
2025-01-02 00:58:52 +01:00
Vladimir Romashchenko 23d9a605df Update flatpak dependencies to non-EOL versions 2025-01-01 18:11:39 -05:00
silentrald a487871ff0 [bugfix] handle version view page if state/version becomes null 2025-01-01 10:58:32 +08:00
Davitekk 96a3277365 Add files via upload 2024-12-30 12:24:57 +01:00
Davitekk 556867d36e Merge branch 'master' into master 2024-12-30 10:32:09 +01:00
MathieuG-P f77ff2561d Merge pull request #720 from Zagrios/bugfix/fix-oculus-launch
[bugfix] fix oculus launch by using sideloading
2024-12-30 02:56:44 +01:00
MathieuG-P e0a7d460be [bugfix] fix oculus launch by using sideloading 2024-12-30 01:40:30 +01:00
Davitekk 9646ce96ad Merge branch 'master' into master 2024-12-30 00:12:45 +01:00
Davitekk fd3fa98650 Add files via upload 2024-12-29 23:27:54 +01:00
Davitekk 5b8366a32e Add files via upload 2024-12-29 23:26:42 +01:00
Davitekk 37db83580d Update default-configuration.config.ts 2024-12-29 16:46:06 +01:00
Davitekk 7120dacf5f Update italy-icon.component.tsx 2024-12-29 16:44:42 +01:00
Davitekk e1442dc82d Create italy-icon.component.tsx 2024-12-29 16:39:31 +01:00
Davitekk 3adfd8e6d1 Update bsm-icon.component.tsx 2024-12-29 16:24:17 +01:00
Davitekk 860fe70471 Update bsm-icon.component.tsx 2024-12-29 16:21:59 +01:00
Davitekk cb22f4a59c Update bsm-icon.component.tsx 2024-12-29 16:14:11 +01:00
Davitekk f01638dc1d Update zh.json 2024-12-29 15:32:39 +01:00
Davitekk 882bc707ce Update zh-tw.json 2024-12-29 15:30:33 +01:00
Davitekk b4d6ca715b Update ru.json 2024-12-29 15:25:54 +01:00
Davitekk f7d154bf47 Update ko.json 2024-12-29 15:23:36 +01:00
Davitekk cbc2a25f46 Update ja.json 2024-12-29 15:22:41 +01:00
Davitekk 493d2627e0 Update fr.json 2024-12-29 15:22:00 +01:00
Davitekk b28ae49255 Update es.json 2024-12-29 15:21:17 +01:00
Davitekk 1c40b411c9 Update en.json 2024-12-29 15:20:24 +01:00
Davitekk 7272d41f5c Update de.json 2024-12-29 15:18:58 +01:00
Davitekk cc21992f14 Update it.json 2024-12-29 15:17:49 +01:00
Davitekk 74b13eb5c8 File 100% translated 2024-12-29 15:10:45 +01:00
MathieuG-P d3ab80350e Merge pull request #603 from silentrald/ui/default-page
[feat] defaultly open to the last version launched on startup
2024-12-28 23:22:09 +01:00
Davitekk 3c1b1f72d4 Add files via upload 2024-12-28 13:17:24 +01:00
silentrald 7af4c2ab45 [feat] handle edge cases on last version launched 2024-12-28 10:44:53 +08:00
silentrald 0a64e71cf8 [feat] defaultly open to the last version launched on startup 2024-12-28 10:44:52 +08:00
silentrald 18adf064f3 [ui] changed label to 'Download a version' in downloads page 2024-12-28 10:38:48 +08:00
MathieuG-P bda39e787c Merge pull request #623 from silentrald/bugfix/leaderboard-filtering
[bugfix] proper filter for leaderboard/ranking
2024-12-27 21:23:28 +01:00
MathieuG-P b48b79e6e7 Merge branch 'master' into bugfix/leaderboard-filtering 2024-12-27 21:19:59 +01:00
MathieuG-P 2e71be3413 small lint fixes 2024-12-27 21:19:44 +01:00
MathieuG-P 434a6c2cae Merge branch 'master' into bugfix/leaderboard-filtering 2024-12-27 21:17:43 +01:00
MathieuG-P e9594e7992 little style adjustment 2024-12-27 21:01:45 +01:00
MathieuG-P 03f8c7e152 add patreon 2024-12-27 20:28:03 +01:00
Davitekk 492e777fa2 Update it.json 2024-12-27 18:09:34 +01:00
Davitekk 6a70c432db Create it.json 2024-12-27 18:09:00 +01:00
MathieuG-P 8a8977737f Merge pull request #704 from GoldJohnKing/feat/702-respect-system-proxy-windows
feat: respect system proxy settings on Windows platform
2024-12-26 22:42:20 +01:00
MathieuG-P b0b52f437f Merge pull request #716 from Zagrios/chore/reimplement-login-with-meta
[chore] reimplement login with meta
2024-12-26 22:12:30 +01:00
MathieuG-P cda8a8a3f3 [chore] reimplement login with meta 2024-12-26 22:03:23 +01:00
silentrald 03d4f007a3 [wiki] added deb install thru ppa repo in github 2024-12-25 16:15:34 +08:00
Gold John King d09fbb090c remove redundant strings entries of system proxy module 2024-12-24 23:13:18 +08:00
Gold John King 3c1faf8259 switching proxy enable/disable does not require app restart anymore 2024-12-24 23:12:21 +08:00
Gold John King ce89532f3d move proxy-helper init entry to main.ts for earlier init
so it can make earlier connections go through proxy as well
2024-12-24 22:46:30 +08:00
Gold John King 4eb8c06706 add multilingual translation for system proxy, fix mis-spelled words 2024-12-24 22:43:04 +08:00
Gold John King aed34e67a3 Merge branch 'master' into feat/702-respect-system-proxy-windows 2024-12-24 19:53:21 +08:00
Gold John King a12cefe45a Merge branch 'master' into feat/702-respect-system-proxy-windows 2024-12-24 19:52:46 +08:00
Gold John King 68c174c29b Add toggle-able system proxy setting 2024-12-24 19:52:22 +08:00
MathieuG-P 8eec1fe611 use useMemo instead of a useEffect/useState 2024-12-23 15:40:21 +01:00
Gold John King 9e9fc14e2b optimize as suggested 2024-12-23 18:24:00 +08:00
Gold John King 57b7ee00a1 Remove winreg package, clean up package-lock.json 2024-12-23 18:11:43 +08:00
Gold John King 2c0b33f2e6 refactor: using regedit-rs instead of winreg 2024-12-23 17:02:45 +08:00
MathieuG-P 972794ddca Merge pull request #707 from silentrald/feat/706
[feat-706] show DepotDownloader missing executable error
2024-12-23 09:44:28 +01:00
MathieuG-P 5cfb2d901c Merge pull request #708 from silentrald/feat/proton-logs
[feat] add proton logs in advance launch settings for linux
2024-12-23 09:36:46 +01:00
MathieuG-P e6e49865da [chore] tippy to default theme and placement to top 2024-12-23 09:31:21 +01:00
Gold John King 675ae26287 Merge remote-tracking branch 'origin/master' into feat/702-respect-system-proxy-windows 2024-12-23 16:27:50 +08:00
MathieuG-P c608806cfb Merge pull request #710 from silentrald/chore/issue-reporting
[chore] added instruction for adding logs in issue template
2024-12-23 09:20:38 +01:00
silentrald 6b5ccfe08b [translation] added translation for proton logs 2024-12-23 08:48:00 +08:00
silentrald cb755215b5 [feat] changed proton logs tippy text
* fixed issue with translation code where strings with "[]" characters throws an error
2024-12-23 08:34:51 +08:00
silentrald a54f81de42 [feat] add proton logs in advance launch settings for linux 2024-12-23 08:32:18 +08:00
silentrald 08a8349d22 [chore] added instruction for adding logs in issue template
* disabled submitting blank issues
2024-12-23 07:50:08 +08:00
MathieuG-P a3503a1985 Merge pull request #709 from Zagrios/chore/rework-advanced-launch
Chore/rework advanced launch
2024-12-22 16:49:39 +01:00
MathieuG-P a45af5baee [feat] add editor launch option 2024-12-22 16:28:33 +01:00
MathieuG-P 35d1623e8b and 2024-12-22 15:37:36 +01:00
MathieuG-P 44e4889913 and 2024-12-22 15:37:01 +01:00
MathieuG-P 6196396060 and 2024-12-22 15:23:49 +01:00
MathieuG-P 3efcd40cdc [chore] rework advanced launch 2024-12-21 17:46:34 +01:00
silentrald d74ba720f1 [translation-706] added translation 2024-12-21 21:33:09 +08:00
silentrald 2fef88c70e [feat-706] show DepotDownloader missing executable error 2024-12-21 21:12:04 +08:00
MathieuG-P 8776b036af Merge pull request #664 from LiamillionSS/feat/663
[feat/663] Option to launch BS without SteamVR
2024-12-21 13:48:47 +01:00
MathieuG-P 5a9d2879e8 Merge pull request #703 from silentrald/bugfix/linux-icons
[wiki] added guide to fix missing in-game icons in linux
2024-12-21 13:40:04 +01:00
MathieuG-P 33632ee6b3 Merge pull request #691 from silentrald/feat/blacklist-shared-folders
[feat] added blacklist for shared folders
2024-12-19 21:48:25 +01:00
MathieuG-P 38f8103040 Add tooltip to the trash buttons + fix tooltips not working on link buttons 2024-12-19 21:39:44 +01:00
Gold John King 46db881278 feat: respect system proxy settings on Windows platform 2024-12-18 17:12:35 +08:00
silentrald d6e611545e [chore] only check for linux with shouldLoadFromConfig function 2024-12-17 21:56:22 +08:00
silentrald da61b4e619 [wiki] added guide to fix missing in-game icons in linux 2024-12-17 21:56:19 +08:00
MathieuG-P 26699c1867 Merge pull request #699 from Zagrios/chore/rework-link-unlink-modals
Chore/rework link unlink modals
2024-12-15 18:15:06 +01:00
MathieuG-P 057f8a8ac9 Fix typo 2024-12-15 18:11:41 +01:00
MathieuG-P 4c8c0f8f62 [chore] rework link unlink modals 2024-12-15 18:04:37 +01:00
MathieuG-P be5cc9c645 [chore] rework link unlink modals 2024-12-15 18:03:54 +01:00
silentrald b82b5e00cd [translation] added translation for shared folder blacklist 2024-12-12 08:44:09 +08:00
silentrald c4e742c201 [feat] disable symlink settings non Windows OS 2024-12-12 08:44:09 +08:00
silentrald 65fb281a64 [feat] added blacklist for shared folders
* change BasicModal data to handle cascading modals better
2024-12-12 08:44:09 +08:00
MathieuG-P 0f5ea88a27 Merge pull request #685 from silentrald/bugfix/disable-linux-auto-update
[bugfix] remove auto update for linux builds
2024-12-10 17:33:41 +01:00
MathieuG-P 6a7668c851 [translation] fix some translations 2024-12-10 17:29:14 +01:00
Iluhadesu 498067e2f2 Add v1.40.0 to bs-versions.json 2024-12-10 16:23:53 +00:00
silentrald 0b28cd61e8 [translation] added translation for 'outdated' text
* better ui for outdated tag
* refactored TitleBarTags to not pass the singleton in its attribs
2024-12-10 23:47:32 +08:00
silentrald a47f17e766 [bugfix] remove auto update for linux builds 2024-12-10 23:44:06 +08:00
LiamillionSS 576a9ba325 [feat/663] Cleanup leftover code 2024-12-11 02:34:26 +11:00
MathieuG-P 60c410671a Merge pull request #686 from silentrald/bugfix/linux-shell
[bugfix] change linux shell from /bin/bash to bash
2024-12-10 15:51:42 +01:00
silentrald 097eb709c3 [bugfix] change linux shell from /bin/bash to bash 2024-12-10 13:33:31 +08:00
MathieuG-P 17e96996bb update to 1.5.0-alpha.6 2024-12-08 18:27:31 +01:00
MathieuG-P cfae1d9516 Merge pull request #569 from silentrald/feat/76
[feat-76] support drag and drop of mod files (zip/dll files only)
2024-12-08 18:22:46 +01:00
MathieuG-P c3a1a613ff [feat-76] use "findEntry" instead of a for await loop 2024-12-08 18:17:49 +01:00
silentrald aec9dd0628 [feat-76] fixed issue where copying dll files to non-existent folder path 2024-12-08 23:58:44 +08:00
silentrald c978d4689e [feat-76] added drag n drop in mods slide dropdown 2024-12-08 23:33:44 +08:00
silentrald 431494da94 [feat-76] added translations 2024-12-08 21:44:07 +08:00
silentrald a9cc281d27 [feat-76] support drag and drop for mod files 2024-12-08 21:44:06 +08:00
MathieuG-P f73b1cd855 Merge pull request #681 from silentrald/bugfix/nixos
[bugfix] fixed issues with NixOS
2024-12-08 14:29:54 +01:00
MathieuG-P 8e9eccd7c5 Merge branch 'master' of https://github.com/Zagrios/bs-manager 2024-12-06 22:16:08 +01:00
MathieuG-P 8dc7d89057 Add patreon 2024-12-06 22:16:06 +01:00
MathieuG-P 40a537b967 Merge pull request #682 from silentrald/wiki/linux-alpha
[wiki] updated linux guide to say latest alpha until 1.5.0 is released
2024-12-06 22:05:38 +01:00
MathieuG-P 291cb0c254 No need to scroll down 2024-12-06 21:56:44 +01:00
MathieuG-P b42a944293 fix broken image 2024-12-06 21:55:11 +01:00
MathieuG-P 0e25184764 update oculus token guide 2024-12-06 21:52:16 +01:00
silentrald 0c53679f2c [wiki] updated linux guide to say latest alpha until 1.5.0 is released 2024-12-06 08:32:21 +08:00
silentrald 8771ac2adc [bugfix-681] addressed linting and sonarqube issues 2024-12-05 21:29:25 +08:00
silentrald c2e77f2520 [bugfix] use static config when install files are readonly like NixOS & flatpak 2024-12-05 21:04:11 +08:00
silentrald b32d07d2d6 [bugfix] added special handling for NixOS 2024-12-05 20:51:32 +08:00
silentrald 78fb06fc63 [bugfix] fix issue with reading processes in os.helpers.ts in linux 2024-12-05 20:51:22 +08:00
LiamillionSS 198f3cb3af [feat/663] Fix conflict for steam.service.ts 2024-12-05 13:48:53 +11:00
LiamillionSS f82e185ec2 [feat/663] + changing to skipsteam 2024-12-05 13:38:25 +11:00
MathieuG-P 127a538509 Merge pull request #679 from beatmaps-io/signed-playlists
Pass query parameters to playlist downloader
2024-12-02 19:57:52 +01:00
Thomas Cheyney 043e300f42 Pass query parameters to playlist downloader 2024-12-02 18:17:56 +00:00
shidorien 2f87222084 Add detailed instructions for finding logs in new How-to-find-your-logs.md file 2024-12-01 22:24:15 +01:00
shidorien 52f3bbb3d7 Fix link in Home.md for Help us to update the wiki section 2024-12-01 22:21:58 +01:00
shidorien 513dba8393 Add detailed instructions for finding logs in new How-to-find-your-logs.md file and update link in Home.md 2024-12-01 22:21:30 +01:00
shidorien 250b41cd10 Update Discord server link in Home.md for direct access 2024-12-01 22:07:19 +01:00
shidorien 5654f650d5 Update Home.md with active links and add Help us to update the wiki guide 2024-12-01 22:06:56 +01:00
shidorien d615efb02c Disable MD023 rule in markdownlint configuration for improved linting flexibility 2024-12-01 21:53:20 +01:00
shidorien faf8431e49 Fix code formatting in Create-a-shortcut.md for improved readability 2024-12-01 21:52:37 +01:00
shidorien 44b6979fee Update section headings from "Summary" to "Table of content" for consistency across guides 2024-12-01 21:51:55 +01:00
shidorien c48c08dbf5 Add detailed guide for modifying models in Beat Saber and restore link in Home.md 2024-12-01 21:41:31 +01:00
shidorien 547054a76c Update version link reference in Create-a-shortcut.md for improved navigation 2024-12-01 21:34:18 +01:00
shidorien ad03a50cc8 Update links in installation guide for mods to use internal anchors for improved navigation 2024-12-01 21:11:29 +01:00
shidorien 941b10aa46 Fix formatting in Home.md by removing unnecessary line break in Login section 2024-12-01 21:06:03 +01:00
shidorien 23ec61e2e6 Refactor section headings in Home.md for consistency and clarity 2024-12-01 21:03:09 +01:00
shidorien 99d3f6d237 Refactor section headings in Home.md for improved readability and structure 2024-12-01 21:02:31 +01:00
shidorien 989c3172e4 Refactor headings in Home.md for improved clarity and consistency 2024-12-01 21:00:15 +01:00
shidorien 575d9c290e Update note heading in installation guide for mods to improve clarity 2024-12-01 20:57:14 +01:00
shidorien cb4666ee8a Fix formatting in Install-mods-on-your-version.md by updating step numbering for clarity 2024-12-01 20:56:48 +01:00
shidorien 4d42dfb2cb Add installation guide for mods and update links in Home.md 2024-12-01 20:56:08 +01:00
shidorien 2c166e9fc5 Add installation guide for custom playlists and restore link in Home.md 2024-12-01 20:32:06 +01:00
MathieuG-P 6e3d8852de update certificate sha 2024-12-01 19:59:12 +01:00
MathieuG-P e2c2aa7a84 update to 1.5.0-alpha.5 2024-12-01 19:53:33 +01:00
MathieuG-P 2a0de5f2ad update to 1.5.0-alpha.5 2024-12-01 19:52:55 +01:00
MathieuG-P 214f0494c1 Merge pull request #677 from Zagrios/bugfix/error-when-verifying-bs-files
[bugfix] Fix DepotDownloader error when verifying bs files
2024-12-01 19:48:58 +01:00
MathieuG-P 19f2a57c37 [bugfix] Fix DepotDownloader error when verifying bs files 2024-12-01 19:43:14 +01:00
MathieuG-P 4d16fb8aaa Merge branch 'master' into feat/663 2024-12-01 15:31:27 +01:00
MathieuG-P 922bcf30b4 Build flatpak in the build action 2024-12-01 14:54:09 +01:00
MathieuG-P f31ade5754 Change the app id 2024-12-01 13:09:58 +01:00
MathieuG-P c8e4d8c359 Merge pull request #676 from Zagrios/bugfix/mod-dependencies-are-not-always-installed
[bugfix] Mod dependencies are not always installed
2024-12-01 12:38:37 +01:00
MathieuG-P fc44dcba65 [bugfix] Mod dependencies are not always installed 2024-12-01 12:33:09 +01:00
MathieuG-P b02311456f Add "--publish never" for the package script 2024-12-01 10:22:54 +01:00
MathieuG-P 5462c8821e Merge pull request #629 from silentrald/bugfix/627
[bugfix-627] build BSM with deb and flatpak for linux
2024-11-30 20:02:27 +01:00
shidorien 5a87d91192 Update headings in installation guides from 'Summary' to '## Summary' for consistency 2024-11-30 13:37:46 +01:00
shidorien 01c7e540d0 Enhance Install-any-maps.md with detailed installation steps for BSManager; fix formatting issues in Create-a-shortcut.md and Home.md 2024-11-30 13:31:12 +01:00
shidorien 80863df85e Enhance Get-your-Oculus-token.md with links to BSManager and clarify download instructions; add new Install-any-maps.md guide 2024-11-30 12:32:59 +01:00
shidorien a2e2136196 Normalize link casing for uncreated links in Home.md 2024-11-30 12:19:51 +01:00
shidorien 98fba3289b Correct 'Playload' tab reference to 'Payload' in Get-your-Oculus-token.md 2024-11-30 12:04:51 +01:00
shidorien 2561a34200 Mark uncreated links as strikethrough in Home.md for clarity 2024-11-30 12:00:50 +01:00
shidorien b128de6acc Update instructions in Get-your-Oculus-token.md: correct 'Playload' tab reference and remove numbering for clarity 2024-11-30 11:55:27 +01:00
shidorien fadf08771f Update img to get token 2024-11-30 11:53:36 +01:00
shidorien 488da1cdaf Add blank line for improved readability in Get-your-Oculus-token.md 2024-11-30 11:51:53 +01:00
shidorien 5771aed67a Refactor Oculus token guidance: update link format and consolidate instructions into a new document 2024-11-30 11:51:40 +01:00
shidorien 4dece596ef Fix formatting of version link in Create-a-shortcut.md for clarity 2024-11-30 11:37:18 +01:00
shidorien 4636f46bab Recreate Create-a-shortcut.md with detailed instructions for Windows and Steam shortcuts 2024-11-30 10:57:10 +01:00
shidorien c7722df0e4 Refactor Home.md to remove unnecessary links and improve readability 2024-11-30 10:56:05 +01:00
shidorien d44f9f9067 Remove placeholder text from troubleshooting section in Home.md 2024-11-30 10:54:07 +01:00
shidorien d9318b6579 Add placeholder text to troubleshooting section in Home.md 2024-11-30 10:53:50 +01:00
shidorien 08be61928e Add installation guide for creating shortcuts on Windows and Steam 2024-11-30 10:48:28 +01:00
shidorien a2df9d3adf Update Home.md to include links to BSManager for improved navigation 2024-11-30 10:46:51 +01:00
shidorien 1e12f7eae2 Update installation guide to replace video placeholder with actual video link for import instructions 2024-11-30 10:02:43 +01:00
shidorien 0c87bfd11c remove useless video 2024-11-30 10:00:33 +01:00
shidorien 71ab4b5fa8 Update Home.md to add links for shortcuts, tokens, maps, mods, and contributions 2024-11-30 10:00:06 +01:00
shidorien 93906f8ff2 Update installation guide to include links for BSManager and improve clarity of instructions 2024-11-30 09:48:48 +01:00
shidorien d0301088f1 Disable MD033 rule in markdownlint configuration 2024-11-30 09:46:02 +01:00
shidorien 362912b83b Update installation guide to replace video embed with a placeholder for import instructions 2024-11-30 09:29:45 +01:00
shidorien 7d80cc5879 Fix image paths and update video embed in installation guide 2024-11-30 09:23:56 +01:00
shidorien f0f0512033 Update installation guide to use HTML tags for images and videos 2024-11-29 22:37:01 +01:00
shidorien 29689ce632 Update installation guide and restructure documentation 2024-11-29 22:10:43 +01:00
shidorien e8118e8ae4 hft 2024-11-29 22:03:06 +01:00
shidorien 6d83096c2c grd 2024-11-29 22:00:42 +01:00
shidorien 0033b89942 teest 2024-11-29 22:00:00 +01:00
shidorien 6e4a796343 prout 2024-11-29 21:58:30 +01:00
shidorien 7f4fe63d58 test 2024-11-29 21:57:25 +01:00
shidorien 6c868bf60d test 2024-11-29 21:57:05 +01:00
shidorien 4d16b217ca Fix image path in installation guide for correct display 2024-11-29 21:46:11 +01:00
shidorien 556477a996 Fix image path in installation guide for correct display 2024-11-29 21:44:15 +01:00
shidorien 3a4672f25e Merge branch 'master' of https://github.com/GaetanGrd/bs-manager 2024-11-29 21:41:56 +01:00
shidorien e6071c7395 test path 2024-11-29 21:41:54 +01:00
GaetanGrd 95a95715b0 add strategy: init 2024-11-29 20:37:15 +01:00
shidorien d322178127 Add links for wiki development and contribution in Home.md 2024-11-29 20:29:08 +01:00
shidorien 418fc7e864 try path 2024-11-29 20:29:02 +01:00
silentrald 4afad63753 [chore-627] added electron-builder.config.js to release-linux.yaml 2024-11-29 05:23:19 +08:00
silentrald 438611f4ca [bugfix-627] added original Beat Saber location in flatpak permissions 2024-11-29 05:23:19 +08:00
silentrald 1fdf1f0247 [bugfix-627] fix bsmSpawn for launching game on windows 2024-11-29 05:23:12 +08:00
Ellie 
:3 5a46a67e1e wiki: easier method to obtain oculus token 2024-11-26 23:01:04 +01:00
LiamillionSS fb3675955b Merge remote-tracking branch 'origin/feat/663' into feat/663 2024-11-27 01:30:48 +11:00
LiamillionSS 229e0a66ce Fixing merge conflicts + incorrect "!" 2024-11-27 01:29:42 +11:00
LiamillionSS 5146900168 Fixing merge conflicts 2024-11-27 00:41:25 +11:00
LiamillionSS 3741558ffb [feat/663] moved to advanced settings section + finalisations + old comments 2024-11-25 18:47:22 +11:00
LiamillionSS 0821f1867e Merge branch 'master' into feat/663 2024-11-25 16:35:23 +11:00
MathieuG-P 877879f335 Merge pull request #673 from Zagrios/chore/add-bs-version-outated-alert-in-version-view
[chore] added a beat saber version outdated warning in the version view
2024-11-24 21:33:15 +01:00
MathieuG-P 7b658de727 [chore] added a beat saber version outdated warning in the version view 2024-11-24 21:26:47 +01:00
LiamillionSS ef72ba642a [feat/663] moved to advanced settings section + finalisations 2024-11-24 10:57:56 +11:00
MathieuG-P 229a149f00 Merge pull request #671 from Zagrios/bugfix/close-btn-supporters-view-wrong-color
[bugfix] Close button in the supporters view had the wrong color in the white theme
2024-11-22 22:57:53 +01:00
MathieuG-P be2597fc85 [bugfix] Close button in the supporters view had the wrong color in the white theme 2024-11-22 22:50:23 +01:00
MathieuG-P c8d888ee1a Merge pull request #669 from AltyFox/patch-2
That was a quick recommendation change.
2024-11-22 08:04:08 +01:00
Alteran 9033b1ef8f That was a quick recommendation change. 2024-11-21 23:08:35 -06:00
MathieuG-P 4a9f79c561 1.39.0 is the recommended version 2024-11-21 21:07:19 +01:00
silentrald 5721891e28 [chore-627] fixed actions with electron-builder 2024-11-22 00:57:31 +08:00
silentrald cba001dc97 [test-627] added test cases for os.helpers.ts 2024-11-22 00:57:31 +08:00
silentrald 38ea360ee6 [bugfix-627] support host calls for flatpak with spawn/exec
* created wrapper calls for spawn and exec for all os support
* refactored names for isProcessRunning, getProcessId, and isSteamRunning
2024-11-22 00:57:31 +08:00
silentrald 8096b3ec76 [chore-627] fix issue with chrome-sandbox permissions 2024-11-22 00:57:31 +08:00
MathieuG-P 8844e7cec3 [bugfix-627] Fix couldn't package and/or publish on windows 2024-11-22 00:57:31 +08:00
silentrald 403995612c [chore] added silentrald and Insprill in credits and linux installation in README file 2024-11-22 00:57:31 +08:00
silentrald 58656294df [bugfix-627] added finer permissions for flatpak
handled issue with write only directory with bs-versions.json
2024-11-22 00:57:31 +08:00
silentrald 84ea7a26b6 [bugfix-627] fixed issue with running the BS exe in flatpak
moved all launching logic to the LinuxService
2024-11-22 00:57:31 +08:00
silentrald 82a19c0c8b [docs-627] updated docs on review
- updated flatpak installation
- moved deb and AUR above flatpak so users with appropriate distros will install those first
- idiot-proofing on how to install flatpak on different distros
2024-11-22 00:57:31 +08:00
silentrald 15f8d83c8d [chore-627] drop rpm and pacman in favor of flatpak 2024-11-22 00:57:31 +08:00
silentrald 196bdc04f5 [docs-627] removed wine installation and updated proton setup 2024-11-22 00:57:31 +08:00
silentrald e6bdf56c6d [chore] move build config to electron-builder.ts for better typing 2024-11-22 00:57:31 +08:00
silentrald 7a85171cd3 [docs] added linux documentation 2024-11-22 00:57:31 +08:00
silentrald 38e0cc56d0 [chore] add write permissions to bs-versions.json after install 2024-11-22 00:57:31 +08:00
silentrald a345a3ee7c [bugfix-627] reverted #577 PR 2024-11-22 00:57:31 +08:00
silentrald cb121a9442 [chore] change target builds to deb, rpm, and pacman 2024-11-22 00:57:31 +08:00
shidorien e4fdf8ffe9 Add images for Steam and Oculus Store installation steps in the guide 2024-11-20 21:45:58 +01:00
shidorien c91c1ca3ce Reorganize and enhance installation guide with detailed instructions for Steam and Oculus Store 2024-11-20 21:44:55 +01:00
shidorien 276c5bfcab Fix link format for "Install or import a version" in Home.md 2024-11-20 21:33:58 +01:00
shidorien 2232222d3b Fix link format for "Install or import a version" in Home.md 2024-11-20 21:33:44 +01:00
shidorien f5d48ea946 Fix link format for "Install or import a version" in Home.md 2024-11-20 21:32:51 +01:00
shidorien 7e85387ff4 Update markdownlint configuration and enhance installation guide with important notes 2024-11-20 21:30:02 +01:00
shidorien b0a4a27f78 Fix link format for "Install or import a version" in Home.md 2024-11-20 21:21:16 +01:00
shidorien b29759365b Recreate the "How to install or import a version" guide with updated content and structure 2024-11-20 21:19:15 +01:00
shidorien 3dd254a070 Update installation guide and home page links; add video placeholder 2024-11-20 21:18:31 +01:00
shidorien 3d721d95a9 try anything 2024-11-20 21:16:33 +01:00
shidorien b555318f2d Add new pages 2024-11-20 21:14:09 +01:00
shidorien 7662f938da add Troubleshooting section 2024-11-20 21:00:55 +01:00
MathieuG-P fd30709af9 Merge pull request #667 from Zagrios/bugfix/do-no-apply-no-yeet-on-original-copies-of-bs
[bugfix] Do not launch BS with the --no-yeet arg when launching original copies of BS (Steam/Oculus)
2024-11-20 20:54:02 +01:00
MathieuG-P c73bde2cd9 Merge pull request #666 from Zagrios/feature/add-unselect-all-mods-button
[feature] add "unselect all" action in mods panel
2024-11-20 20:49:50 +01:00
MathieuG-P 3027331924 [bugfix] Do not apply --no-yeet on original copies of BS (Steam/Oculus) 2024-11-20 20:49:23 +01:00
shidorien 7f0f273652 update home.md and add mardownlint.json 2024-11-20 20:37:50 +01:00
MathieuG-P 66bab1176b [feature] add unselect all action in mods panel 2024-11-20 20:11:31 +01:00
shidorien 9ed769dca0 move files 2024-11-20 19:50:18 +01:00
Iluhadesu 6c6d47333d Add v1.39.1 to bs-versions.json 2024-11-20 18:48:14 +00:00
GaetanGrd a4fef9f66c Update Home.md 2024-11-20 19:36:52 +01:00
GaetanGrd 4b4bdbbff8 Update Home.md 2024-11-20 19:30:28 +01:00
MathieuG-P c9286c5419 Merge pull request #661 from beatmaps-io/master
Use correct beatsaver api url
2024-11-18 19:38:11 +01:00
MathieuG-P 39739dfb49 Merge pull request #662 from beatmaps-io/default-bsv-map-sort
Set default beat saver map sort order to Relevance
2024-11-18 19:32:56 +01:00
Thomas Cheyney 5d4f12f72f Set default sort order to Relevance 2024-11-18 16:31:51 +00:00
Thomas Cheyney 7b1defcb76 Use correct beatsaver api url 2024-11-18 16:13:42 +00:00
MathieuG-P f7f5f768fc Merge pull request #649 from silentrald/bugfix/non-standard-zip-extraction
[bugfix] handle extracting non-conformant zip files
2024-11-17 13:10:15 +01:00
MathieuG-P 9340f4635d [bugfix] renormalize 2024-11-17 12:57:07 +01:00
MathieuG-P 5aacb34ef4 [bugfix] all zips as binary 2024-11-17 12:54:21 +01:00
MathieuG-P 4ee3f472ec [bugfix] remove matchesGlob 2024-11-17 12:32:45 +01:00
MathieuG-P 59b7b9aedb [bugfix] some adjutments + some fixes + add zip tests 2024-11-17 12:20:50 +01:00
MathieuG-P e1f421831b Merge pull request #657 from LiamillionSS/bugfix/527
[bugfix/527] Prevents oculus version from launching if the original oculus version is not present
2024-11-17 09:14:53 +01:00
LiamillionSS 4f42b3ffcf [bugfix/527] better wording for user messages 2024-11-17 18:18:35 +11:00
MathieuG-P a4192ef411 Merge branch 'master' into bugfix/527 2024-11-16 20:17:28 +01:00
MathieuG-P 2744df6803 fix json error 2024-11-16 20:04:05 +01:00
MathieuG-P c4ee9ba155 Add patreon 2024-11-16 20:02:46 +01:00
MathieuG-P 5e981e5a20 Merge pull request #659 from izunya/master
[Transation] Correction of awkward Korean :D
2024-11-16 19:52:04 +01:00
MathieuG-P 578e79edac Merge pull request #660 from chk1/bugfix/658
[bugfix-658] Change background color of Mods search box for light mode
2024-11-16 19:48:54 +01:00
silentrald 07d94962c4 [chore] fixed sonarqube issues 2024-11-16 09:42:58 +08:00
Christoph Kisfeld 57cd955780 [bugfix-658] Change background color of Mods search box for light mode 2024-11-15 20:07:31 +01:00
izunya 1b33b29847 Fix korean 2024-11-16 03:42:26 +09:00
izunya f523e34867 Fix korean 2024-11-16 03:32:37 +09:00
LiamillionSS 5de1b7c3fb Updated Oculus must-be-installed-once msg 2024-11-15 09:43:25 +11:00
LiamillionSS 2f4bca108b [bugfix/527] Prevents a downloaded oculus version from launching the original oculus version is not present 2024-11-15 07:18:29 +11:00
silentrald bfb6d28a34 [bugfix] use YauzlZip class wrapper for extracting files
* fixed issue where yauzl just closes after reading all files
2024-11-14 14:24:45 +08:00
MathieuG-P 8c6f3b0aa8 [bugfix] Create YauzlZip class to manager zip extraction (not finished) 2024-11-14 00:52:52 +01:00
Iluhadesu 6bb90c580d Add v1.39.0 to bs-versions.json 2024-11-12 16:58:16 +00:00
MathieuG-P 4bf2da1065 Merge pull request #652 from LiamillionSS/bugfix/452
[bugfix-452] fix to "launch game when steam is not running" on linux
2024-11-12 15:40:29 +01:00
MathieuG-P e17b7f70fd Merge pull request #654 from Zagrios/chore/add-outdate-bs-version-warn-modal
[chore] Added a pre-download warning modal for outdated BS versions
2024-11-12 15:25:40 +01:00
MathieuG-P 99b5dcd527 [chore] Added a pre-download warning modal for outdated BS versions 2024-11-12 15:20:48 +01:00
MathieuG-P 6c39e5f43d Merge pull request #653 from Zagrios/chore/add-beatleader-icon-to-playlist-oneclickt-setting
[chore] Added beatleader icon to playlist oneclick setting + change tippys color
2024-11-11 14:06:38 +01:00
MathieuG-P 58788b0ebc Added beatleader icon to playlist oneclick setting + change tippys color 2024-11-11 13:58:42 +01:00
LiamillionSS db616c6bd7 [bugfix-452] PROCESS_NAME now uses steam-runtime-launcher-service on linux to avoid steamProcessRunning false positives 2024-11-10 19:20:46 +11:00
silentrald 0fd4d51898 [bugfix] fixed logic with folder extraction events 2024-11-10 15:36:03 +08:00
silentrald d0831f2e44 [bugfix] created a get files' buffer from zip helper 2024-11-10 11:23:13 +08:00
LiamillionSS c54d1491e6 [bugfix-452] fix to launch game when steam is not running on linux 2024-11-10 00:57:28 +11:00
silentrald dd08f418d5 [chore] removed jszip and node-stream-zip packages 2024-11-09 01:28:43 +08:00
silentrald 2b37972dd4 [bugfix] use yauzl for extracting map files for importing maps 2024-11-09 00:55:52 +08:00
silentrald 68559add5d [bugfix] use yauzl for extracting zips 2024-11-09 00:55:52 +08:00
MathieuG-P 7c6c6147a6 Merge pull request #647 from Zagrios/bugfix/fix-ip-family-issues
[bugfix] Fix ipv4/ipv6 issues
2024-11-07 20:32:36 +01:00
MathieuG-P 0a1b1752f0 [bugfix] implement rety strategie for ip families 2024-11-07 20:24:48 +01:00
MathieuG-P f594b0900f [bugfix] try fix ip family issues with dnslookup 2024-11-06 16:47:26 +01:00
MathieuG-P 5cbc480e24 Merge pull request #646 from Zagrios/revert/changelogs-modal
[revert] revert changelogs modal feature
2024-11-06 15:40:33 +01:00
MathieuG-P 8208874527 [revert] delete changelogs.json 2024-11-06 15:28:59 +01:00
MathieuG-P 2d2fbec858 [revert] revert changelogs modal | was too buggy + It was too much work to create a changelog; we wouldn't have done it more than once 2024-11-06 15:26:49 +01:00
MathieuG-P d5f2ba3b21 Merge pull request #645 from Zagrios/bugfix/fix-oneclick-download-playlist-broken
[bugfix] Fix broken oneclick playlist download + issue with specials chars in playlists filenames
2024-11-05 20:42:23 +01:00
MathieuG-P 9e60dc4e0e [bugfix] prevent bug with special chars when using "preferContentDisposition" 2024-11-05 20:34:26 +01:00
MathieuG-P 57e1029b75 [bugfix] Unable to download playlist if its filename was containing special chars 2024-11-05 20:33:18 +01:00
MathieuG-P 0d913641d7 [bugfix] do not encode url query params 2024-11-05 20:32:23 +01:00
MathieuG-P b7eb136395 Merge pull request #644 from izunya/master
[Bugfix&Add-#641] Added kr translations | Text wrap bug and incorrect translation of "Curated"
2024-11-05 20:03:08 +01:00
izunya a79a6c2c13 Added kr translations | Text wrap bug and incorrect translation of "Curated" 2024-11-06 03:40:11 +09:00
izunya d01edbe2a8 Text wrap bug and incorrect translation of "Curated" 2024-11-06 03:18:24 +09:00
MathieuG-P 893b244eb1 Merge pull request #586 from silentrald/feat/578
[feat-578] remove dotnet and screen dependency on linux
2024-11-05 14:39:11 +01:00
MathieuG-P b45c37d774 Merge pull request #641 from izunya/master
[Transation] Add Korean Languages
2024-11-05 14:04:30 +01:00
MathieuG-P c18acb5fed Update korea-icon.component.tsx 2024-11-05 13:42:48 +01:00
izunya 7211798c74 some update pls 2024-11-05 07:30:27 +09:00
izunya 589904f813 korean locale add 2024-11-05 07:19:23 +09:00
MathieuG-P 8181cb3eec Merge pull request #640 from Zagrios/chore/remove-broken-models-notification
[chore] remove the "Broken models" notification
2024-11-04 20:13:50 +01:00
MathieuG-P ec09ee257c [chore-640] remove unused import 2024-11-04 20:09:31 +01:00
MathieuG-P d378aea1e7 [chore] remove "models broken" notification 2024-11-04 20:07:13 +01:00
silentrald b04f199fff [feat-578] simplified getting the wine binary 2024-11-02 10:48:13 +08:00
MathieuG-P 83f23c5c16 [chore] Add support for mapinfo v3 (which is essentially the same thing as version 2) 2024-11-02 00:25:38 +01:00
MathieuG-P 6666685c43 Merge pull request #636 from Zagrios/bugfix/unable-to-load-bsm-files-if-path-to-bsm-contains-url-special-chars
[bugfix] Unable to load bsm's files if path to bsm contain url special chars
2024-11-01 17:35:11 +01:00
MathieuG-P e07aacc9e8 [bugfix] Unable to load bsm's files if path to bsm contains url special chars 2024-11-01 17:20:23 +01:00
MathieuG-P 681ddc6b0b Merge pull request #635 from Zagrios/bugfix/updating-naming-sheme-of-downloaded-maps-and-playlists
[bugfix] updating naming sheme of downloaded maps and playlists
2024-11-01 16:30:44 +01:00
MathieuG-P aa69b3c683 [bugfix] updating naming sheme of downloaded maps and playlists 2024-11-01 16:25:50 +01:00
MathieuG-P 599161b7b2 [578] Some adjustments 2024-10-29 21:24:56 +01:00
silentrald 77987181de [feat-578] open steam common folder for selecting a proton folder 2024-10-23 10:49:46 +08:00
silentrald 3812ea18e4 [feat-578] use installed wine first then fallback to proton's wine bin
* explicitly tell BSIPA where `Beat Saber.exe` is located
2024-10-23 09:34:11 +08:00
silentrald 3797c1b156 [refactor] unified choose folder text translation 2024-10-23 07:51:25 +08:00
silentrald a1082edcde [feat-578] added translations 2024-10-23 07:51:25 +08:00
silentrald de7a054f89 [feat-578] setup protonFolder on startup 2024-10-23 07:51:25 +08:00
silentrald 0398a957ad [feat-578] store protonFolder in static config
* changed protonPath to protonFolder
* log stdout for running bsipa executable
2024-10-23 07:51:21 +08:00
silentrald 1aadf353ca [bugfix-623] retain options and fixed local map filtering 2024-10-22 20:30:27 +08:00
silentrald 825d07fac0 [bugfix-623] removed maps.map-specificities.ranked and used maps.map-leaderboard.Ranked 2024-10-22 20:30:27 +08:00
silentrald 56976487f2 [bugfix-623] add translations 2024-10-22 20:30:27 +08:00
silentrald c8003a8ae8 [bugfix] proper filter for leaderboard/ranking
* use leaderboard query param with beatsaver
* fixed issue where blRanked is not showing on mapItem components
2024-10-22 20:30:27 +08:00
246 changed files with 13867 additions and 4319 deletions
+3 -1
View File
@@ -59,7 +59,9 @@ module.exports = {
"react/function-component-definition": "off",
"jsx-a11y/control-has-associated-label": "off",
"react/button-has-type": "off",
"no-labels": ["error", { "allowLoop": true }]
"max-classes-per-file": "off",
"jest/no-standalone-expect": "off",
"no-bitwise": "off",
},
parserOptions: {
ecmaVersion: 2020,
+1
View File
@@ -16,3 +16,4 @@
*.woff binary
*.woff2 binary
assets/scripts/* binary
*.zip binary
+4 -2
View File
@@ -26,7 +26,8 @@ body:
id: replication
attributes:
label: Steps to Reproduce
description: Provide a link to a live example, or an unambiguous set of steps to reproduce this bug. Include code to reproduce, if relevant.
description: Provide a link to a live example, or an unambiguous set of steps to reproduce this bug.
Include code to reproduce, if relevant.
placeholder: |
1. Go to '...'
2. Click on '....'
@@ -50,5 +51,6 @@ body:
id: additional-context
attributes:
label: Additional Context
description: Any other context that you may share about the issue. You may add your log files here.
description: Any other context that you may share about the issue such as logs.
To get the logs, follow these steps `Open BSManager -> Go to settings -> Scroll down -> Open Logs`.
+1 -1
View File
@@ -1,4 +1,4 @@
lank_issues_enabled: true
blank_issues_enabled: false
contact_links:
- name: Discord Support
url: https://discord.gg/uSqbHVpKdV
+20 -1
View File
@@ -22,11 +22,30 @@ jobs:
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 18.x
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
- name: Setup flatpak repo (Ubuntu only)
if: matrix.os == 'ubuntu-latest'
run: |
flatpak remote-add --if-not-exists --user \
flathub https://flathub.org/repo/flathub.flatpakrepo
# Build Flatpak package
- name: Build Flatpak (Ubuntu only)
if: matrix.os == 'ubuntu-latest'
run: |
env DEBUG="@malept/flatpak-bundler" \
npx electron-builder --config electron-builder.config.js --publish never --linux flatpak
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
+1
View File
@@ -18,3 +18,4 @@ jobs:
- uses: Andrew-Chen-Wang/github-wiki-action@v4
with:
path: docs/wiki/
strategy: init
+3 -3
View File
@@ -14,11 +14,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 18.x
node-version: 22.11.0
cache: "npm"
- run: npm ci
- run: npm run lint
+8 -7
View File
@@ -13,19 +13,20 @@ jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 18.x
node-version: 22.11.0
cache: "npm"
- run: npm ci
- run: npm run build
- run: npm test
# Currently typescript, eslint, and prettier are unhappy
continue-on-error: true
- name: Unit tests
run: npm run test:unit
+19 -2
View File
@@ -20,13 +20,30 @@ jobs:
- name: Check out Git repository
uses: actions/checkout@v4
- name: Install rpm/flatpak packages
run: sudo apt-get install -y flatpak flatpak-builder rpm libarchive-tools
- name: Setup flatpak repo
run: |
flatpak remote-add --if-not-exists --user \
flathub https://flathub.org/repo/flathub.flatpakrepo
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 18.x
node-version: 22.11.0
cache: "npm"
- run: npm ci
- run: npm run publish:linux
- run: npm run build
- 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
- name: Upload artifact
uses: actions/upload-artifact@v4
+1 -1
View File
@@ -29,4 +29,4 @@ npm-debug.log.*
*.scss.d.ts
# externals
externals/**/target/*
externals/**/target/**
+8
View File
@@ -0,0 +1,8 @@
{
"MD007": { "indent": 4 },
"MD013": false,
"MD041": false,
"MD024": false,
"MD033": false,
"MD023": false
}
+5 -1
View File
@@ -1,3 +1,7 @@
{
"recommendations": ["dbaeumer.vscode-eslint", "EditorConfig.EditorConfig"]
"recommendations": [
"dbaeumer.vscode-eslint",
"EditorConfig.EditorConfig",
"davidanson.vscode-markdownlint"
]
}
+144
View File
@@ -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)
+105 -178
View File
@@ -36,7 +36,6 @@
<hr>
</div>
<!--
----------------------------------------
BADGES
@@ -58,7 +57,7 @@
src="https://img.shields.io/badge/-DISCORD-5865f2?style=for-the-badge&logo=discord&logoColor=ffffff"
alt="discord" /></a>
<a href="https://twitter.com/BSManager_"><img
src="https://img.shields.io/badge/-Twitter-black?style=for-the-badge&logo=X" alt="Twitter" /></a>
src="https://img.shields.io/badge/-Twitter-black?style=for-the-badge&logo=X" alt="Twitter" /></a>
<a href="https://www.bsmanager.io">
<img src="https://img.shields.io/badge/-WebSite-00649c?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiPgogIDxnIGZpbGw9IiMzYjgyZmYiPgogICAgPHBhdGggZD0ibTYyNi43NSA0ODUuOTEgMjAuODIgMzUxLjk0YTM1LjIxIDM1LjIxIDAgMCAxLTE1LjQ5IDMxLjM2bC0xNDQuNzEgOTYuMTRoLS4wNmEzNS41NiAzNS41NiAwIDAgMS0xMS4zMSA0Ljc3IDM0Ljg1IDM0Ljg1IDAgMCAxLTIzLjUxLTIuODdMMTM2LjU4IDgwOS45YTExNS40NSAxMTUuNDUgMCAwIDEtNjMuNzUtOTYuNDlMNTIgMzYxLjQ2YTM1LjI2IDM1LjI2IDAgMCAxIDE1LjIzLTMxLjIxbDE0NS4wNS05Ni4zNmEzNS43MiAzNS43MiAwIDAgMSAxMS4yNy00LjcgMzQuODcgMzQuODcgMCAwIDEgMjMuNTEgMi44N0w1NjMgMzg5LjQyYTExNS40MSAxMTUuNDEgMCAwIDEgNjMuNzUgOTYuNDlaIi8+CiAgICA8cGF0aCBmaWx0ZXI9ImJyaWdodG5lc3MoMzAlKSIgZD0ibTYxMy43OCA0ODYuNjcgMjAuODIgMzUyYTIyLjM0IDIyLjM0IDAgMCAxLTMyLjI2IDIxLjMxTDI4Ni40IDcwMi41N0ExMDIuNDMgMTAyLjQzIDAgMCAxIDIyOS44MyA2MTdMMjA5IDI2NWEyMi4zNSAyMi4zNSAwIDAgMSAzMi4yNi0yMS4zMkw1NTcuMiA0MDEuMDVhMTAyLjQyIDEwMi40MiAwIDAgMSA1Ni41OCA4NS42MloiLz4KICA8L2c+CiAgPHBhdGggZD0iTTcxOC4yOSA3NzYuNDggNzAwIDgwNC4xOGMtNDAuNjMgMzkuNS04Ny4wNiA2Ny4yNS0xMzMuODEgOTAuNzUtODcuMzIgNDMuOS0yMDMuNjcgNzcuMTktMjQ5IDkwLjM0YTQ4IDQ4IDAgMCAxLTI2LjE3LjE2Yy02NC0xNy43Mi0xODguNjItNzItMjM2LjI4LTEyNS40OWE0LjIzIDQuMjMgMCAwIDEgNS4zLTYuNDVjMzUuNjQgMjAuODcgMTExLjIyIDU3LjY0IDE1Ni4zNyA3NC4yMiA0OS4xOCAxOC4wNiA4MS4yOSA4Ljc0IDkyLjI4LTMuMjZhNC43NyA0Ljc3IDAgMCAxIDcuMjQuMjFjMTkuNTEgMjQgMTA3LjI2IDQuNiAxNjYuNjQtMTMgNjQuMzQtMTkgMTg1Ljg1LTc2LjU2IDIzNS43Mi0xMzUuMThabS0xOTYuMiAxNTcuMzMtMTQ3LjQ1IDU1LjY4YTMuOTIgMy45MiAwIDAgMCAxLjQ0IDcuNThsNTQuNjItLjc3YTM1LjYzIDM1LjYzIDAgMCAwIDE5LTUuNzlsNzYtNDkuNTVhNCA0IDAgMCAwLTMuNjEtNy4xNVpNMjE4LjkyIDE5NS41NmMtMjEuMTQuMDctMzMuNTUgMzUuODYtMzMuMTYgODkuMDguMiAyOCAyLjU4IDkyLjc0IDQuNzkgMTQ3LjczLjIzIDUuNzEtOC4xOCA2LjQ4LTkgLjgxbC0zOC40Mi0yNzAuNzFhNC4zOCA0LjM4IDAgMCAxIDcuMTItNCA2My42MyA2My42MyAwIDAgMCAyMS45MyAxMS44NSA0LjYxIDQuNjEgMCAwIDAgNS45LTMuNzJjNC4yLTI3LjcgMTYuNjMtNTguNzQgMzcuMzUtODguNzRhNC4zNiA0LjM2IDAgMCAxIDcuNTYuNjljMTAuODYgMjMuODcgNDkgMTAzLjggOTMuMzQgMTUyLjc5YTQuNjUgNC42NSAwIDAgMS01LjYyIDcuMjJjLTM2LjU3LTE5LjM4LTgzLjAxLTQzLjAyLTkxLjc5LTQzWm0tMTUuNDcgMzg0LjhhNC41MSA0LjUxIDAgMCAxLTQuNDYtMy45MmwtMTMuODItMTA3LjI5YTQuNSA0LjUgMCAwIDEgOC45My0xLjE1bDEzLjgyIDEwNy4yOWE0LjUgNC41IDAgMCAxLTMuODkgNSAzLjg2IDMuODYgMCAwIDEtLjU4LjA3Wk01NzcuMDggNTQuNThjLTQ2Ljc5IDE1Ljg1LTExNS40NSA0MC41Ni0xNTguNzMgNjIuNzlhMzUuNSAzNS41IDAgMCAwLTE4LjU3IDI0LjUzYy0zLjk1IDE5LjQ5LTExIDU2LjA5LTE5IDEwNy4yNi0uNyA0LjQ4LTcuMzYgMy43OC03LjExLS43NWwxMC42Ni0xOTQuNzNhMy43OCAzLjc4IDAgMCAxIDcuNDYtLjY2bDMuNDkgMTQuODVhMi41NyAyLjU3IDAgMCAwIDQuNjkuNzdjNi4xOC0xMCAyMi4zNy0zMi43OSA1Ny4zMi02NWE0LjEzIDQuMTMgMCAwIDEgNi41NiA0LjcybC0zMi41NCA3Mi44OXM3OC43OC0xOS4zNyAxNDQtMzMuMDljNC4xMS0uODcgNS42OSA1LjA4IDEuNzcgNi40MloiIGZpbGw9IiNmZmYiIHN0cm9rZT0iYmxhY2siLz4KICA8ZyBmaWxsPSIjZjQ0Ij4KICAgIDxwYXRoIGZpbHRlcj0iYnJpZ2h0bmVzcyg2MCUpIHNhdHVyYXRlKDEyMCUpIiBkPSJtOTQ3LjA3IDQxMC4zNS01Ny43NSAzNDcuNzlhMzUuMTggMzUuMTggMCAwIDEtMjIuMDYgMjcuMTVsLTE2Mi40MyA2MS42NWgtLjA2YTM1LjUyIDM1LjUyIDAgMCAxLTEyLjA2IDIuMTEgMzQuODMgMzQuODMgMCAwIDEtMjIuMjktOGwtMjczLjE3LTIyMy41YTExNS40MyAxMTUuNDMgMCAwIDEtNDAuNzYtMTA4LjIybDU3Ljc1LTM0Ny44QTM1LjI1IDM1LjI1IDAgMCAxIDQzNiAxMzQuNDdsMTYyLjgzLTYxLjc5YTM1LjUxIDM1LjUxIDAgMCAxIDEyLTIuMDggMzQuODMgMzQuODMgMCAwIDEgMjIuMjkgOGwyNzMuMTkgMjIzLjUyYTExNS4zOCAxMTUuMzggMCAwIDEgNDAuNzYgMTA4LjIzWiIvPgogICAgPHBhdGggZD0iTTkzNC4yNSA0MDguMjIgODc2LjUgNzU2YTIyLjM0IDIyLjM0IDAgMCAxLTM2LjE4IDEzLjYzbC0yNzMuMTctMjIzLjVhMTAyLjQyIDEwMi40MiAwIDAgMS0zNi4xNy05Nmw1Ny43NS0zNDcuODNhMjIuMzQgMjIuMzQgMCAwIDEgMzYuMTgtMTMuNjNsMjczLjE3IDIyMy41MWExMDIuNDIgMTAyLjQyIDAgMCAxIDM2LjE3IDk2LjA0WiIvPgogIDwvZz4KICA8ZWxsaXBzZSBmaWxsPSIjZmZmIiBzdHJva2U9ImJsYWNrIiBjeD0iNzMyLjYxIiBjeT0iNDI5LjE2IiByeD0iNjIuODMiIHJ5PSIxMTAuNzMiIHRyYW5zZm9ybT0icm90YXRlKC0xNS40NSA3MzIuNzAzIDQyOS4xOTkpIi8+Cjwvc3ZnPg==" alt="Website" /></a>
<a href="https://www.patreon.com/bsmanager"><img
@@ -72,76 +71,64 @@
-->
<div>
<hr>
<details open>
<details open>
<summary><b>Table of Contents</b></summary>
<ul>
<li>
<li>
<details>
<summary><a href="#bsmanager-your-beat-saber-assistant">BSManager: Your Beat Saber Assistant</a></summary>
<ul>
<summary><a href="#bsmanager-your-beat-saber-assistant">BSManager: Your Beat Saber Assistant</a></summary>
<ul>
<li><a href="#what-is-it">What is it?</a></li>
<li><a href="#why-use-it">Why use it?</a></li>
<li><a href="#built-with">Built with</a></li>
<li><a href="#how-to-install">How to install</a></li>
</ul>
<li><a href="#how-to-install">How to install?</a></li>
</ul>
</details>
</li>
<li>
</li>
<li>
<details>
<summary><a href="#version-management">Version Management</a></summary>
<ul>
<li>
<details>
<summary><a href="#downloading-multiple-versions">Downloading multiple versions</a></summary>
<ul>
<li>via Steam account</li>
<li>via Oculus (PCVR) account</li>
</ul>
</details>
</li>
<li><a href="#multi-version-sharing">Multi-version Sharing</a></li>
<li><a href="#importing-an-existing-version-of-beat-saber">Importing an existing version of Beat Saber</a>
</li>
<li><a href="#launch-arguments">Launch arguments</a></li>
<li><a href="#shortcut-creation">Shortcut creation</a></li>
</ul>
<summary><a href="#version-management">Version Management</a></summary>
<ul>
<li><a href="#downloading-multiple-versions">Downloading Multiple Versions</a></li>
<li><a href="#multi-version-sharing">Multi-Version Sharing</a></li>
<li><a href="#importing-an-existing-version-of-beat-saber">Importing an Existing Version of Beat Saber</a></li>
<li><a href="#launch-arguments">Launch Arguments</a></li>
<li><a href="#shortcut-creation">Shortcut Creation</a></li>
</ul>
</details>
</li>
<li>
</li>
<li>
<details>
<summary><a href="#download-and-installation">Download and Installation</a></summary>
<ul>
<li><a href="#maps">Maps</a></li>
<li><a href="#playlists">Playlists</a></li>
<li><a href="#mods">Mods</a></li>
<li><a href="#models">Models</a></li>
</ul>
<summary><a href="#download-and-installation">Download and Installation</a></summary>
<ul>
<li><a href="#features">Features</a></li>
</ul>
</details>
</li>
<li>
</li>
<li>
<details>
<summary><a href="#customization">Customization</a></summary>
<ul>
<summary><a href="#customization">Customization</a></summary>
<ul>
<li><a href="#tool">Tool</a></li>
<li><a href="#beat-saber-instance">Beat Saber Instance</a></li>
</ul>
</ul>
</details>
</li>
<li>
</li>
<li>
<details>
<summary><a href="#more-information">More Information</a></summary>
<ul>
<summary><a href="#more-information">More Information</a></summary>
<ul>
<li><a href="#support">Support</a></li>
<li><a href="#credits">Credits</a></li>
<li><a href="#Contributing">Contributing</a></li>
</ul>
<li><a href="#contributing">Contributing</a></li>
</ul>
</details>
</li>
</li>
</ul>
</details>
<div align="right">
</details>
<div align="right">
[<a href="#readme-bot">Go to bottom</a>]
</div>
</div>
</div>
@@ -155,7 +142,6 @@
<h1><b>BSManager: Your Beat Saber Assistant</b></h1>
</div>
<!--
WHAT IS IT?
----------------------------------------
@@ -166,7 +152,6 @@
Saber</a> experience by centralizing the management of mods, maps, and game versions in one place.</p>
</div>
<!--
WHY USE IT?
----------------------------------------
@@ -189,7 +174,6 @@
<video src="https://github.com/Zagrios/bs-manager/assets/40648115/012b0196-74ef-4ee5-86a4-49e835612f96"/>
</div>
<!--
BUILT WITH
----------------------------------------
@@ -219,16 +203,23 @@
</ul>
</div>
<!--
HOW TO INSTALL
----------------------------------------
-->
<div>
<h2><b>How to install?</b></h2>
</div>
<div>
<h3><b>Windows Installation</b></h3>
<ul>
<li>Download the <a href="https://github.com/Zagrios/bs-manager/releases/latest">latest release</a> from <a
href="https://github.com/Zagrios/bs-manager/releases">Releases</a>.</li>
<li>Download and install <a href="https://www.bsmanager.io">BSManager</a> from one of the following sources:</li>
<ul>
<li><a href="https://github.com/Zagrios/bs-manager/releases/latest">GitHub</a></li>
<li><a href="https://www.bsmanager.io">Official Website</a></li>
<li><a href="https://www.nexusmods.com/beatsaber/mods/18?tab=files">Nexus Mods</a></li>
</ul>
<li>Execute the installer and <a href="https://github.com/Zagrios/bs-manager">BSManager</a> will start itself.</li>
<li>Once it's done, if you want to download a version, select a version and download it! </li>
<li>From the version page you can choose options, launch the version, and more!</li>
@@ -239,6 +230,10 @@
<video src="https://github.com/Zagrios/bs-manager/assets/40648115/4215384e-eb68-40da-884c-f21df491ef75" />
</div>
<div>
<h3><b>Linux Installation</b></h3>
<p>BSManager is also available on Linux! Follow the step-by-step guide in our <a href="https://github.com/Zagrios/bs-manager/wiki/Linux">Linux installation wiki</a> to set it up properly.</p>
</div>
<!--
----------------------------------------
@@ -256,48 +251,27 @@
existing ones, provided that you own the game on a Steam or Oculus (PC) account.</p>
</div>
<!--
DOWNLOADING MULTIPLE VERSIONS
----------------------------------------
-->
<div>
<h2>Downloading Multiple Versions</h2>
<p><a href="https://github.com/Zagrios/bs-manager">BSManager</a> provides two authentication methods to access your
Steam account, ensuring safe and flexible access to
different game versions:</p>
</div>
<div align="center">
<img src="https://github.com/Zagrios/bs-manager/assets/40648115/09d579de-8b8e-45d3-8829-21a25cc7daf8"/>
</div>
<div>
<p><a href="https://github.com/Zagrios/bs-manager">BSManager</a> allows you to safely and easily access different versions of Beat Saber, ensuring flexibility for modding or version-specific preferences.</p>
<p>To download a version, you can authenticate using two methods:</p>
<ul>
<li><strong>via Steam</strong>: Use either your credentials, which will not be stored by <a
href="https://github.com/Zagrios/bs-manager">BSManager</a> or
<a href="https://github.com/SteamRE/DepotDownloader">DepotDownloader</a>, or opt for a quick and secure
authentication via QR with the Steam Guard app.</li>
<li><strong>via Steam</strong>: Authenticate securely using your Steam credentials or by scanning a QR code with the Steam Guard app.</li>
<li><strong>via Oculus</strong>: BSManager redirects you to the official Oculus website for authentication to retrieve your token securely. Alternatively, you can follow <a href="https://github.com/Zagrios/bs-manager/wiki/How-to-obtain-your-Oculus-Token">this guide</a> to obtain your token manually and paste it into BSManager.</li>
</ul>
<p>For detailed instructions on installing versions, follow this tutorial:
👉 <a href="https://github.com/Zagrios/bs-manager/wiki/install-or-import-a-version">How to install or import a version</a>
</p>
</div>
<div align="center">
<img src="https://github.com/Zagrios/bs-manager/assets/40648115/26da3a19-a936-4e6b-b79b-a139d7bd55de" />
<img src="https://github.com/Zagrios/bs-manager/assets/40648115/09d579de-8b8e-45d3-8829-21a25cc7daf8" alt=""/>
</div>
<div>
<ul>
<li><strong>via Oculus</strong>: For Oculus users, <a href="https://github.com/Zagrios/bs-manager">BSManager</a>
requires you to retrieve a connection token by following the instructions in this guide: <a href="https://github.com/Zagrios/bs-manager/wiki/How-to-obtain-your-Oculus-Token">How to obtain your Oculus Token</a>. Once obtained, please insert it into the form.</li>
</ul>
</div>
<div align="center">
<img height=450 src="https://github.com/Zagrios/bs-manager/assets/40648115/3674e629-542d-4de3-b8db-b248f25126d7" />
</div>
<!--
MULTI-VERSION SHARING
----------------------------------------
@@ -312,10 +286,9 @@
</div>
<div align="center">
<video src="https://github.com/Zagrios/bs-manager/assets/40648115/ba39aceb-f55f-4e58-8386-51fcfaad4957"/>
<video src="https://github.com/Zagrios/bs-manager/assets/40648115/ba39aceb-f55f-4e58-8386-51fcfaad4957"/>
</div>
<!--
IMPORTING AN EXISTING VERSION OF BEAT SABER
----------------------------------------
@@ -332,49 +305,53 @@
<video src="https://github.com/Zagrios/bs-manager/assets/40648115/cdedb951-d97a-474d-a217-2422be3919f7"/>
</div>
<!--
LAUNCH ARGUMENTS
----------------------------------------
-->
<div>
<h2>Launch Arguments</h2>
<p><a href="https://github.com/Zagrios/bs-manager">BSManager</a> provides efficient management of <a
href="https://beatsaber.com/">Beat Saber</a> launch arguments, including three predefined ones to
enhance your gaming experience:</p>
<p><a href="https://github.com/Zagrios/bs-manager">BSManager</a> provides advanced management of launch arguments for <a href="https://beatsaber.com/">Beat Saber</a>, allowing you to customize your gaming experience.</p>
<h3>Predefined Arguments</h3>
<ul>
<li><strong>Oculus Mode</strong>: Launches the game directly in Oculus mode, avoiding the use of STEAM VR.</li>
<li><strong>FPFC Mode</strong>: Enables "FPFC" mode, allowing you to control the game without using a VR
headset.</li>
<li><strong>Debug Mode</strong>: Activates debugging mode, generating Windows log outputs for IPA.</li>
<li><strong>Oculus Mode</strong>: Allows you to use Oculus's VR composer while bypassing SteamVR, which may improve performance. (Only useful if you launch the game via Steam).</li>
<li><strong>FPFC Mode</strong>: Enables "First Person Flying Controller" mode, allowing you to navigate menus using the keyboard (WASD) and mouse without a VR headset.</li>
<li><strong>Debug Mode</strong>: Activates the IPA debug console, displaying logs used by mods.</li>
<li><strong>Skip Steam</strong>: Prevents Steam from opening automatically with Beat Saber, useful if you use an alternative VR runtime like WIVRn or Monado.</li>
<li><strong>Map Editor</strong>: Launches the official Beat Saber map editor instead of the game.</li>
</ul>
<p>You also have the freedom to add your own custom launch arguments by inserting them into "Advanced Launch" and
separating them with a semicolon (;).</p>
<h3>Custom Arguments</h3>
<p>You can also add your own custom launch arguments by inserting them into "Advanced Launch" and separating them with a semicolon (;).</p>
<h3>Pinning Arguments</h3>
<p>You can now pin your favorite launch arguments for quick access. By default, only <strong>Oculus Mode</strong> and <strong>Debug Mode</strong> are pinned.</p>
</div>
<div align="center">
<img src="https://github.com/Zagrios/bs-manager/assets/40648115/1244d49f-20e1-400c-9818-528f05cfadf5" />
<img src="https://github.com/user-attachments/assets/c247b237-9c49-4e7b-9366-aeb1dd3b7b9a" alt="" />
</div>
<!--
SHORTCUT CREATION
----------------------------------------
-->
<div>
<h2>Shortcut Creation</h2>
<p>Create shortcuts to easily access your different versions of <a href="https://beatsaber.com/">Beat Saber</a> with
<a href="https://github.com/Zagrios/bs-manager">BSManager</a>. After selecting your
version, go to the version settings, click on "Create a Shortcut", and then select your launch options. Thus,
you can quickly and easily launch your preferred version of <a href="https://beatsaber.com/">Beat Saber</a> with the
desired settings.</p>
<p>Create shortcuts to easily access your different versions of <a href="https://beatsaber.com/">Beat Saber</a> with <a href="https://github.com/Zagrios/bs-manager">BSManager</a>.
</p>
<p>To learn how to create a shortcut, follow the tutorial available here:
👉 <a href="https://github.com/Zagrios/bs-manager/wiki/create-a-shortcut">Shortcut Creation Guide</a>
</p>
<p>This allows you to quickly and easily launch your preferred version of <a href="https://beatsaber.com/">Beat Saber</a> with the desired settings.
</p>
</div>
<div align="center">
<video src="https://github.com/Zagrios/bs-manager/assets/40648115/bfa1e97d-6392-4dec-a1fc-bb05048cf6d2" />
</div>
<!--
----------------------------------------
DOWNLOAD AND INSTALLATION
@@ -384,79 +361,30 @@
<hr>
<h1><b>Download and Installation</b></h1>
</div>
<div>
<p><a href="https://github.com/Zagrios/bs-manager">BSManager</a> provides centralized and organized management of
beatmaps, mods, and models, integrating download features and sharing between <a href="https://beatsaber.com/">Beat
Saber</a> versions.</p>
<p><a href="https://github.com/Zagrios/bs-manager">BSManager</a> centralizes and simplifies the management of beatmaps, playlists, mods, and models, offering seamless downloads and sharing between different <a href="https://beatsaber.com/">Beat Saber</a> versions.</p>
</div>
<!--
MAPS
----------------------------------------
-->
<div>
<h2>Maps</h2>
<p><a href="https://github.com/Zagrios/bs-manager">BSManager</a> integrates the <a href="https://beatsaver.com">Beat
Saver</a> API to provide you with a comprehensive list of maps downloadable directly from its interface. Moreover,
the OneClick feature allows you to download maps with one click from various sources such as <a
href="https://beatsaver.com">Beat Saver</a>, <a href="https://bsaber.com">BeastSaber</a>, <a
href="https://scoresaber.com">ScoreSaber</a>, and <a href="https://www.beatleader.xyz">Beat Leader</a>. To add
maps, simply select the desired version or the "shared" tab, then click "ADD".</p>
<h2>Features</h2>
<p>With <a href="https://github.com/Zagrios/bs-manager">BSManager</a>, you can manage your:
</p>
<ul>
<li><b>Maps:</b> Browse and download maps directly from sources like <a href="https://beatsaver.com">Beat Saver</a>, <a href="https://bsaber.com">BeastSaber</a>, <a href="https://scoresaber.com">ScoreSaber</a>, and <a href="https://www.beatleader.xyz">Beat Leader</a>.</li>
<li><b>Playlists:</b> Search for and download playlists directly from BSManager, just like maps. 😉
<li><b>Mods:</b> Manage and install mods via the "Mods" tab, offering the same features as Mod Assistant.</li>
<li><b>Models:</b> Add and manage models easily with the integration of the <a href="https://modelsaber.com">Model Saber</a> API.</li>
</ul>
<p>For detailed instructions on each feature, check the following guides:</p>
<ul>
<li>👉 <a href="https://github.com/Zagrios/bs-manager/wiki/install-any-map">Install Any Map</a></li>
<li>👉 <a href="https://github.com/Zagrios/bs-manager/wiki/install-all-playlists-you-want">Install Playlists</a></li>
<li>👉 <a href="https://github.com/Zagrios/bs-manager/wiki/install-mods-on-your-version">Install Mods</a></li>
<li>👉 <a href="https://github.com/Zagrios/bs-manager/wiki/modify-models-in-your-beat-saber">Manage Models</a></li>
</ul>
</div>
<div align="center">
<video src="https://github.com/Zagrios/bs-manager/assets/40648115/3f9f9968-ac55-465e-bc28-17aebfc787ea"/>
</div>
<!--
PLAYLISTS
----------------------------------------
-->
<div>
<h2>Playlists</h2>
<p>Although the playlist management interface is not yet developed, <a
href="https://github.com/Zagrios/bs-manager">BSManager</a> offers a OneClick feature for playlists from <a
href="https://beatsaver.com">Beat Saver</a>.</p>
</div>
<div align="center">
<video src="https://github.com/Zagrios/bs-manager/assets/40648115/733fe6bb-c157-4c47-8a79-f8062380bcc8" />
</div>
<!--
MODS
----------------------------------------
-->
<div>
<h2>Mods</h2>
<p>Manage your mods easily with <a href="https://github.com/Zagrios/bs-manager">BSManager</a>. After downloading a
version, navigate to the "Mods" tab of the selected version to manage and install mods. <a
href="https://github.com/Zagrios/bs-manager">BSManager</a> operates similarly to Mod Assistant and offers the same
mods as this tool.</p>
</div>
<div align="center">
<video src="https://github.com/Zagrios/bs-manager/assets/40648115/ca8f0727-b2dd-41f3-bbea-9bcaf61a89f1"/>
</div>
<!--
MODELS
----------------------------------------
-->
<div>
<h2>Models</h2>
<p>Add and manage models simply via the corresponding tab on the desired version or by going to the "shared" tab. The
<a href="https://modelsaber.com">Model Saber</a> API is integrated to provide easy and direct access to models
available for <a href="https://beatsaber.com/">Beat Saber</a>.</p>
</div>
<div align="center">
<video src="https://github.com/Zagrios/bs-manager/assets/40648115/d983b34b-9f4c-4274-aee4-4c1c03dd90d0"/>
</div>
<!--
----------------------------------------
CUSTOMIZATION
@@ -487,7 +415,7 @@
</ul>
</div>
<div align="center">
<div align="center">
<video src = "https://github.com/Zagrios/bs-manager/assets/40648115/d2c1b0ec-a2f5-41b5-99d5-c4c2cd34cbd4" />
</div>
@@ -512,7 +440,6 @@
<video src="https://github.com/Zagrios/bs-manager/assets/40648115/f66a2c99-770e-42ca-9a71-b1806946ad0c" />
</div>
<!--
----------------------------------------
MORE INFORMATION
@@ -538,7 +465,6 @@
GitHub</a>.</p>
</div>
<!--
CREDITS
----------------------------------------
@@ -550,6 +476,8 @@
<li><a href="https://github.com/Iluhadesu">Iluhadesu</a> - Co-Developer & Co-Founder, Discord Bot Developer.</li>
<li><a href="https://github.com/GaetanGrd">GaetanGrd</a> - Co-Developer & Co-Founder, Documentation Lead.</li>
<li><a href="https://github.com/cheddZy">cheddZy</a> - Icon Creator.</li>
<li><a href="https://github.com/Insprill">Insprill</a> - Co-Developer, Linux Developer, AUR Maintainer.</li>
<li><a href="https://github.com/silentrald">silentrald</a> - Co-Developer, Linux Developer, deb/rpm/flatpak Maintainer.</li>
</ul>
</div>
@@ -565,12 +493,11 @@
href="https://github.com/Zagrios/bs-manager">BSManager</a>!</p>
<div align="center">
<a href="https://github.com/Zagrios/bs-manager/graphs/contributors">
<img src="https://contrib.rocks/image?repo=Zagrios/bs-manager" />
<img src="https://contrib.rocks/image?repo=Zagrios/bs-manager" alt="Contributor list" />
</a>
</div>
</div>
<!--
----------------------------------------
Others
+35
View File
@@ -785,7 +785,42 @@
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/4669760442595134838",
"ReleaseImg": "https://clan.akamai.steamstatic.com/images/32055887/57cfa043407c091e67b7e0a8ae86fe5590deae33.png",
"ReleaseDate": "1728399815",
"year": "2024"
},
{
"BSVersion": "1.39.0",
"BSManifest": "5365094543246905054",
"OculusBinaryId": "7978663688900007",
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/4451339035198095638",
"ReleaseImg": "https://clan.cloudflare.steamstatic.com/images/32055887/fd8e2c783e46decdf5e10fed1e16f124616d9321.png",
"ReleaseDate": "1731426932",
"year": "2024"
},
{
"BSVersion": "1.39.1",
"BSManifest": "2179614296547473280",
"OculusBinaryId": "8189133517853022",
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/4451340304252928024",
"ReleaseDate": "1732107748",
"year": "2024",
"recommended": true
},
{
"BSVersion": "1.40.0",
"BSManifest": "8455036253884215709",
"OculusBinaryId": "8259984977434542",
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/507314379973199787",
"ReleaseImg": "https://clan.fastly.steamstatic.com/images/32055887/65df6b24c3b8a7f415080ac01394917cedabf9fc.png",
"ReleaseDate": "1733846128",
"year": "2024"
},
{
"BSVersion": "1.40.1",
"BSManifest": "8655702238937650396",
"OculusBinaryId": "8526525354113835",
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/510696972023234581",
"ReleaseImg": "https://clan.fastly.steamstatic.com/images/32055887/5cc1ca353151ed31da2764716cdcbe89442aeeeb.png",
"ReleaseDate": "1738144954",
"year": "2025"
}
]
-14
View File
@@ -1,14 +0,0 @@
{
"1.5.0-alpha.1":{
"htmlBody" :"<strong>BSManager continues to get better, thanks to your continued support and contributions!</strong><center>🎈🎉🎈</center><p>Note: This is an alpha release, encountering bugs is expected. Please file new issues for any bugs you find.</p><h2>Features</h2><ul><li>Added playlist support</li><li>Added Linux support (Thanks to @Insprill)</li><li>Added reset button to reset values when editing a Beat Saber version (Thanks to @Liborsaf)</li><li>Added a changelog modal</li></ul><h2>Fixes</h2><ul><li>Fixed an issue where switching between Beat Saber versions too quickly displayed mods for the wrong version</li><li>Fixed an issue where the launch window from a shortcut would never close</li><li>Advanced launch arguments are used even when the input field is closed</li><li>Fixed an issue where having many maps caused some maps to not have their information loaded</li></ul><h2>Other changes</h2><ul><li>.NET Framework is no longer required</li><li>Clear English translations for the Steam credentials popup (Thanks to @Aeywoo)</li><li>NSFW models are now blurred when browsing for models</li><li>When no mods are available for a Beat Saber version, the version number is now shown</li><li>Mods load faster</li><li>After a first full maps loading, maps load almost instantly</li><li>Improved performance in lists with lot of contents</li></ul>",
"title" : "What's new ?",
"timestamp" : 1721048400,
"version" : "1.5.0-alpha.1"
},
"1.5.0-alpha.2":{
"htmlBody" :"<strong>BSManager continues to get better, thanks to your continued support and contributions!</strong><center>🎈🎉🎈</center><p>Note: This is an alpha release, encountering bugs is expected. Please file new issues for any bugs you find.</p><h4>Alpha changes</h4><ul><li>Fixed an issue where BSIPA could not be installed if the BS version&#39;s path contained spaces #523</li><li>Fixed a crash when changing audio volume #518</li><li>Fixed an issue where playlist maps with a malformed hash were not loaded #517</li><li>Improved reliability of reading maps from a playlist file #517</li><li>Playlists in sub-folders are now loaded #514</li><li>Fixed a crash when loading an invalid playlist file #513</li></ul><h2>Features</h2><ul> <li>Added playlist support</li> <li>Added Linux support (Thanks to @Insprill)</li> <li>Added reset button to reset values when editing a Beat Saber version (Thanks to @Liborsaf)</li> <li>Added a changelog modal</li></ul><h3>Fixes</h3><ul><li>Fixed an issue where switching between Beat Saber versions too quickly displayed mods for the wrong version #472</li><li>Fixed an issue where the launch window from a shortcut would never close #485</li><li>Advanced launch arguments are used even when the input field is closed #496</li><li>Fixed an issue where having many maps caused some maps to not have their information loaded #503</li><li>Fixed an issue where downloading maps sometimes resulted in a timeout error #524</li><li>Fixed an issue where the duration of maps could be wrong in some cases #522</li></ul><h2>Other changes</h2><ul> <li>.NET Framework is no longer required</li> <li>Clear English translations for the Steam credentials popup (Thanks to @Aeywoo)</li> <li>NSFW models are now blurred when browsing for models</li> <li>When no mods are available for a Beat Saber version, the version number is now shown</li> <li>Mods load faster</li> <li>After a first full maps loading, maps load almost instantly</li> <li>Improved performance in lists with lot of contents</li></ul>",
"title" : "What's new ?",
"timestamp" : 1721665382,
"version" : "1.5.0-alpha.2"
}
}
+54 -26
View File
@@ -54,65 +54,93 @@
"type": "diamond",
"link": "https://www.youtube.com/@lumberjack462"
},
{
{
"username": "Xero"
},
{
{
"username": "Minescence"
},
{
{
"username": "mereknom"
},
{
{
"username": "Jascha"
},
{
{
"username": "Celldweller",
"type": "gold"
},
{
{
"username": "rhythmshade"
},
{
{
"username": "liborsaf"
},
{
{
"username": "aatame3",
"type": "gold"
},
{
{
"username": "Joshua"
},
{
{
"username": "Stuijvi",
"type": "gold"
},
{
"username": "_ monaka"
},
{
"username": "Better_Axel"
},
{
{
"username": "_ monaka"
},
{
"username": "Better_Axel"
},
{
"username": "Riley",
"type": "gold"
},
{
"username": "Austin"
},
{
{
"username": "Austin"
},
{
"username": "Fatalution",
"type": "diamond",
"link": "https://x.com/fatalution"
},
{
{
"username": "Taurus Arcade",
"type": "gold"
},
{
"username": "Mozz_Zm"
},
{
"username": "clapxz"
},
{
"username": "Mozz_Zm"
},
"username": "Reflected Chop",
"type": "gold"
},
{
"username": "clapxz"
}
"username": "Furiouspupa"
},
{
"username": "Maximilian"
},
{
"username": "Paul Smith"
},
{
"username": "MunityVR",
"type": "gold"
},
{
"username": "Sk4venger"
},
{
"username": "Alexander Herman",
"type": "gold"
},
{
"username": "Arts Rimuro Suraimu",
"type": "gold"
}
]
+176 -143
View File
@@ -8,6 +8,10 @@
"maps": "Maps",
"playlists": "Playlists",
"models": "Modelle",
"avatars": "Avatare",
"sabers": "Säbel",
"platforms": "Plattformen",
"blocks": "Blöcke",
"cancel": "Abbrechen",
"delete": "Löschen",
"accept": "Akzeptieren",
@@ -15,7 +19,22 @@
"apply": "Übernehmen",
"copy": "Kopieren",
"copied": "Kopiert!",
"confirm": "Bestätigen"
"confirm": "Bestätigen",
"choose-folder": "Ordner Wählen",
"unknown": "Ein unbekannter Fehler ist aufgetreten ¯\\_(ツ)_/¯",
"warning": "Achtung",
"continue": "Weiter",
"shared": "Geteilt",
"pin": "Anheften",
"unpin": "Lösen"
},
"generic": {
"env": {
"parse": "Konnte den Umgebungsvariablen-String nicht richtig parsen."
}
},
"title-bar": {
"outdated": "veraltet"
},
"nav-bar": {
"add-version": "Version hinzufügen",
@@ -34,10 +53,17 @@
"desktop-description": "Auf diese Weise kannst du WASD und die Maus verwenden, um im Spiel durch das Menü zu navigieren. Dies erleichtert das Testen erheblich, da du dein Headset nicht aufsetzen musst!",
"debug": "Debug Modus",
"debug-description": "Aktiviert das Ausgabeprotokollfenster für IPA. Dies zeigt die Debug-Konsole, welche die Mods verwenden.",
"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": "Erweiterter Start",
"placeholder": "Weitere Argumente, bspw: --revert; --nowait"
}
"button": "Startoptionen",
"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.",
"map-editor": "Karteneditor",
"map-editor-description": "Starte den offiziellen Beat Saber-Karteneditor anstelle des Spiels.",
"proton-logs": "Proton-Logs",
"proton-logs-description": "Aktiviert die Aufzeichnung von Proton-Logs für diese Beat Saber-Installation auf \"{versionPath}\"."
},
"maps": {
"search-bar": {
@@ -70,6 +96,15 @@
"drop-zone": {
"text": "Deine Karten importieren",
"subtext": "Lasse deine ZIP-Dateien hier fallen, um deine Karten zu importieren"
},
"sort": {
"name": "Name",
"song-author": "Liedautor",
"map-author": "Kartenautor",
"bpm": "BPM",
"duration": "Dauer",
"likes": "Likes",
"date-uploaded": "Hochladedatum"
}
},
"playlists": {
@@ -81,6 +116,13 @@
"drop-zone": {
"text": "Importiere deine Wiedergabelisten",
"subtext": "Ziehe deine \".bplist\" oder \".json\" Dateien hierhin, um sie zu importieren"
},
"sort": {
"title": "Titel",
"author": "Autor",
"number-of-maps": "Anzahl der Karten",
"duration": "Dauer",
"notes-per-second": "NPS"
}
}
}
@@ -101,7 +143,9 @@
"latest": "Neueste",
"description": "Beschreibung",
"dropdown": {
"uninstall-all": "Alle deinstallieren"
"import-mods": "Mods importieren",
"uninstall-all": "Alle deinstallieren",
"unselect-all": "Alle abwählen"
}
}
},
@@ -109,7 +153,19 @@
"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": {
"text": "Importiere deine Mods",
"subtext": "Ziehe deine \"zip\"- oder \"dll\"-Dateien hierher, um sie zu importieren"
}
},
"dropdown": {
@@ -123,7 +179,7 @@
}
},
"available-versions": {
"title": "Wähle eine Version",
"title": "Eine Version herunterladen",
"steam-release": "Versionsseite",
"dropdown": {
"refresh": "Aktualisiere die Versionen",
@@ -157,8 +213,15 @@
},
"installation-folder": {
"title": "Installations-Ordner",
"description": "Ändern Sie den Ordner, der alle von BSManager heruntergeladenen Inhalte enthalten wird.",
"choose-folder": "Ordner wählen"
"description": "Ändern Sie den Ordner, der alle von BSManager heruntergeladenen Inhalte enthalten wird."
},
"proton-folder": {
"title": "Proton-Ordner",
"description": "Ändern Sie den Ordner zum Proton-Pfad. (z. B. Proton - Experimental)",
"errors": {
"title": "Das Einstellen des Proton-Ordners ist fehlgeschlagen",
"invalid-folder": "Ungültiger Proton-Ordnerpfad"
}
},
"additional-content": {
"title": "Zusätzlicher Inhalt",
@@ -175,21 +238,27 @@
"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": "Englisch, Vereinigtes Königreich",
"en-US": "Englisch, USA",
"fr-FR": "Französisch",
"es-ES": "Spanisch",
"pt-BR": "Portugiesisch",
"it-IT": "Italienisch",
"de-DE": "Deutsch",
"ru-RU": "Russisch",
"zh-CN": "Vereinfachtes Chinesisch",
"zh-TW": "Traditionelles Chinesisch",
"ja-JP": "Japanisch"
"ja-JP": "Japanisch",
"ko-KR": "Koreanisch"
}
}
},
@@ -217,10 +286,6 @@
"open-logs": "Protokolle öffnen"
}
},
"changelogs": {
"open" : "🚀 Neues im Changelog entdecken!",
"not-founds": "😕 Hoppla, kein Changelog zu sehen!"
},
"advanced": {
"title": "Erweiterte",
"description": "Erweiterte Einstellungen für BSManager.",
@@ -247,6 +312,13 @@
"error-notification": {
"message": "Ein Fehler ist aufgetreten, die Einstellungen für symbolische Links können nicht geändert werden."
}
},
"use-system-proxy": {
"title": "System-Proxy verwenden",
"description": "BSManager wird Netzwerkrequests über Ihren Systemproxy durchführen.",
"error-notification": {
"message": "Es ist ein Fehler aufgetreten, die Systemproxyeinstellungen können nicht geändert werden."
}
}
}
}
@@ -297,6 +369,8 @@
"msg": {
"401": "Steam scheint uns Beat Saber nicht herunterladen zu lassen 😢",
"404": "Steam-Server können nicht kontaktiert werden.",
"ExeNotFoundWindows": "\"DepotDownloader.exe\" fehlt. Bitte überprüfen Sie, ob die ausführbare Datei von Ihrer Antivirensoftware quarantäneiert wurde.",
"ExeNotFoundLinux": "Die ausführbare Datei \"DepotDownloader\" fehlt.",
"Password": "Passwort ist ungültig.",
"InvalidCredentials": "Ungültige Anmeldedaten, nicht genehmigte Verbindung oder zu viele Anmeldeversuche.",
"NoManifest": "Es wurde kein Manifest gefunden.",
@@ -330,8 +404,8 @@
"UNABLE_TO_GET_MANIFEST": "Unmöglich, das für den Download erforderliche Manifest zu erhalten.",
"VERIFY_INTEGRITY_FAILED": "Beim Überprüfen der Dateien ist ein Fehler aufgetreten.",
"SOME_FILES_FAILED_TO_DOWNLOAD": "Einige Dateien konnten nicht heruntergeladen werden.",
"OCULUS_LOGIN_TIMED_OUT": "Es hat zu lange gedauert, das Anmelde-Token abzurufen.",
"OCULUS_LOGIN_WINDOW_CLOSED_BY_USER": "Das Meta-Anmeldefenster wurde geschlossen.",
"META_LOGIN_TIMED_OUT": "Es hat zu lange gedauert, das Anmelde-Token abzurufen.",
"META_LOGIN_WINDOW_CLOSED_BY_USER": "Das Meta-Anmeldefenster wurde geschlossen.",
"NO_META_AUTH_TOKEN": "Unmöglich, das für den Download erforderliche Meta-Anmelde-Token zu erhalten.",
"UNKNOWN_ERROR": "Ein unbekannter Fehler ist aufgetreten."
}
@@ -418,11 +492,13 @@
"success": {
"titles": {
"BS_LAUNCHING": "Starte... 🚀",
"STEAM_LAUNCHING": "Steam startet!"
"STEAM_LAUNCHING": "Steam startet!",
"SKIPPING_STEAM_LAUNCH": "Steam-Start überspringen"
},
"msg": {
"BS_LAUNCHING": "Vergiss nicht, dich aufzuwärmen 😉",
"STEAM_LAUNCHING": "Beat Saber wird automatisch nach Steam gestartet."
"STEAM_LAUNCHING": "Beat Saber wird automatisch nach Steam gestartet.",
"SKIPPING_STEAM_LAUNCH": "Ich hoffe, du weißt, was du tust :)"
}
},
"errors": {
@@ -432,8 +508,11 @@
"OCULUS_NOT_RUNNING": "Oculus läuft nicht",
"BS_ALREADY_RUNNING": "Beat Saber läuft bereits",
"EXE_NOT_FINDED": "Dateien fehlen",
"PROTON_NOT_SET": "Proton-Ordner nicht festgelegt",
"PROTON_NOT_FOUND": "Proton-Binärdatei nicht gefunden",
"EXIT": "Abrupter Stop",
"OCULUS_LIB_NOT_FOUND": "Oculus-Bibliothek nicht gefunden"
"OCULUS_LIB_NOT_FOUND": "Oculus-Bibliothek nicht gefunden",
"ORIGINAL_OCULUS_NOT_INSTALLED": "Original Oculus-Version nicht gefunden"
},
"msg": {
"UNKNOWN_ERROR": "Ein unbekannter Fehler ist aufgetreten.",
@@ -442,7 +521,10 @@
"BS_ALREADY_RUNNING": "Schließe Beat Saber, bevor du es erneut startest.",
"EXE_NOT_FINDED": "Einige Dateien scheinen zu fehlen. Versuche, die Dateien zu überprüfen.",
"EXIT": "Beat Saber stoppte abrupt. Versuche, die Dateien zu überprüfen.",
"OCULUS_LIB_NOT_FOUND": "Überprüfe, ob die Oculus-Anwendung korrekt installiert ist und dass die Bibliotheken in Oculus richtig definiert sind."
"OCULUS_LIB_NOT_FOUND": "Überprüfe, ob die Oculus-Anwendung korrekt installiert ist und dass die Bibliotheken in Oculus richtig definiert sind.",
"PROTON_NOT_SET": "Stellen Sie den Proton-Pfad in den Einstellungen ein.",
"PROTON_NOT_FOUND": "Stellen Sie den Proton-Pfad in den Einstellungen ein.",
"ORIGINAL_OCULUS_NOT_INSTALLED": "Beat Saber muss vor dem Öffnen über die Oculus-App installiert werden."
},
"actions": {
"STEAM_NOT_RUNNING": "Starte Steam"
@@ -509,6 +591,17 @@
"no-mods": "Keine Mods sind in dieser Version installiert 😑"
}
}
},
"import-mod": {
"titles": {
"success": "Mod-Import abgeschlossen",
"error": "Es ist ein Fehler beim Importieren der Mods aufgetreten"
},
"msgs": {
"success": "Mods erfolgreich importiert.",
"some-success": "Einige Mods wurden erfolgreich importiert.",
"no-dlls": "Die Datei(en) enthalten keine \"dll\"-Dateien."
}
}
},
"maps": {
@@ -563,18 +656,32 @@
"EPERM": "BSManager hat nicht die erforderlichen Berechtigungen, um den Ordner zu verknüpfen.",
"EACCES": "BSManager hat nicht die erforderlichen Berechtigungen, um den Ordner zu verknüpfen.",
"ENOSPC": "Die Festplatte ist voll, machen Sie Platz und versuchen Sie es erneut.",
"LinkingNotSupported": "Ordnerverknüpfung wird auf diesem Dateisystem nicht unterstützt.",
"UNKNOWN_ERROR": "Ein unbekannter Fehler ist beim Verknüpfen des Ordners aufgetreten."
}
},
"adding-error": {
"title": "Das Hinzufügen des freigegebenen Ordners ist fehlgeschlagen",
"msg": "Sie können \"{folder}\" nicht zu freigegebenen Ordnern hinzufügen."
}
},
"create-launch-shortcut": {
"success": {
"title": "Verknüpfung erstellt",
"msg": "Die Verknüpfung wurde auf dem Desktop erstellt."
"msg": "Die Verknüpfung wurde auf dem Desktop erstellt.",
"msg-steam": "Die Verknüpfung wurde in der Steam-Bibliothek erstellt."
},
"error": {
"msg": "Beim Erstellen der Verknüpfung ist ein Fehler aufgetreten."
}
},
"bs-version-oudated": {
"title": "Veraltete Version",
"msg": "Diese Version von Beat Saber ist veraltet. Verwenden Sie die empfohlene Version, um die neuesten Funktionen und Fehlerbehebungen zu nutzen.",
"actions": {
"do-not-remind": "Nicht mehr daran erinnern",
"ok": "Ok"
}
}
},
"modals": {
@@ -712,31 +819,29 @@
}
}
},
"link-maps": {
"title": "Maps verknüpfen",
"desc": "Das Verknüpfen von Maps ermöglicht es, Maps zwischen allen Versionen zu teilen. Nach der Verknüpfung profitiert diese Version von den geteilten Maps.",
"info": "Das Hinzufügen und Löschen von Maps wird ebenfalls geteilt.",
"keep-maps": {
"label": "Maps behalten",
"title": "\"Maps behalten\" verschiebt die Maps der aktuellen Version in den geteilten Maps-Ordner. Andernfalls gehen sie verloren."
},
"valid-btn": "Maps verknüpfen"
},
"unlink-maps": {
"title": "Maps-Verknüpfung aufheben",
"desc": "Bitte beachte, dass das Aufheben der Verknüpfung von Maps die Verwendung von geteilten Maps für diese Version nicht zulässt.",
"keep-maps": {
"label": "Maps behalten",
"title": "\"Maps behalten\" kopiert die Maps aus dem geteilten Maps-Ordner in den Ordner der ausgewählten Version. Andernfalls gehen sie verloren."
},
"valid-btn": "Verknüpfung aufheben"
},
"delete-duplicate-maps": {
"title": "Map entfernen?",
"desc": "Nur die Karte \"{map}\" ist ein Duplikat. Bist du sicher, dass du sie löschen möchtest?",
"desc-plural": "Es wurden {nb} doppelte Karten gefunden. Bist du sicher, dass du sie löschen möchtest?"
}
},
"link-contents": {
"title": "Die {contentType} verknüpfen",
"p-1": "Das Verknüpfen der {contentType} ermöglicht das Teilen der {contentType} zwischen allen Versionen mit dieser Funktion. Sobald verknüpft, profitiert diese Version von geteilten {contentType}.",
"p-2": "Um die Verknüpfungsfunktion zu nutzen, werden alle deine {itemsHtml} in den {sharedHtml}-Ordner verschoben. Danach wird ein symbolischer Link, der auf den gemeinsamen {contentType}-Ordner verweist, deinen ursprünglichen {contentType}-Ordner ersetzen.",
"warning": "Bitte beachten Sie, dass alle Änderungen an den {contentType} auch alle Versionen mit dieser Funktion beeinflussen.",
"what-is-a-symbolic-link": "Was ist ein symbolischer Link?",
"i-need-help": "Ich brauche Hilfe",
"valid-btn": "Die {contentType} verknüpfen"
},
"unlink-contents": {
"title": "Die {contentType} entknüpfen",
"p-1": "Achtung, das Entknüpfen der {contentType} deaktiviert die Nutzung von geteilten {contentType} für diese Version, bis es wieder aktiviert wird.",
"p-2": "Um die Verknüpfung deiner {contentType} aufzuheben, wird der symbolische Link, der auf den {sharedHtml}-Ordner verweist, entfernt. Danach werden alle {contentType} aus dem geteilten Ordner in den {itemsHtml}-Ordner deiner Beat Saber-Version kopiert.",
"do-not-copy-contents": "Die {contentType} nicht kopieren",
"do-not-copy-contents-tip": "Wenn aktiviert, werden die {contentType} im geteilten Ordner nicht in deine Beat Saber-Version kopiert. Infolgedessen werden keine {contentType} in deiner Version verbleiben, nachdem die Verknüpfung aufgehoben wurde.",
"valid-btn": "Die {contentType} entknüpfen"
},
"download-maps": {
"search-btn": "Suchen",
"loading-maps": "Lade Maps...",
@@ -758,15 +863,22 @@
"add-folder": "Ordner hinzufügen",
"link-folder": "Ordner verknüpfen",
"unlink-folder": "Ordner-Verknüpfung aufheben",
"link-all": "Alle verlinken"
"link-all": "Alle verlinken",
"remove-from-the-list": "Aus der Liste entfernen"
}
},
"adding-shared-folder": {
"title": "Freigegebenen Ordner hinzufügen",
"description": "Beim Verknüpfen des Ordners \"{folder}\" können Probleme auftreten. Möchten Sie ihn wirklich hinzufügen?"
},
"create-launch-shortcut": {
"title": "Verknüpfung erstellen",
"desc": "Das Erstellen einer Verknüpfung ermöglicht es dir, Beat Saber mit den ausgewählten Optionen zu starten, ohne durch BSManager zu gehen.",
"launch-options": "Startoptionen",
"advanced-launch": "Erweiterter Start",
"valid-btn": "Verknüpfung erstellen"
"valid-btn": "Verknüpfung erstellen",
"create-steam-shortcut": "Steam-Verknüpfung erstellen",
"steam-shortcut-tippy": "Wenn aktiviert, wird anstelle einer Verknüpfung auf dem Desktop eine Verknüpfung in Steam erstellt."
},
"connect-to-meta": {
"title": "Mit Meta verbinden",
@@ -779,13 +891,12 @@
"stay": "Angemeldet bleiben",
"connect-to-meta": "Mit Meta verbinden"
},
"original-version-backup-oculus": {
"title": "Achtung",
"body": {
"must-be-installed-once": "Du musst Beat Saber mindestens einmal aus dem Oculus Store installiert haben, sonst könnte sich Beat Saber nach dem Start automatisch schließen.",
"will-backup": "Um diese Version zu starten, wird der ursprüngliche Installationsordner von Beat Saber in deiner Oculus-Bibliothek umbenannt und beim Schließen von Beat Saber automatisch wiederhergestellt."
},
"not-remind-me": "Nicht mehr erinnern",
"enable-oculus-sideloaded-apps": {
"title": "Sideloading aktivieren",
"info-1": "Um Beat Saber starten zu können, muss die Möglichkeit aktiviert werden, Sideloading-Apps auszuführen. BSManager wird Administratorrechte anfordern, um diese Funktion automatisch zu aktivieren.",
"info-2": "Die Sideloading-Funktion ermöglicht das Starten von Spielen, die sich außerhalb Ihres Oculus-Bibliotheksordners befinden.",
"info-3": "Nachdem das Sideloading aktiviert wurde, bleibt die Funktion aktiv, und Sie werden nicht mehr aufgefordert, sie zu aktivieren.",
"i-want-to-do-it-myself": "Ich möchte es selbst machen",
"understood": "Verstanden"
},
"enter-meta-token": {
@@ -819,9 +930,17 @@
"ask-install-path": {
"title": "Installations Ordner",
"choose-folder-description": "Wählen Sie den Ordner aus, der alle von BSManager heruntergeladenen Inhalte enthalten soll. (Versionen, Mods, Karten, Playlists, etc.)",
"choose-folder": "Ordner Wählen",
"default": "Standard",
"default-tooltip": "Standardmäßig in Ihrem persönlichen Ordner"
},
"choose-proton-folder": {
"title": "Proton-Ordner",
"proton-folder-description": "Unter Linux benötigt BSManager Proton, um zu funktionieren. Wählen Sie den Installationsordner von Proton, um fortzufahren.",
"proton-folder-placeholder": "Proton-Installationsordner",
"where-is-proton-installed": "Wo ist Proton installiert?"
},
"bs-version-outdated": {
"body": "Die Version {outdatedVersion} ist veraltet, und einige Mods oder Funktionen funktionieren möglicherweise nicht mehr wie erwartet. Bitte lade die neueste empfohlene Version ({recommendedVersion}) von Beat Saber herunter, um die neuesten Funktionen und Fehlerbehebungen zu nutzen."
}
},
"maps": {
@@ -832,7 +951,8 @@
"tags": "Stichwörter",
"specificities": "Allgemein",
"requirements": "Anforderungen",
"exclude": "Ausschließen"
"exclude": "Ausschließen",
"leaderboard": "Rangliste"
},
"map-types": {
"accuracy": "Präzision",
@@ -883,11 +1003,16 @@
},
"map-specificities": {
"automapper": "KI",
"ranked": "Ranked",
"curated": "Curated",
"verified": "Verifiziert",
"fullSpread": "Full Spread"
},
"map-leaderboard": {
"All": "Alle",
"Ranked": "Ranked",
"BeatLeader": "BeatLeader",
"ScoreSaber": "ScoreSaber"
},
"map-excludes": {
"installed": "Installiert"
},
@@ -975,86 +1100,6 @@
"no-models": "Keine Modelle gefunden.",
"no-internet": "Keine Internetverbindung.",
"error-occured": "Ein Fehler ist aufgetreten, versuche es später erneut."
},
"link-models": {
"avatar": {
"title": "Avatare verbinden",
"desc": "Das Verbinden von Avataren ermöglicht das Teilen von Avataren zwischen allen Versionen. Sobald verbunden, wird diese Version von den geteilten Avataren profitieren.",
"info": "Das Hinzufügen und Entfernen von Avataren wird ebenfalls geteilt.",
"keep-models": {
"label": "Avatare behalten",
"title": "Das Behalten der Avatare wird die Avatare der aktuellen Version in den Ordner der geteilten Avatare verschieben. Andernfalls gehen sie verloren."
},
"valid-btn": "Avatare verbinden"
},
"saber": {
"title": "Säbel verbinden",
"desc": "Das Verbinden von Säbeln ermöglicht das Teilen von Säbeln zwischen allen Versionen. Sobald verbunden, wird diese Version von den geteilten Säbeln profitieren.",
"info": "Das Hinzufügen und Entfernen von Säbeln wird ebenfalls geteilt.",
"keep-models": {
"label": "Säbel behalten",
"title": "Das Behalten der Säbel wird die Säbel der aktuellen Version in den Ordner der geteilten Säbel verschieben. Andernfalls gehen sie verloren."
},
"valid-btn": "Säbel verbinden"
},
"platform": {
"title": "Plattformen verbinden",
"desc": "Das Verbinden von Plattformen ermöglicht das Teilen von Plattformen zwischen allen Versionen. Sobald verbunden, wird diese Version von den geteilten Plattformen profitieren.",
"info": "Das Hinzufügen und Entfernen von Plattformen wird ebenfalls geteilt.",
"keep-models": {
"label": "Plattformen behalten",
"title": "Das Behalten der Plattformen wird die Plattformen der aktuellen Version in den Ordner der geteilten Plattformen verschieben. Andernfalls gehen sie verloren."
},
"valid-btn": "Plattformen verbinden"
},
"bloq": {
"title": "Bloqs verbinden",
"desc": "Das Verbinden von Bloqs ermöglicht das Teilen von Bloqs zwischen allen Versionen. Sobald verbunden, wird diese Version von den geteilten Bloqs profitieren.",
"info": "Das Hinzufügen und Entfernen von Bloqs wird ebenfalls geteilt.",
"keep-models": {
"label": "Bloqs behalten",
"title": "Das Behalten der Bloqs wird die Bloqs der aktuellen Version in den Ordner der geteilten Bloqs verschieben. Andernfalls gehen sie verloren."
},
"valid-btn": "Bloqs verbinden"
}
},
"unlink-models": {
"avatar": {
"title": "Avatare trennen",
"desc": "Achtung, das Trennen der Avatare wird die Nutzung der geteilten Avatare für diese Version nicht mehr ermöglichen.",
"keep-models": {
"label": "Avatare behalten",
"title": "Das Behalten der Avatare wird eine Kopie der geteilten Avatare für die aktuelle Version erstellen. Andernfalls wird kein Avatar für diese Version aufbewahrt."
},
"valid-btn": "Avatare trennen"
},
"saber": {
"title": "Säbel trennen",
"desc": "Achtung, das Trennen der Säbel wird die Nutzung der geteilten Säbel für diese Version nicht mehr ermöglichen.",
"keep-models": {
"label": "Säbel behalten",
"title": "Das Behalten der Säbel wird eine Kopie der geteilten Säbel für die aktuelle Version erstellen. Andernfalls wird kein Säbel für diese Version aufbewahrt."
},
"valid-btn": "Säbel trennen"
},
"platform": {
"title": "Plattformen trennen",
"desc": "Achtung, das Trennen der Plattformen wird die Nutzung der geteilten Plattformen für diese Version nicht mehr ermöglichen.",
"keep-models": {
"label": "Plattformen behalten",
"title": "Das Behalten der Plattformen wird eine Kopie der geteilten Plattformen für die aktuelle Version erstellen. Andernfalls wird keine Plattform für diese Version aufbewahrt."
},
"valid-btn": "Plattformen trennen"
},
"bloq": {
"title": "Bloqs trennen",
"desc": "Achtung, das Trennen der Bloqs wird die Nutzung der geteilten Bloqs für diese Version nicht mehr ermöglichen.",
"keep-models": {
"label": "Bloqs behalten",
"title": "Das Behalten der Bloqs wird eine Kopie der geteilten Bloqs für die aktuelle Version erstellen. Andernfalls wird kein Bloq für diese Version aufbewahrt."
},
"valid-btn": "Bloqs trennen"
}
}
},
"notifications": {
@@ -1064,10 +1109,6 @@
"go-to-mods": "Zu den Mods",
"not-remind": "Nicht mehr erinnern"
},
"prevent-for-models-breaks": {
"title": "Gebrochene Modelle",
"desc": "Seit dem Update der Beat Saber Engine sind alle benutzerdefinierten Modellmods defekt und müssen aktualisiert werden. Sie wurden noch nicht aktualisiert."
},
"export-success": {
"title": "Export abgeschlossen 🎉"
}
@@ -1135,14 +1176,6 @@
"stop-download": "Download stoppen",
"cancel-download": "Download abbrechen",
"open-file": "Datei öffnen",
"link-playlists": "Playlists verknüpfen",
"link-playlist-desc": "Das Verknüpfen von Playlists ermöglicht das Teilen von Playlists zwischen allen Versionen. Nach der Verknüpfung profitiert diese Version von geteilten Playlists.",
"link-playlist-info": "Das Hinzufügen und Löschen von Playlists wird ebenfalls geteilt.",
"keep-playlists": "Playlists behalten",
"keep-playlists-tip": "Wenn du Playlists behältst, werden die Playlists von der aktuellen Version in den Ordner für geteilte Playlists verschoben. Andernfalls gehen sie verloren.",
"unlink-playlists": "Playlists trennen",
"unlink-playlist-desc": "Achtung, das Trennen von Playlists verhindert die Nutzung geteilter Playlists für diese Version.",
"unlink-keep-playlists-tip": "Wenn du Playlists behältst, wird eine Kopie der geteilten Playlists für die aktuelle Version erstellt. Andernfalls werden keine Playlists für diese Version behalten.",
"delete-playlist-ask": "Playlist löschen?",
"delete-playlists-ask": "Playlists löschen?",
"delete-playlist-desc": "Bist du dir sicher, dass du die Playlist \"{playlistTitle}\" löschen möchtest?",
+236 -166
View File
@@ -8,6 +8,10 @@
"maps": "Maps",
"playlists": "Playlists",
"models": "Models",
"avatars": "Avatars",
"sabers": "Sabers",
"platforms": "Platforms",
"blocks": "Blocks",
"cancel": "Cancel",
"delete": "Delete",
"accept": "Accept",
@@ -15,7 +19,22 @@
"apply": "Apply",
"copy": "Copy",
"copied": "Copied!",
"confirm": "Confirm"
"confirm": "Confirm",
"choose-folder": "Choose folder",
"unknown": "An unknown error occurred ¯\\_(ツ)_/¯",
"warning": "Warning",
"continue": "Continue",
"shared": "Shared",
"pin": "Pin",
"unpin": "Unpin"
},
"generic": {
"env": {
"parse": "Could not properly parse the env var string."
}
},
"title-bar": {
"outdated": "outdated"
},
"nav-bar": {
"add-version": "Add a version",
@@ -34,10 +53,17 @@
"desktop-description": "First Person Flying Controller mode allows you to use WASD and the mouse to navigate around the menu in game. This makes testing much easier, because you don't have to put on your headset!",
"debug": "Debug Mode",
"debug-description": "Enables the output log window for IPA. This will show the debug console that mods use.",
"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": "Advanced launch",
"placeholder": "Additional arguments ex: --revert; --nowait"
}
"button": "Launch options",
"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.",
"map-editor": "Map Editor",
"map-editor-description": "Start the official Beat Saber map editor instead of the game.",
"proton-logs": "Proton Logs",
"proton-logs-description": "Enables the recording of proton logs for this Beat Saber install to \"{versionPath}\"."
},
"maps": {
"search-bar": {
@@ -70,6 +96,15 @@
"drop-zone": {
"text": "Import your maps",
"subtext": "Drop your zip files here to import your maps"
},
"sort": {
"name": "Name",
"song-author": "Song Author",
"map-author": "Map Author",
"bpm": "BPM",
"duration": "Duration",
"likes": "Likes",
"date-uploaded": "Date Uploaded"
}
},
"playlists": {
@@ -81,6 +116,13 @@
"drop-zone": {
"text": "Import your playlists",
"subtext": "Drop your \".bplist\" or \".json\" files here to import them"
},
"sort": {
"title": "Title",
"author": "Author",
"number-of-maps": "Number of Maps",
"duration": "Duration",
"notes-per-second": "NPS"
}
}
}
@@ -101,7 +143,9 @@
"latest": "Latest",
"description": "Description",
"dropdown": {
"uninstall-all": "Uninstall all"
"import-mods": "Import mods",
"uninstall-all": "Uninstall all",
"unselect-all": "Unselect all"
}
}
},
@@ -109,7 +153,19 @@
"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": {
"text": "Import your mods",
"subtext": "Drop your \"zip\" or \"dll\" files here to import them"
}
},
"dropdown": {
@@ -123,7 +179,7 @@
}
},
"available-versions": {
"title": "Select a version",
"title": "Download a version",
"steam-release": "Release page",
"dropdown": {
"refresh": "Refresh versions",
@@ -157,13 +213,15 @@
},
"installation-folder": {
"title": "Installation folder",
"description": "Change the folder that will contain all the content downloaded by BSManager.",
"choose-folder": "Choose folder"
"description": "Change the folder that will contain all the content downloaded by BSManager."
},
"proton-path": {
"title": "Proton path",
"description": "Change the path to the Proton binary",
"choose-file": "Choose file"
"proton-folder": {
"title": "Proton folder",
"description": "Change the folder to the Proton path. (eg. Proton - Experimental)",
"errors": {
"title": "Setting the Proton folder failed",
"invalid-folder": "Invalid Proton folder path"
}
},
"additional-content": {
"title": "Additional content",
@@ -180,21 +238,27 @@
"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": "English, United Kingdom",
"en-US": "English, USA",
"fr-FR": "French",
"es-ES": "Spanish",
"it-IT": "Italian",
"de-DE": "German",
"pt-BR": "Portuguese (Brazil)",
"ru-RU": "Russian",
"zh-CN": "Chinese (Simplified)",
"zh-TW": "Chinese (Traditional)",
"ja-JP": "Japanese"
"ja-JP": "Japanese",
"ko-KR": "Korean"
}
}
},
@@ -222,10 +286,6 @@
"open-logs": "Open logs"
}
},
"changelogs": {
"open" : "🚀 Check Out the Changelog!",
"not-founds": "😕 Oops, No Changelog Here!"
},
"advanced": {
"title": "Advanced",
"description": "Advanced settings for BSManager.",
@@ -238,7 +298,7 @@
"confirm-btn": "Yes I'm sure"
},
"error-notification": {
"message": "An error occur, unable to disable hardware acceleration."
"message": "An error occurred, unable to disable hardware acceleration."
}
},
"use-symlinks": {
@@ -250,7 +310,14 @@
"confirm-btn": "Yes I'm sure"
},
"error-notification": {
"message": "An error occur, unable to change symlinks settings."
"message": "An error occurred, unable to change symlinks settings."
}
},
"use-system-proxy": {
"title": "Use system proxy",
"description": "BSManager will make network requests through your system proxy.",
"error-notification": {
"message": "An error occurred, unable to change system proxy settings."
}
}
}
@@ -302,6 +369,8 @@
"msg": {
"401": "Steam doesn't seem to want to let us download Beat Saber 😢",
"404": "Unable to contact Steam servers.",
"ExeNotFoundWindows": "\"DepotDownloader.exe\" is missing. Please check if the executable is quarantined by your anti-virus.",
"ExeNotFoundLinux": "\"DepotDownloader\" executable is missing.",
"Password": "Password is invalid.",
"InvalidCredentials": "Invalid login credentials, unapproved connection, or too many login attempts.",
"NoManifest": "No manifest was found",
@@ -335,8 +404,8 @@
"UNABLE_TO_GET_MANIFEST": "Unable to obtain the manifest required for download.",
"VERIFY_INTEGRITY_FAILED": "An error occurred during file verification.",
"SOME_FILES_FAILED_TO_DOWNLOAD": "Some files failed to download.",
"OCULUS_LOGIN_TIMED_OUT": "The login token took too long to retrieve.",
"OCULUS_LOGIN_WINDOW_CLOSED_BY_USER": "The Meta login window was closed.",
"META_LOGIN_TIMED_OUT": "The login token took too long to retrieve.",
"META_LOGIN_WINDOW_CLOSED_BY_USER": "The Meta login window was closed.",
"NO_META_AUTH_TOKEN": "Unable to retrieve the Meta login token required for download.",
"UNKNOWN_ERROR": "An unknown error occurred."
}
@@ -423,11 +492,13 @@
"success": {
"titles": {
"BS_LAUNCHING": "Launching...🚀",
"STEAM_LAUNCHING": "Steam is launching!"
"STEAM_LAUNCHING": "Steam is launching!",
"SKIPPING_STEAM_LAUNCH": "Skipping Steam launch"
},
"msg": {
"BS_LAUNCHING": "Don't forget to warm up 😉",
"STEAM_LAUNCHING": "Beat Saber will automatically launch after Steam."
"STEAM_LAUNCHING": "Beat Saber will automatically launch after Steam.",
"SKIPPING_STEAM_LAUNCH": "I hope you know what you're doing :)"
}
},
"errors": {
@@ -437,9 +508,11 @@
"OCULUS_NOT_RUNNING": "Oculus is not running",
"BS_ALREADY_RUNNING": "Beat Saber already running",
"EXE_NOT_FINDED": "Missing files",
"PROTON_NOT_SET": "Proton path not set",
"PROTON_NOT_SET": "Proton folder not set",
"PROTON_NOT_FOUND": "Proton binary not found",
"EXIT": "Abrupt stop",
"OCULUS_LIB_NOT_FOUND": "Oculus library not found"
"OCULUS_LIB_NOT_FOUND": "Oculus library not found",
"ORIGINAL_OCULUS_NOT_INSTALLED": "Original Oculus version not found"
},
"msg": {
"UNKNOWN_ERROR": "An unknown error has occurred.",
@@ -449,7 +522,9 @@
"EXE_NOT_FINDED": "Some files seem to be missing, try to verify the files.",
"EXIT": "BeatSaber stopped abruptly, tries to check the files.",
"OCULUS_LIB_NOT_FOUND": "Check that the Oculus application is properly installed, and that the libraries are correctly defined in Oculus.",
"PROTON_NOT_SET": "Set the Proton path in settings"
"PROTON_NOT_SET": "Set the Proton path in settings.",
"PROTON_NOT_FOUND": "Set the Proton path in settings.",
"ORIGINAL_OCULUS_NOT_INSTALLED": "Beat Saber must be installed from the Oculus app before opening."
},
"actions": {
"STEAM_NOT_RUNNING": "Launch Steam"
@@ -516,6 +591,17 @@
"no-mods": "No mods are installed in this version 😑"
}
}
},
"import-mod": {
"titles": {
"success": "Mods import completed",
"error": "An error occurred during the mods import"
},
"msgs": {
"success": "Mods successfully imported.",
"some-success": "Some mods were successfully imported.",
"no-dlls": "The file(s) do not contain any \"dll\" files."
}
}
},
"maps": {
@@ -570,18 +656,32 @@
"EPERM": "BSManager does not have the necessary permissions to link the folder.",
"EACCES": "BSManager does not have the necessary permissions to link the folder.",
"ENOSPC": "The disk is full, make some space and try again.",
"UNKNOWN_ERROR":"An unknown error has occurred while linking the folder."
"LinkingNotSupported": "Folder linking is not supported on this file system.",
"UNKNOWN_ERROR": "An unknown error has occurred while linking the folder."
}
},
"adding-error": {
"title": "Adding shared folder failed",
"msg": "You can't add \"{folder}\" to shared folders."
}
},
"create-launch-shortcut": {
"success": {
"title": "Shortcut created",
"msg": "The shortcut has been created on the desktop."
"msg": "The shortcut has been created on the desktop.",
"msg-steam": "The shortcut has been created in the Steam library."
},
"error": {
"msg": "An error occurred while creating the shortcut."
}
},
"bs-version-oudated": {
"title": "Version Outdated",
"msg": "This Beat Saber version is outdated, use the recommended version to enjoy the latest features and bugfixes",
"actions": {
"do-not-remind": "Do not remind me",
"ok": "Ok"
}
}
},
"modals": {
@@ -718,32 +818,25 @@
"multiple": "These maps will also be removed from versions using shared maps"
}
}
},
"link-maps": {
"title": "Link maps",
"desc": "Linking maps allows sharing maps between all versions with this feature enabled. Once linked, this version will benefit from shared maps.",
"info": "Adding and deleting maps will also be shared",
"keep-maps": {
"label": "Keep maps",
"title": "Keeping maps will copy all maps from the current version to the shared maps folder. Otherwise, no maps will be kept from this version and they will be lost."
},
"valid-btn": "Link maps"
},
"unlink-maps": {
"title": "Unlink maps",
"desc": "Be careful, unlinking maps will disable the use of shared maps for this version, until it is reenabled.",
"keep-maps": {
"label": "Keep maps",
"title": "Keeping maps will copy all maps from the shared folder to the current version after unlinking. Maps will not be lost if this is disabled."
},
"valid-btn": "Unlink maps"
},
"delete-duplicate-maps": {
"title": "Delete maps?",
"desc": "Only the map \"{map}\" is a duplicate. Are you sure you want to delete it?",
"desc-plural": "{nb} duplicate maps have been found. Are you sure you want to delete them?"
}
},
"link-contents":{
"title": "Link {contentType}",
"p-1": "Linking {contentType} allows sharing {contentType} between all versions with this feature enabled. Once linked, this version will benefit from shared {contentType}.",
"p-2": "In order to enjoy the linking feature, all your {itemsHtml} will be moved to the {sharedHtml} folder. After that, a symbolic link pointing to the shared {contentType} folder will replace your original {contentType} folder.",
"warning": "Please note that any changes affecting {contentType} will also affect all versions with this feature enabled.",
"what-is-a-symbolic-link": "What is a symbolic link?",
"i-need-help": "I need help",
"valid-btn": "Link {contentType}"
},
"unlink-contents":{
"title": "Unlink {contentType}",
"p-1": "Be careful, unlinking {contentType} will disable the use of shared {contentType} for this version, until it is reenabled.",
"p-2": "In order to unlink your maps, the symbolic link pointing to the {sharedHtml} will be removed. After that, all maps in the shared folder will be copied to the {itemsHtml} folder of your Beat Saber version.",
"do-not-copy-contents": "Do not copy {contentType}",
"do-not-copy-contents-tip": "If enabled, {contentType} in the shared folder will not be copied to your Beat Saber version. As a result, no {contentType} will remain in your Beat Saber version after unlinking.",
"valid-btn": "Unlink {contentType}"
},
"download-maps": {
"search-btn": "Search",
"loading-maps": "Loading maps...",
@@ -765,15 +858,22 @@
"add-folder": "Add Folder",
"link-folder": "Link Folder",
"unlink-folder": "Unlink Folder",
"link-all": "Link all"
"link-all": "Link all",
"remove-from-the-list": "Remove from the list"
}
},
"adding-shared-folder": {
"title": "Adding Shared Folder",
"description": "You might experience issues when linking the \"{folder}\" folder. Are you sure you want to add it?"
},
"create-launch-shortcut": {
"title": "Create a shortcut",
"desc": "Creating a shortcut will allow you to start Beat Saber with the chosen options without going through BSManager.",
"launch-options": "Launch options",
"advanced-launch": "Advanced launch",
"valid-btn": "Create the shortcut"
"valid-btn": "Create the shortcut",
"create-steam-shortcut": "Create a Steam shortcut",
"steam-shortcut-tippy": "If enabled, instead of creating a shortcut on the desktop, it will be created in Steam."
},
"connect-to-meta": {
"title": "Connect to Meta",
@@ -786,13 +886,12 @@
"stay": "Remember me",
"connect-to-meta": "Connect to Meta"
},
"original-version-backup-oculus": {
"title": "Warning",
"body": {
"must-be-installed-once": "You must have installed Beat Saber at least once from the Oculus Store, otherwise Beat Saber might automatically close after launching.",
"will-backup": "To launch this version, the original installation folder of Beat Saber located in your Oculus library will be renamed and will be automatically restored when Beat Saber is closed."
},
"not-remind-me": "Do not remind me",
"enable-oculus-sideloaded-apps": {
"title": "Enable Sideloading",
"info-1": "In order to launch Beat Saber, the ability to run sideloaded apps must be enabled. BSManager will request administrator rights to enable this feature automatically.",
"info-2": "The sideloaded apps feature allows launching games located outside your Oculus library folder.",
"info-3": "After sideloading is activated, the feature will remain active, and you will no longer be prompted to enable it.",
"i-want-to-do-it-myself": "I want to do it myself",
"understood": "Understood"
},
"enter-meta-token": {
@@ -826,20 +925,29 @@
"ask-install-path": {
"title": "Installation folder",
"choose-folder-description": "Choose the folder that will contain all the content downloaded by BSManager. (versions, mods, maps, playlists, etc.)",
"choose-folder": "Choose folder",
"default": "Default",
"default-tooltip": "Defaults to your home folder"
},
"choose-proton-folder": {
"title": "Proton Folder",
"proton-folder-description": "On Linux, BSManager requires Proton to work. Choose the Proton installation folder to continue.",
"proton-folder-placeholder": "Proton installation folder",
"where-is-proton-installed": "Where is Proton installed?"
},
"bs-version-outdated": {
"body": "The version {outdatedVersion} is outdated, and some mods or features may no longer work as expected. Please download the latest recommended version ({recommendedVersion}) of Beat Saber to enjoy the latest features and bugfixes."
}
},
"maps": {
"map-filter-panel": {
"duration": "Duration",
"nps" : "Notes Per Second",
"nps": "Notes Per Second",
"njs": "Note Jump Speed",
"tags": "tags",
"specificities": "general",
"requirements": "requirements",
"exclude": "exclude"
"exclude": "exclude",
"leaderboard": "leaderboard"
},
"map-types": {
"accuracy": "accuracy",
@@ -890,11 +998,16 @@
},
"map-specificities": {
"automapper": "AI",
"ranked": "ranked",
"curated": "curated",
"verified": "verified",
"fullSpread": "full spread"
},
"map-leaderboard": {
"All": "All",
"Ranked": "Ranked",
"BeatLeader": "BeatLeader",
"ScoreSaber": "ScoreSaber"
},
"map-excludes": {
"installed": "installed"
},
@@ -909,11 +1022,11 @@
"by": "By {songAutor}",
"mapped-by": "mapped by",
"delete": "Delete",
"preview" : "Preview map",
"bsr-code" : "BSR code",
"download" : "Download map",
"downloading" :"Downloading map",
"cancel-download" : "Cancel download",
"preview": "Preview map",
"bsr-code": "BSR code",
"download": "Download map",
"downloading": "Downloading map",
"cancel-download": "Cancel download",
"hightlight-difficulty": "Highlight difficulty"
}
},
@@ -981,87 +1094,7 @@
},
"no-models": "No models found.",
"no-internet": "No internet connection.",
"error-occured": "An error occurred, try again later."
},
"link-models": {
"avatar": {
"title": "Link Avatars",
"desc": "Linking avatars allows sharing avatars between all versions with this feature enabled. Once linked, this version will benefit from shared avatars.",
"info": "Adding and deleting avatars will also be shared",
"keep-models": {
"label": "Keep Avatars",
"title": "Keeping avatars will copy all avatars from the current version to the shared avatars folder. Otherwise, no avatars will be kept from this version and they will be lost."
},
"valid-btn": "Link Avatars"
},
"saber": {
"title": "Link Sabers",
"desc": "Linking sabers allows sharing sabers between all versions with this feature enabled. Once linked, this version will benefit from shared sabers.",
"info": "Adding and deleting sabers will also be shared",
"keep-models": {
"label": "Keep Sabers",
"title": "Keeping sabers will copy all sabers from the current version to the shared sabers folder. Otherwise, no sabers will be kept from this version and they will be lost."
},
"valid-btn": "Link Sabers"
},
"platform": {
"title": "Link Platforms",
"desc": "Linking platforms allows sharing platforms between all versions with this feature enabled. Once linked, this version will benefit from shared platforms.",
"info": "Adding and deleting platforms will also be shared",
"keep-models": {
"label": "Keep Platforms",
"title": "Keeping platforms will copy all platforms from the current version to the shared platforms folder. Otherwise, no platforms will be kept from this version and they will be lost."
},
"valid-btn": "Link Platforms"
},
"bloq": {
"title": "Link Bloqs",
"desc": "Linking bloqs allows sharing bloqs between all versions with this feature enabled. Once linked, this version will benefit from shared bloqs.",
"info": "Adding and deleting bloqs will also be shared",
"keep-models": {
"label": "Keep Bloqs",
"title": "Keeping bloqs will copy all bloqs from the current version to the shared bloqs folder. Otherwise, no bloqs will be kept from this version and they will be lost."
},
"valid-btn": "Link Bloqs"
}
},
"unlink-models": {
"avatar": {
"title": "Unlink Avatars",
"desc": "Be careful, unlinking avatars will disable the use of shared avatars for this version, until it is reenabled.",
"keep-models": {
"label": "Keep Avatars",
"title": "Keeping avatars will copy all avatars from the shared folder to the current version after unlinking. Avatars will not be lost if this is disabled."
},
"valid-btn": "Unlink Avatars"
},
"saber": {
"title": "Unlink Sabers",
"desc": "Be careful, unlinking sabers will disable the use of shared sabers for this version, until it is reenabled.",
"keep-models": {
"label": "Keep Sabers",
"title": "Keeping sabers will copy all sabers from the shared folder to the current version after unlinking. Sabers will not be lost if this is disabled."
},
"valid-btn": "Unlink Sabers"
},
"platform": {
"title": "Unlink Platforms",
"desc": "Be careful, unlinking platforms will disable the use of shared platforms for this version, until it is reenabled.",
"keep-models": {
"label": "Keep Platforms",
"title": "Keeping platforms will copy all platforms from the shared folder to the current version after unlinking. Platforms will not be lost if this is disabled."
},
"valid-btn": "Unlink Platforms"
},
"bloq": {
"title": "Unlink Bloqs",
"desc": "Be careful, unlinking bloqs will disable the use of shared bloqs for this version, until it is reenabled.",
"keep-models": {
"label": "Keep Bloqs",
"title": "Keeping bloqs will copy all bloqs from the shared folder to the current version after unlinking. Bloqs will not be lost if this is disabled."
},
"valid-btn": "Unlink Bloqs"
}
"error-occurred": "An error occurred, try again later."
}
},
"notifications": {
@@ -1071,10 +1104,6 @@
"go-to-mods": "Go to mods",
"not-remind": "Don't remind me"
},
"prevent-for-models-breaks": {
"title": "Broken models",
"desc": "Since the Beat Saber engine update, all custom model mods have broken and need to be updated. They have not been updated yet."
},
"export-success": {
"title": "Export completed 🎉"
}
@@ -1142,14 +1171,6 @@
"stop-download": "Stop download",
"cancel-download": "Cancel download",
"open-file": "Open file",
"link-playlists": "Link playlists",
"link-playlist-desc": "Linking playlists allows sharing playlists between all versions. Once linked, this version will benefit from shared playlists",
"link-playlist-info": "Adding and deleting playlists will also be shared",
"keep-playlists": "Keep playlists",
"keep-playlists-tip": "Keeping playlists will move the playlists from the current version to the shared playlists folder. Otherwise, they will be lost",
"unlink-playlists": "Unlink playlists",
"unlink-playlist-desc": "Warning, unlinking playlists will no longer allow the use of shared playlists for this version.",
"unlink-keep-playlists-tip": "Keeping playlists will create a copy of shared playlists for the current version. Otherwise, no playlists will be kept for this version.",
"delete-playlist-ask": "Delete playlist?",
"delete-playlists-ask": "Delete playlists?",
"delete-playlist-desc": "Are you sure you want to delete the playlist \"{playlistTitle}\"?",
@@ -1244,8 +1265,57 @@
}
},
"dateformat": {
"dayNames": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
"monthNames": ["Jan", "Feb", "Mar", "Apr", "May", "June", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
"timeNames": ["a", "p", "am", "pm", "A", "P", "AM", "PM"]
"dayNames": [
"Sun",
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat",
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"monthNames": [
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"June",
"Jul",
"Aug",
"Sept",
"Oct",
"Nov",
"Dec",
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"timeNames": [
"a",
"p",
"am",
"pm",
"A",
"P",
"AM",
"PM"
]
}
}
+234 -152
View File
@@ -8,6 +8,10 @@
"maps": "Mapas",
"playlists": "Playlists",
"models": "Modelos",
"avatars": "Avatares",
"sabers": "Sables",
"platforms": "Plataformas",
"blocks": "Bloques",
"cancel": "Cancelar",
"delete": "Borrar",
"accept": "Aceptar",
@@ -15,7 +19,22 @@
"apply": "Aplicar",
"copy": "Copiar",
"copied": "¡Copiado!",
"confirm": "Confirmar"
"confirm": "Confirmar",
"choose-folder": "Elige la carpeta",
"unknown": "Se ha producido un error desconocido ¯\\_(ツ)_/¯",
"warning": "Advertencia",
"continue": "Continuar",
"shared": "Compartido",
"pin": "Fijar",
"unpin": "Desfijar"
},
"generic": {
"env": {
"parse": "No se pudo analizar correctamente la cadena de la variable de entorno."
}
},
"title-bar": {
"outdated": "obsoleto"
},
"nav-bar": {
"add-version": "Agregar una versión",
@@ -34,10 +53,17 @@
"desktop-description": "El modo FPFC te permite usar WASD y el mouse para navegar por el menú en juego. Esto hace que las pruebas sean mucho más fáciles, ¡porque no tienes que ponerte las gafas VR!",
"debug": "Modo Depuración",
"debug-description": "Habilita la ventana de registro de salida para IPA. Esto mostrará la consola de depuración que usan los mods.",
"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 avanzadas",
"placeholder": "Argumentos adicionales ej: --revert; --no-wait"
}
"button": "Opciones de lanzamiento",
"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.",
"map-editor": "Editor de mapas",
"map-editor-description": "Inicia el editor oficial de mapas de Beat Saber en lugar del juego.",
"proton-logs": "Registros de Proton",
"proton-logs-description": "Habilita el registro de los logs de Proton para esta instalación de Beat Saber en \"{versionPath}\"."
},
"maps": {
"search-bar": {
@@ -70,6 +96,15 @@
"drop-zone": {
"text": "Importar tus mapas",
"subtext": "Suelta tus archivos zip aquí para importar tus mapas"
},
"sort": {
"name": "Nombre",
"song-author": "Autor de la canción",
"map-author": "Autor del mapa",
"bpm": "BPM",
"duration": "Duración",
"likes": "Me gusta",
"date-uploaded": "Fecha de subida"
}
},
"playlists": {
@@ -81,6 +116,13 @@
"drop-zone": {
"text": "Importa tus listas de reproducción",
"subtext": "Suelta tus archivos \".bplist\" o \".json\" aquí para importarlos"
},
"sort": {
"title": "Título",
"author": "Autor",
"number-of-maps": "Número de mapas",
"duration": "Duración",
"notes-per-second": "NPS"
}
}
}
@@ -101,7 +143,9 @@
"latest": "Último",
"description": "Descripción",
"dropdown": {
"uninstall-all": "Desinstalar todos"
"import-mods": "Importar mods",
"uninstall-all": "Desinstalar todos",
"unselect-all": "Deseleccionar todo"
}
}
},
@@ -109,7 +153,19 @@
"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": {
"text": "Importa tus mods",
"subtext": "Coloca tus archivos \"zip\" o \"dll\" aquí para importarlos"
}
},
"dropdown": {
@@ -123,7 +179,7 @@
}
},
"available-versions": {
"title": "Selecciona una versión",
"title": "Descargar una versión",
"steam-release": "Anuncio en Steam",
"dropdown": {
"refresh": "Actualizar las versiones",
@@ -157,8 +213,15 @@
},
"installation-folder": {
"title": "Carpeta de instalación",
"description": "Cambiar la carpeta que contendrá todo el contenido descargado por BSManager.",
"choose-folder": "Elige la carpeta"
"description": "Cambiar la carpeta que contendrá todo el contenido descargado por BSManager."
},
"proton-folder": {
"title": "Carpeta de Proton",
"description": "Cambia la carpeta a la ruta de Proton. (por ejemplo, Proton - Experimental)",
"errors": {
"title": "Falló al configurar la carpeta de Proton",
"invalid-folder": "Ruta de carpeta de Proton no válida"
}
},
"additional-content": {
"title": "Contenido adicional",
@@ -175,21 +238,27 @@
"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": "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",
"ja-JP": "Japonés"
"ja-JP": "Japonés",
"ko-KR": "Coreano"
}
}
},
@@ -217,10 +286,6 @@
"open-logs": "Abrir los registros"
}
},
"changelogs": {
"open" : "🚀 ¡Descubre lo nuevo en el Changelog!",
"not-founds": "😕 Uy, ¡Changelog no encontrado!"
},
"advanced": {
"title": "Avanzados",
"description": "Configuraciones avanzadas para BSManager.",
@@ -247,6 +312,13 @@
"error-notification": {
"message": "Ocurrió un error, no se pueden cambiar los ajustes de los enlaces simbólicos."
}
},
"use-system-proxy": {
"title": "Usar proxy del sistema",
"description": "BSManager realizará solicitudes de red a través de su proxy del sistema.",
"error-notification": {
"message": "Ocurrió un error, no se pueden cambiar los ajustes del proxy del sistema."
}
}
}
}
@@ -297,6 +369,8 @@
"msg": {
"401": "Parece que Steam no quiere dejarnos descargar Beat Saber 😢",
"404": "No se puede contactar con los servidores de Steam",
"ExeNotFoundWindows": "Falta \"DepotDownloader.exe\". Por favor, verifique si el ejecutable está en cuarentena por su antivirus.",
"ExeNotFoundLinux": "Falta el ejecutable de \"DepotDownloader\".",
"Password": "La contraseña es inválida.",
"InvalidCredentials": "Credenciales de inicio de sesión inválidas, conexión no aprobada o demasiados intentos de inicio de sesión.",
"NoManifest": "No se ha encontrado el manifiesto",
@@ -330,8 +404,8 @@
"UNABLE_TO_GET_MANIFEST": "Imposible obtener el manifiesto necesario para la descarga.",
"VERIFY_INTEGRITY_FAILED": "Se produjo un error durante la verificación de archivos.",
"SOME_FILES_FAILED_TO_DOWNLOAD": "Algunos archivos no pudieron ser descargados.",
"OCULUS_LOGIN_TIMED_OUT": "El token de inicio de sesión tardó demasiado en recuperarse.",
"OCULUS_LOGIN_WINDOW_CLOSED_BY_USER": "La ventana de inicio de sesión de Meta fue cerrada.",
"META_LOGIN_TIMED_OUT": "El token de inicio de sesión tardó demasiado en recuperarse.",
"META_LOGIN_WINDOW_CLOSED_BY_USER": "La ventana de inicio de sesión de Meta fue cerrada.",
"NO_META_AUTH_TOKEN": "Imposible recuperar el token de inicio de sesión de Meta necesario para la descarga.",
"UNKNOWN_ERROR": "Se produjo un error desconocido."
}
@@ -418,11 +492,13 @@
"success": {
"titles": {
"BS_LAUNCHING": "Lanzamiento...🚀",
"STEAM_LAUNCHING": "¡Steam se está iniciando!"
"STEAM_LAUNCHING": "¡Steam se está iniciando!",
"SKIPPING_STEAM_LAUNCH": "Saltando el lanzamiento de Steam"
},
"msg": {
"BS_LAUNCHING": "No olvides calentar 😉",
"STEAM_LAUNCHING": "Beat Saber se iniciará automáticamente después de Steam."
"STEAM_LAUNCHING": "Beat Saber se iniciará automáticamente después de Steam.",
"SKIPPING_STEAM_LAUNCH": "Espero que sepas lo que estás haciendo :)"
}
},
"errors": {
@@ -432,8 +508,11 @@
"OCULUS_NOT_RUNNING": "Oculus no funciona",
"BS_ALREADY_RUNNING": "Beat Saber ya está en marcha",
"EXE_NOT_FINDED": "Archivos no encontrados",
"PROTON_NOT_SET": "Carpeta de Proton no establecida",
"PROTON_NOT_FOUND": "Binario de Proton no encontrado",
"EXIT": "Parada abrupta",
"OCULUS_LIB_NOT_FOUND": "Librería Oculus no encontrada"
"OCULUS_LIB_NOT_FOUND": "Librería Oculus no encontrada",
"ORIGINAL_OCULUS_NOT_INSTALLED": "No se encontró la versión original de Oculus"
},
"msg": {
"UNKNOWN_ERROR": "Se ha producido un error desconocido.",
@@ -442,7 +521,10 @@
"BS_ALREADY_RUNNING": "Cierra Beat Saber antes de volver a iniciarlo.",
"EXE_NOT_FINDED": "Parece que faltan algunos archivos, intenta verificar los archivos.",
"EXIT": "Beat Saber se detuvo abruptamente, trata de verificar los archivos.",
"OCULUS_LIB_NOT_FOUND": "Verifica que la aplicación Oculus esté correctamente instalada y que las librerías estén bien definidas en Oculus."
"OCULUS_LIB_NOT_FOUND": "Verifica que la aplicación Oculus esté correctamente instalada y que las librerías estén bien definidas en Oculus.",
"PROTON_NOT_SET": "Establece la ruta de Proton en la configuración.",
"PROTON_NOT_FOUND": "Establece la ruta de Proton en la configuración.",
"ORIGINAL_OCULUS_NOT_INSTALLED": "Beat Saber debe instalarse desde la aplicación de Oculus antes de abrirlo."
},
"actions": {
"STEAM_NOT_RUNNING": "Iniciar Steam"
@@ -509,6 +591,17 @@
"no-mods": "No hay mods instalados en esta versión 😑"
}
}
},
"import-mod": {
"titles": {
"success": "Importación de mods completada",
"error": "Ocurrió un error durante la importación de mods"
},
"msgs": {
"success": "Mods importados con éxito.",
"some-success": "Algunos mods fueron importados con éxito.",
"no-dlls": "El(los) archivo(s) no contienen archivos \"dll\"."
}
}
},
"maps": {
@@ -563,18 +656,32 @@
"EPERM": "BSManager no tiene los permisos necesarios para enlazar la carpeta.",
"EACCES": "BSManager no tiene los permisos necesarios para enlazar la carpeta.",
"ENOSPC": "El disco está lleno, libera espacio e inténtalo de nuevo.",
"LinkingNotSupported": "El enlace de carpetas no es compatible con este sistema de archivos.",
"UNKNOWN_ERROR": "Se ha producido un error desconocido al enlazar la carpeta."
}
},
"adding-error": {
"title": "Error al agregar una carpeta compartida",
"msg": "No puedes agregar \"{folder}\" a las carpetas compartidas."
}
},
"create-launch-shortcut": {
"success": {
"title": "Acceso directo creado",
"msg": "El acceso directo se ha creado en el escritorio."
"msg": "El acceso directo se ha creado en el escritorio.",
"msg-steam": "El acceso directo se ha creado en la biblioteca de Steam."
},
"error": {
"msg": "Se produjo un error al crear el acceso directo."
}
},
"bs-version-oudated": {
"title": "Versión desactualizada",
"msg": "Esta versión de Beat Saber está desactualizada. Usa la versión recomendada para disfrutar de las últimas características y correcciones.",
"actions": {
"do-not-remind": "No volver a recordármelo",
"ok": "Ok"
}
}
},
"modals": {
@@ -712,31 +819,29 @@
}
}
},
"link-maps": {
"title": "Vincular mapas",
"desc": "La vinculación de mapas permite compartir mapas entre todas las versiones. Una vez vinculada, esta versión se beneficiará de los mapas compartidos",
"info": "También se compartirá la adición y eliminación de mapas.",
"keep-maps": {
"label": "Mantener mapas",
"title": "Mantener mapas moverá los mapas de la versión actual a la carpeta de mapas compartidos. De lo contrario, se perderán"
},
"valid-btn": "Vincular mapas"
},
"unlink-maps": {
"title": "Desvincular mapas",
"desc": "Ten en cuenta que desvincular mapas no permitirá el uso de mapas compartidos para esta versión.",
"keep-maps": {
"label": "Mantener mapas",
"title": "Mantener los mapas creará una copia de los mapas compartidos para la versión actual. De lo contrario, no se mantendrá ningún mapa para esta versión."
},
"valid-btn": "Desvincular mapas"
},
"delete-duplicate-maps": {
"title": "¿Borrar mapas?",
"desc": "Solo el mapa \"{map}\" está duplicado. ¿Estás seguro de que quieres eliminarlo?",
"desc-plural": "Se han encontrado {nb} mapas duplicados. ¿Estás seguro de que quieres eliminarlos?"
}
},
"link-contents": {
"title": "Vincular los {contentType}",
"p-1": "Vincular los {contentType} permite compartir los {contentType} entre todas las versiones que tengan esta función activada. Una vez vinculados, esta versión se beneficiará de los {contentType} compartidos.",
"p-2": "Para disfrutar de la función de vinculación, todos tus {itemsHtml} se moverán a la carpeta {sharedHtml}. Después de eso, un enlace simbólico que apunta a la carpeta compartida de {contentType} reemplazará tu carpeta original de {contentType}.",
"warning": "Ten en cuenta que cualquier cambio que afecte a los {contentType} también afectará a todas las versiones con esta función activada.",
"what-is-a-symbolic-link": "¿Qué es un enlace simbólico?",
"i-need-help": "Necesito ayuda",
"valid-btn": "Vincular los {contentType}"
},
"unlink-contents": {
"title": "Desvincular los {contentType}",
"p-1": "Ten cuidado, desvincular los {contentType} desactivará el uso de los {contentType} compartidos para esta versión, hasta que se vuelva a activar.",
"p-2": "Para desvincular tus {contentType}, se eliminará el enlace simbólico que apunta a la carpeta {sharedHtml}. Después de eso, todos los {contentType} en la carpeta compartida se copiarán a la carpeta {itemsHtml} de tu versión de Beat Saber.",
"do-not-copy-contents": "No copiar los {contentType}",
"do-not-copy-contents-tip": "Si se activa, los {contentType} en la carpeta compartida no se copiarán a tu versión de Beat Saber. Como resultado, ningún {contentType} permanecerá en tu versión de Beat Saber después de desvincular.",
"valid-btn": "Desvincular los {contentType}"
},
"download-maps": {
"search-btn": "Buscar",
"loading-maps": "Cargando mapas...",
@@ -758,15 +863,22 @@
"add-folder": "Añadir Carpeta",
"link-folder": "Enlazar Carpeta",
"unlink-folder": "Desenlazar Carpeta",
"link-all": "Enlazar todo"
"link-all": "Enlazar todo",
"remove-from-the-list": "Eliminar de la lista"
}
},
"adding-shared-folder": {
"title": "Agregar una carpeta compartida",
"description": "Es posible que experimentes problemas al vincular la carpeta \"{folder}\". ¿Estás seguro de que deseas agregarla?"
},
"create-launch-shortcut": {
"title": "Crear un atajo",
"desc": "Crear un atajo te permitirá iniciar Beat Saber con las opciones seleccionadas sin pasar por BSManager.",
"launch-options": "Opciones de lanzamiento",
"advanced-launch": "Lanzamiento avanzado",
"valid-btn": "Crear el atajo"
"valid-btn": "Crear el atajo",
"create-steam-shortcut": "Crear un atajo directo de Steam",
"steam-shortcut-tippy": "Si está activado, en lugar de crear un atajo directo en el escritorio, se creará en Steam."
},
"connect-to-meta": {
"title": "Conexión a Meta",
@@ -779,13 +891,12 @@
"stay": "Recuérdame",
"connect-to-meta": "Conectarse a Meta"
},
"original-version-backup-oculus": {
"title": "Atención",
"body": {
"must-be-installed-once": "Debes haber instalado Beat Saber al menos una vez desde la Oculus Store, de lo contrario, Beat Saber podría cerrarse automáticamente después de iniciar.",
"will-backup": "Para lanzar esta versión, la carpeta de instalación original de Beat Saber ubicada en tu biblioteca de Oculus será renombrada y se restaurará automáticamente al cerrar Beat Saber."
},
"not-remind-me": "No volver a recordármelo",
"enable-oculus-sideloaded-apps": {
"title": "Habilitar Sideloading",
"info-1": "Para poder iniciar Beat Saber, se debe habilitar la capacidad de ejecutar aplicaciones en sideloading. BSManager solicitará permisos de administrador para habilitar esta función automáticamente.",
"info-2": "La función de sideloading permite iniciar juegos ubicados fuera de la carpeta de la biblioteca de Oculus.",
"info-3": "Una vez que se active el sideloading, la función permanecerá activa y ya no se le pedirá que la habilite.",
"i-want-to-do-it-myself": "Quiero hacerlo yo mismo",
"understood": "Entendido"
},
"enter-meta-token": {
@@ -819,20 +930,29 @@
"ask-install-path": {
"title": "Carpeta de instalación",
"choose-folder-description": "Elija la carpeta que contendrá todo el contenido descargado por BSManager. (versiones, mods, mapas, listas de reproducción, etc.)",
"choose-folder": "Elige la carpeta",
"default": "Predeterminado",
"default-tooltip": "Por defecto, en su carpeta personal"
},
"choose-proton-folder": {
"title": "Carpeta de Proton",
"proton-folder-description": "En Linux, BSManager necesita Proton para funcionar. Elija la carpeta de instalación de Proton para continuar.",
"proton-folder-placeholder": "Carpeta de instalación de Proton",
"where-is-proton-installed": "¿Dónde está instalado Proton?"
},
"bs-version-outdated": {
"body": "La versión {outdatedVersion} está obsoleta, y algunos mods o funciones pueden no funcionar como se espera. Por favor, descarga la última versión recomendada ({recommendedVersion}) de Beat Saber para disfrutar de las últimas funciones y correcciones de errores."
}
},
"maps": {
"map-filter-panel": {
"duration": "Duración",
"nps" : "Notas Por Segundo",
"nps": "Notas Por Segundo",
"njs": "Velocidad de salto de nota",
"tags": "tags",
"specificities": "general",
"requirements": "requisitos",
"exclude": "excluir"
"exclude": "excluir",
"leaderboard": "tabla de clasificación"
},
"map-types": {
"accuracy": "precisión",
@@ -883,11 +1003,16 @@
},
"map-specificities": {
"automapper": "IA",
"ranked": "rankado",
"curated": "recomendado",
"verified": "verificado",
"fullSpread": "panel completo"
},
"map-leaderboard": {
"All": "Todos",
"Ranked": "Rankado",
"BeatLeader": "BeatLeader",
"ScoreSaber": "ScoreSaber"
},
"map-excludes": {
"installed": "instalado"
},
@@ -902,11 +1027,11 @@
"by": "Por {songAutor}",
"mapped-by": "mapeado por",
"delete": "Borrar",
"preview" : "Vista previa del mapa",
"bsr-code" : "Código BSR",
"download" : "Descargar mapa",
"downloading" :"Descargando mapa",
"cancel-download" : "Cancelar descarga",
"preview": "Vista previa del mapa",
"bsr-code": "Código BSR",
"download": "Descargar mapa",
"downloading": "Descargando mapa",
"cancel-download": "Cancelar descarga",
"hightlight-difficulty": "Resaltar la dificultad"
}
},
@@ -975,86 +1100,6 @@
"no-models": "No se encontraron modelos.",
"no-internet": "Sin conexión a Internet.",
"error-occured": "Ocurrió un error, inténtalo de nuevo más tarde."
},
"link-models": {
"avatar": {
"title": "Vincular avatares",
"desc": "La vinculación de avatares permite compartir avatares entre todas las versiones. Una vez vinculada, esta versión se beneficiará de los avatares compartidos",
"info": "La adición y eliminación de avatares también se compartirá",
"keep-models": {
"label": "Conservar los avatares",
"title": "Conservar los avatares moverá los avatares de la versión actual a la carpeta de avatares compartidos. De lo contrario, se perderán"
},
"valid-btn": "Vincular avatares"
},
"saber": {
"title": "Vincular sables",
"desc": "La vinculación de sables permite compartir sables entre todas las versiones. Una vez vinculada, esta versión se beneficiará de los sables compartidos",
"info": "La adición y eliminación de sables también se compartirá",
"keep-models": {
"label": "Conservar los sables",
"title": "Conservar los sables moverá los sables de la versión actual a la carpeta de sables compartidos. De lo contrario, se perderán"
},
"valid-btn": "Vincular sables"
},
"platform": {
"title": "Vincular plataformas",
"desc": "La vinculación de plataformas permite compartir plataformas entre todas las versiones. Una vez vinculada, esta versión se beneficiará de las plataformas compartidas",
"info": "La adición y eliminación de plataformas también se compartirá",
"keep-models": {
"label": "Conservar las plataformas",
"title": "Conservar las plataformas moverá las plataformas de la versión actual a la carpeta de plataformas compartidas. De lo contrario, se perderán"
},
"valid-btn": "Vincular plataformas"
},
"bloq": {
"title": "Vincular bloques",
"desc": "La vinculación de bloques permite compartir bloques entre todas las versiones. Una vez vinculada, esta versión se beneficiará de los bloques compartidos",
"info": "La adición y eliminación de bloques también se compartirá",
"keep-models": {
"label": "Conservar los bloques",
"title": "Conservar los bloques moverá los bloques de la versión actual a la carpeta de bloques compartidos. De lo contrario, se perderán"
},
"valid-btn": "Vincular bloques"
}
},
"unlink-models": {
"avatar": {
"title": "Desvincular avatares",
"desc": "Atención, desvincular los avatares ya no permitirá el uso de avatares compartidos para esta versión.",
"keep-models": {
"label": "Conservar los avatares",
"title": "Conservar los avatares creará una copia de los avatares compartidos para la versión actual. En caso contrario, ningún avatar se conservará para esta versión."
},
"valid-btn": "Desvincular avatares"
},
"saber": {
"title": "Desvincular sables",
"desc": "Atención, desvincular los sables ya no permitirá el uso de sables compartidos para esta versión.",
"keep-models": {
"label": "Conservar los sables",
"title": "Conservar los sables creará una copia de los sables compartidos para la versión actual. En caso contrario, ningún sable se conservará para esta versión."
},
"valid-btn": "Desvincular sables"
},
"platform": {
"title": "Desvincular plataformas",
"desc": "Atención, desvincular las plataformas ya no permitirá el uso de plataformas compartidas para esta versión.",
"keep-models": {
"label": "Conservar las plataformas",
"title": "Conservar las plataformas creará una copia de las plataformas compartidas para la versión actual. En caso contrario, ninguna plataforma se conservará para esta versión."
},
"valid-btn": "Desvincular plataformas"
},
"bloq": {
"title": "Desvincular bloques",
"desc": "Atención, desvincular los bloques ya no permitirá el uso de bloques compartidos para esta versión.",
"keep-models": {
"label": "Conservar los bloques",
"title": "Conservar los bloques creará una copia de los bloques compartidos para la versión actual. En caso contrario, ningún bloques se conservará para esta versión."
},
"valid-btn": "Desvincular bloques"
}
}
},
"notifications": {
@@ -1064,10 +1109,6 @@
"go-to-mods": "Ir a mods",
"not-remind": "No volver a recordarme"
},
"prevent-for-models-breaks": {
"title": "Modelos rotos",
"desc": "Desde la actualización del motor de Beat Saber, todos los mods de modelos personalizados se han roto y necesitan ser actualizados. Todavía no han sido actualizados."
},
"export-success": {
"title": "Exportación completada 🎉"
}
@@ -1135,14 +1176,6 @@
"stop-download": "Detener descarga",
"cancel-download": "Cancelar descarga",
"open-file": "Abrir archivo",
"link-playlists": "Vincular listas de reproducción",
"link-playlist-desc": "Vincular listas de reproducción permite compartirlas entre todas las versiones. Una vez vinculada, esta versión se beneficiará de las listas de reproducción compartidas",
"link-playlist-info": "Añadir y eliminar listas de reproducción también se compartirá",
"keep-playlists": "Mantener listas de reproducción",
"keep-playlists-tip": "Mantener las listas de reproducción moverá las listas de la versión actual a la carpeta de listas compartidas. De lo contrario, se perderán",
"unlink-playlists": "Desvincular listas de reproducción",
"unlink-playlist-desc": "Advertencia, desvincular las listas de reproducción ya no permitirá el uso de listas compartidas para esta versión.",
"unlink-keep-playlists-tip": "Mantener las listas de reproducción creará una copia de las listas compartidas para la versión actual. De lo contrario, no se mantendrán listas para esta versión.",
"delete-playlist-ask": "¿Eliminar lista de reproducción?",
"delete-playlists-ask": "¿Eliminar listas de reproducción?",
"delete-playlist-desc": "¿Estás seguro de que quieres eliminar la lista de reproducción \"{playlistTitle}\"?",
@@ -1237,8 +1270,57 @@
}
},
"dateformat": {
"dayNames": ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb", "Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"],
"monthNames": ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic", "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
"timeNames": ["a", "p", "am", "pm", "A", "P", "AM", "PM"]
"dayNames": [
"Dom",
"Lun",
"Mar",
"Mié",
"Jue",
"Vie",
"Sáb",
"Domingo",
"Lunes",
"Martes",
"Miércoles",
"Jueves",
"Viernes",
"Sábado"
],
"monthNames": [
"Ene",
"Feb",
"Mar",
"Abr",
"May",
"Jun",
"Jul",
"Ago",
"Sep",
"Oct",
"Nov",
"Dic",
"Enero",
"Febrero",
"Marzo",
"Abril",
"Mayo",
"Junio",
"Julio",
"Agosto",
"Septiembre",
"Octubre",
"Noviembre",
"Diciembre"
],
"timeNames": [
"a",
"p",
"am",
"pm",
"A",
"P",
"AM",
"PM"
]
}
}
+177 -144
View File
@@ -8,6 +8,10 @@
"maps": "Maps",
"playlists": "Playlists",
"models": "Modèles",
"avatars": "Avatars",
"sabers": "Sabres",
"platforms": "Plateformes",
"blocks": "Blocs",
"cancel": "Annuler",
"delete": "Supprimer",
"accept": "Accepter",
@@ -15,7 +19,22 @@
"apply": "Appliquer",
"copy": "Copier",
"copied": "Copié !",
"confirm": "Confirmer"
"confirm": "Confirmer",
"choose-folder": "Choisir un dossier",
"unknown": "Une erreur inconnue s'est produite ¯\\_(ツ)_/¯",
"warning": "Attention",
"continue": "Continuer",
"shared": "Partagé",
"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"
},
"nav-bar": {
"add-version": "Ajouter une version",
@@ -34,10 +53,17 @@
"desktop-description": "Cela vous permet d'utiliser WASD et la souris pour naviguer dans le menu en jeu. Cela rend les tests beaucoup plus faciles, car vous n'avez pas à mettre votre casque!",
"debug": "Mode Debug",
"debug-description": "Active la fenêtre de log pour IPA. Cela affichera la console de débogage utilisée par les mods.",
"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": "Lancement avancé",
"placeholder": "Arguments supplémentaires ex: --revert; --nowait"
}
"button": "Options de lancement",
"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.",
"map-editor": "Éditeur de map",
"map-editor-description": "Lance l'éditeur officiel de map de Beat Saber au lieu du jeu.",
"proton-logs": "Journaux de Proton",
"proton-logs-description": "Active l'enregistrement des journaux Proton pour cette installation de Beat Saber sur \"{versionPath}\"."
},
"maps": {
"search-bar": {
@@ -70,6 +96,15 @@
"drop-zone": {
"text": "Importer vos maps",
"subtext": "Déposez vos fichiers zip ici pour importer vos maps"
},
"sort": {
"name": "Nom",
"song-author": "Auteur de la chanson",
"map-author": "Auteur de la carte",
"bpm": "BPM",
"duration": "Durée",
"likes": "J'aime",
"date-uploaded": "Date de téléchargement"
}
},
"playlists": {
@@ -81,6 +116,13 @@
"drop-zone": {
"text": "Importer vos playlists",
"subtext": "Déposez vos fichiers \".bplist\" ou \".json\" ici pour les importer"
},
"sort": {
"title": "Titre",
"author": "Auteur",
"number-of-maps": "Nombre de cartes",
"duration": "Durée",
"notes-per-second": "NPS"
}
}
}
@@ -101,7 +143,9 @@
"latest": "Récent",
"description": "Description",
"dropdown": {
"uninstall-all": "Tout désinstaller"
"import-mods": "Importer des mods",
"uninstall-all": "Tout désinstaller",
"unselect-all": "Tout désélectionner"
}
}
},
@@ -109,7 +153,19 @@
"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": {
"text": "Importez vos mods",
"subtext": "Déposez vos fichiers \"zip\" ou \"dll\" ici pour les importer"
}
},
"dropdown": {
@@ -123,7 +179,7 @@
}
},
"available-versions": {
"title": "Choisis une version",
"title": "Télécharger une version",
"steam-release": "Notes de version",
"dropdown": {
"refresh": "Actualiser les versions",
@@ -157,8 +213,15 @@
},
"installation-folder": {
"title": "Dossier d'installation",
"description": "Changer le dossier qui contiendra tout le contenu téléchargé par BSManager.",
"choose-folder": "Choisir un dossier"
"description": "Changer le dossier qui contiendra tout le contenu téléchargé par BSManager."
},
"proton-folder": {
"title": "Dossier Proton",
"description": "Changez le dossier vers le chemin de Proton. (par exemple, Proton - Experimental)",
"errors": {
"title": "Le paramétrage du dossier Proton a échoué",
"invalid-folder": "Chemin du dossier Proton invalide"
}
},
"additional-content": {
"title": "Contenus additionnels",
@@ -175,21 +238,27 @@
"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": "Anglais, Royaume-Uni",
"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",
"zh-CN": "Chinois simplifié",
"zh-TW": "Chinois traditionnel",
"ja-JP": "Japonais"
"ja-JP": "Japonais",
"ko-KR": "Coréen"
}
}
},
@@ -217,10 +286,6 @@
"open-logs": "Ouvrir les logs"
}
},
"changelogs": {
"open" : "🚀 Jetez un œil au Changelog !",
"not-founds": "😕 Oups, Changelog introuvable !"
},
"advanced": {
"title": "Avancés",
"description": "Paramètres avancés pour BSManager.",
@@ -247,6 +312,13 @@
"error-notification": {
"message": "Une erreur s'est produite, impossible de changer les paramètres des liens symboliques."
}
},
"use-system-proxy": {
"title": "Utiliser le proxy du système",
"description": "BSManager effectuera des requêtes réseau via votre proxy système.",
"error-notification": {
"message": "Une erreur est survenue, impossible de modifier les paramètres du proxy système."
}
}
}
}
@@ -297,6 +369,8 @@
"msg": {
"401": "Steam ne semble pas vouloir nous laisser télécharger Beat Saber 😢",
"404": "Impossible de contacter les serveurs de Steam.",
"ExeNotFoundWindows": "\"DepotDownloader.exe\" est manquant. Veuillez vérifier si l'exécutable est mis en quarantaine par votre antivirus.",
"ExeNotFoundLinux": "L'exécutable \"DepotDownloader\" est manquanto.",
"Password": "Le mot de passe est invalide.",
"InvalidCredentials": "Identifiants de connexion invalides, connexion non approuvée, ou trop de tentatives de connexion.",
"NoManifest": "Aucun manifest n'a été trouvé.",
@@ -330,8 +404,8 @@
"UNABLE_TO_GET_MANIFEST": "Impossible d'obtenir le manifest nécessaire au téléchargement.",
"VERIFY_INTEGRITY_FAILED": "Une erreur c'est produite lors de la vérification des fichiers.",
"SOME_FILES_FAILED_TO_DOWNLOAD": "Certains fichiers n'ont pas pu être téléchargés.",
"OCULUS_LOGIN_TIMED_OUT": "Le Token de connexion à mis trop de temps à être récupéré.",
"OCULUS_LOGIN_WINDOW_CLOSED_BY_USER": "La fenêtre de connexion à Meta a été fermée.",
"META_LOGIN_TIMED_OUT": "Le Token de connexion à mis trop de temps à être récupéré.",
"META_LOGIN_WINDOW_CLOSED_BY_USER": "La fenêtre de connexion à Meta a été fermée.",
"NO_META_AUTH_TOKEN": "Impossible de récupérer le token de connexion à Meta nécessaire au téléchargement.",
"UNKNOWN_ERROR": "Une erreur inconnue s'est produite."
}
@@ -418,11 +492,13 @@
"success": {
"titles": {
"BS_LAUNCHING": "Lancement...🚀",
"STEAM_LAUNCHING": "Steam se lance !"
"STEAM_LAUNCHING": "Steam se lance !",
"SKIPPING_STEAM_LAUNCH": "Sauter le lancement de Steam"
},
"msg": {
"BS_LAUNCHING": "N'oublie pas de t'échauffer 😉",
"STEAM_LAUNCHING": "Beat Saber se lancera automatiquement après Steam."
"STEAM_LAUNCHING": "Beat Saber se lancera automatiquement après Steam.",
"SKIPPING_STEAM_LAUNCH": "J'espère que vous savez ce que vous faites :)"
}
},
"errors": {
@@ -432,8 +508,11 @@
"OCULUS_NOT_RUNNING": "Oculus n'est pas lancé",
"BS_ALREADY_RUNNING": "Beat Saber est déjà lancé",
"EXE_NOT_FINDED": "Fichiers manquants",
"PROTON_NOT_SET": "Dossier Proton non défini",
"PROTON_NOT_FOUND": "Binaire Proton non trouvé",
"EXIT": "Arrêt brutal",
"OCULUS_LIB_NOT_FOUND": "Librairie Oculus introuvable"
"OCULUS_LIB_NOT_FOUND": "Librairie Oculus introuvable",
"ORIGINAL_OCULUS_NOT_INSTALLED": "Version originale Oculus non trouvée"
},
"msg": {
"UNKNOWN_ERROR": "Une erreur inconnue s'est produite.",
@@ -442,7 +521,10 @@
"BS_ALREADY_RUNNING": "Ferme Beat Saber avant de le lancer à nouveau.",
"EXE_NOT_FINDED": "Quelques fichiers semblent manquants. Essaye de vérifier les fichiers.",
"EXIT": "Beat Saber s'est arrêté brusquement, essaye de vérifier les fichiers.",
"OCULUS_LIB_NOT_FOUND": "Vérifie que l'application Oculus est correctement installée, et que les librairies sont bien définies dans Oculus."
"OCULUS_LIB_NOT_FOUND": "Vérifie que l'application Oculus est correctement installée, et que les librairies sont bien définies dans Oculus.",
"PROTON_NOT_SET": "Définissez le chemin de Proton dans les paramètres.",
"PROTON_NOT_FOUND": "Définissez le chemin de Proton dans les paramètres.",
"ORIGINAL_OCULUS_NOT_INSTALLED": "Beat Saber doit être installé depuis l'application Oculus avant de l'ouvrir."
},
"actions": {
"STEAM_NOT_RUNNING": "Lancer Steam"
@@ -509,6 +591,17 @@
"no-mods": "Aucun mod n'est installé dans dans cette version 😑"
}
}
},
"import-mod": {
"titles": {
"success": "Importation des mods terminée",
"error": "Une erreur est survenue lors de l'importation des mods"
},
"msgs": {
"success": "Mods importés avec succès.",
"some-success": "Certains mods ont été importés avec succès.",
"no-dlls": "Le(s) fichier(s) ne contient(ent) aucun fichier \"dll\"."
}
}
},
"maps": {
@@ -563,19 +656,33 @@
"EPERM": "BSManager n'a pas les autorisations nécessaires pour lier le dossier.",
"EACCES": "BSManager n'a pas les autorisations nécessaires pour lier le dossier.",
"ENOSPC": "Le disque est plein, faites de la place et réessayez.",
"LinkingNotSupported": "La liaison de dossier n'est pas supportée sur ce système de fichiers.",
"UNKNOWN_ERROR": "Une erreur inconnue est survenue lors de la liaison du dossier."
}
},
"adding-error": {
"title": "L'ajout du dossier partagé a échoué",
"msg": "Vous ne pouvez pas ajouter \"{folder}\" aux dossiers partagés."
}
},
"create-launch-shortcut": {
"success": {
"title": "Raccourci créé",
"msg": "Le raccourci a été créé sur le bureau."
"msg": "Le raccourci a été créé sur le bureau.",
"msg-steam": "Le raccourci a été créé dans la bibliothèque Steam."
},
"error": {
"msg": "Une erreur s'est produite lors de la création du raccourci."
}
},
"bs-version-oudated": {
"title": "Version obsolète",
"msg": "Cette version de Beat Saber est obsolète. Utilisez la version recommandée pour profiter des dernières fonctionnalités et correctifs.",
"actions": {
"do-not-remind": "Ne plus me rappeler",
"ok": "Ok"
}
}
},
"modals": {
@@ -713,31 +820,29 @@
}
}
},
"link-maps": {
"title": "Lier les maps",
"desc": "La liaison des maps permet de partager les maps entre toute les version. Une fois liée, cette version profitera des maps partagées",
"info": "L'ajout et la suppression de maps sera également partagé",
"keep-maps": {
"label": "Conserver les maps",
"title": "Conserver les maps déplacera les maps de la version actuelle dans le dossier des maps partagées. Dans le cas contraire elles seront perdues"
},
"valid-btn": "Lier les maps"
},
"unlink-maps": {
"title": "Délier les maps",
"desc": "Attention, délier les maps ne permettra plus l'utilisation des maps paratagées pour cette version.",
"keep-maps": {
"label": "Conserver les maps",
"title": "Conserver les maps créera une copie des maps partagées pour la version actuelle. Dans le cas contraire, aucune map ne sera conservée pour cette version."
},
"valid-btn": "Délier les maps"
},
"delete-duplicate-maps": {
"title": "Supprimer les maps ?",
"desc": "Seule la map \"{map}\" est en double. Es-tu sûr de vouloir la supprimer ?",
"desc-plural": "{nb} maps en double ont été trouvées. Es-tu sûr de vouloir les supprimer ?"
}
},
"link-contents": {
"title": "Lier les {contentType}",
"p-1": "Lier les {contentType} permet de partager les {contentType} entre toutes les versions ayant cette fonctionnalité activée. Une fois liés, cette version bénéficiera des {contentType} partagés.",
"p-2": "Pour profiter de la fonctionnalité de liaison, les {itemsHtml} seront déplacés dans le dossier {sharedHtml}. Ensuite, un lien symbolique pointant vers le dossier partagé des {contentType} remplacera votre dossier original des {contentType}.",
"warning": "Veuillez noter que toute modification affectant les {contentType} affectera également toutes les versions ayant cette fonctionnalité activée.",
"what-is-a-symbolic-link": "Qu'est-ce qu'un lien symbolique ?",
"i-need-help": "J'ai besoin d'aide",
"valid-btn": "Lier les {contentType}"
},
"unlink-contents": {
"title": "Délier les {contentType}",
"p-1": "Attention, délier les {contentType} désactivera l'utilisation des {contentType} partagés pour cette version, jusqu'à ce qu'elle soit réactivée.",
"p-2": "Pour délier vos {contentType}, le lien symbolique pointant vers le dossier {sharedHtml} sera supprimé. Ensuite, les {contentType} dans le dossier partagé seront copiés dans le dossier {itemsHtml} de votre version de Beat Saber.",
"do-not-copy-contents": "Ne pas copier les {contentType}",
"do-not-copy-contents-tip": "Si activé, les {contentType} dans le dossier partagé ne seront pas copiés dans votre version de Beat Saber. En conséquence, aucun(e)s {contentType} ne restera dans votre version de Beat Saber après la suppression de la liaison.",
"valid-btn": "Délier les {contentType}"
},
"download-maps": {
"search-btn": "Rechercher",
"loading-maps": "Chargement des maps...",
@@ -759,15 +864,22 @@
"add-folder": "Ajouter un dossier",
"link-folder": "Lier le dossier",
"unlink-folder": "Délier le dossier",
"link-all": "Tout lier"
"link-all": "Tout lier",
"remove-from-the-list": "Retirer de la liste"
}
},
"adding-shared-folder": {
"title": "Ajout d'un dossier partagé",
"description": "Vous pourriez rencontrer des problèmes lors de la liaison du dossier \"{folder}\". Êtes-vous sûr de vouloir l'ajouter ?"
},
"create-launch-shortcut": {
"title": "Créer un raccourci",
"desc": "Créer un raccourci te permettra de démarrer Beat Saber avec les options choisi sans passé par BSManager.",
"desc": "Créer un raccourci te permettra de démarrer Beat Saber avec les options choisies sans passer par BSManager.",
"launch-options": "Options de lancement",
"advanced-launch": "Lancement avancé",
"valid-btn": "Créer le raccourci"
"valid-btn": "Créer le raccourci",
"create-steam-shortcut": "Créer un raccourci Steam",
"steam-shortcut-tippy": "Si activé, au lieu de créer un raccourci sur le bureau, celui-ci sera créé dans Steam."
},
"connect-to-meta": {
"title": "Connexion à Meta",
@@ -780,13 +892,12 @@
"stay": "Se souvenir de moi",
"connect-to-meta": "Se connecter à Meta"
},
"original-version-backup-oculus": {
"title": "Attention",
"body": {
"must-be-installed-once": "Vous devez avoir installé au moins une fois Beat Saber depuis l'Oculus Store, sinon Beat Saber pourrait se fermer automatiquement après son lancement.",
"will-backup": "Afin de lancer cette version, le dossier d'installation original de Beat Saber se trouvant dans votre bibliothèque Oculus va être renommé et sera automatiquement restauré à l'arrêt de Beat Saber."
},
"not-remind-me": "Ne plus me rappeler",
"enable-oculus-sideloaded-apps": {
"title": "Activer le sideloading",
"info-1": "Pour lancer Beat Saber, la possibilité d'exécuter des applications en sideloading doit être activée. BSManager demandera les droits administrateur pour activer cette fonctionnalité automatiquement.",
"info-2": "La fonctionnalité de sideloading permet de lancer des jeux situés en dehors de votre dossier de bibliothèque Oculus.",
"info-3": "Une fois le sideloading activé, la fonctionnalité restera active et vous ne serez plus invité à lactiver.",
"i-want-to-do-it-myself": "Je veux le faire moi-même",
"understood": "J'ai compris"
},
"enter-meta-token": {
@@ -820,9 +931,17 @@
"ask-install-path": {
"title": "Dossier d'installation",
"choose-folder-description": "Choisissez le dossier qui contiendra tout le contenu téléchargé par BSManager. (versions, mods, cartes, playlists, etc.)",
"choose-folder": "Choisir un dossier",
"default": "Par défaut",
"default-tooltip": "Par défaut, dans votre dossier personnel"
},
"choose-proton-folder": {
"title": "Dossier Proton",
"proton-folder-description": "Sous Linux, BSManager a besoin de Proton pour fonctionner. Choisissez le dossier d'installation de Proton pour continuer.",
"proton-folder-placeholder": "Dossier d'installation de Proton",
"where-is-proton-installed": "Où est installé Proton ?"
},
"bs-version-outdated": {
"body": "La version {outdatedVersion} est obsolète, et certains mods ou fonctionnalités peuvent ne plus fonctionner comme prévu. Veuillez télécharger la dernière version recommandée ({recommendedVersion}) de Beat Saber pour profiter des dernières fonctionnalités et corrections de bugs."
}
},
"maps": {
@@ -833,7 +952,8 @@
"tags": "tags",
"specificities": "général",
"requirements": "requis",
"exclude": "exclure"
"exclude": "exclure",
"leaderboard": "tableau des leaders"
},
"map-types": {
"accuracy": "précision",
@@ -884,11 +1004,16 @@
},
"map-specificities": {
"automapper": "IA",
"ranked": "classée",
"curated": "recommandée",
"verified": "vérifiée",
"fullSpread": "panel complet"
},
"map-leaderboard": {
"All": "Tout",
"Ranked": "Classée",
"BeatLeader": "BeatLeader",
"ScoreSaber": "ScoreSaber"
},
"map-excludes": {
"installed": "installé"
},
@@ -976,86 +1101,6 @@
"no-models": "Aucun modèles trouvés.",
"no-internet": "Pas de connexion internet.",
"error-occured": "Une erreur est survenue, réessaye plus tard."
},
"link-models": {
"avatar": {
"title": "Lier les avatars",
"desc": "La liaison des avatars permet de partager les avatars entre toutes les version. Une fois liée, cette version profitera des avatars partagés",
"info": "L'ajout et la suppression d'avatars seront également partagés",
"keep-models": {
"label": "Conserver les avatars",
"title": "Conserver les avatars déplacera les avatars de la version actuelle dans le dossier des avatars partagés. Dans le cas contraire ils seront perdus"
},
"valid-btn": "Lier les avatars"
},
"saber": {
"title": "Lier les sabres",
"desc": "La liaison des sabres permet de partager les sabres entre toutes les version. Une fois liée, cette version profitera des sabres partagés",
"info": "L'ajout et la suppression de sabres seront également partagés",
"keep-models": {
"label": "Conserver les sabres",
"title": "Conserver les sabres déplacera les sabres de la version actuelle dans le dossier des sabres partagés. Dans le cas contraire ils seront perdus"
},
"valid-btn": "Lier les sabres"
},
"platform": {
"title": "Lier les plateformes",
"desc": "La liaison des plateformes permet de partager les plateformes entre toutes les version. Une fois liée, cette version profitera des plateformes partagées",
"info": "L'ajout et la suppression de plateformes seront également partagés",
"keep-models": {
"label": "Conserver les plateformes",
"title": "Conserver les plateformes déplacera les plateformes de la version actuelle dans le dossier des plateformes partagées. Dans le cas contraire ils seront perdus"
},
"valid-btn": "Lier les plateformes"
},
"bloq": {
"title": "Lier les bloqs",
"desc": "La liaison des bloqs permet de partager les bloqs entre toutes les version. Une fois liée, cette version profitera des bloqs partagés",
"info": "L'ajout et la suppression de bloqs seront également partagés",
"keep-models": {
"label": "Conserver les bloqs",
"title": "Conserver les bloqs déplacera les bloqs de la version actuelle dans le dossier des bloqs partagés. Dans le cas contraire ils seront perdus"
},
"valid-btn": "Lier les bloqs"
}
},
"unlink-models": {
"avatar": {
"title": "Délier les avatars",
"desc": "Attention, délier les avatars ne permettra plus l'utilisation des avatars paratagés pour cette version.",
"keep-models": {
"label": "Conserver les avatars",
"title": "Conserver les avatars créera une copie des avatars partagés pour la version actuelle. Dans le cas contraire, aucun avatar ne sera conservé pour cette version."
},
"valid-btn": "Délier les avatars"
},
"saber": {
"title": "Délier les sabres",
"desc": "Attention, délier les sabres ne permettra plus l'utilisation des sabres paratagés pour cette version.",
"keep-models": {
"label": "Conserver les sabres",
"title": "Conserver les sabres créera une copie des sabres partagés pour la version actuelle. Dans le cas contraire, aucun sabre ne sera conservé pour cette version."
},
"valid-btn": "Délier les sabres"
},
"platform": {
"title": "Délier les plateformes",
"desc": "Attention, délier les plateformes ne permettra plus l'utilisation des plateformes paratagées pour cette version.",
"keep-models": {
"label": "Conserver les plateformes",
"title": "Conserver les plateformes créera une copie des plateformes partagées pour la version actuelle. Dans le cas contraire, aucune plateforme ne sera conservée pour cette version."
},
"valid-btn": "Délier les plateformes"
},
"bloq": {
"title": "Délier les bloqs",
"desc": "Attention, délier les bloqs ne permettra plus l'utilisation des bloqs paratagés pour cette version.",
"keep-models": {
"label": "Conserver les bloqs",
"title": "Conserver les bloqs créera une copie des bloqs partagés pour la version actuelle. Dans le cas contraire, aucun bloq ne sera conservé pour cette version."
},
"valid-btn": "Délier les bloqs"
}
}
},
"notifications": {
@@ -1065,10 +1110,6 @@
"go-to-mods": "Aller aux mods",
"not-remind": "Ne plus me rappeler"
},
"prevent-for-models-breaks": {
"title": "Modèles cassés",
"desc": "Depuis la mise à jour du moteur Beat Saber, tous les mods de modèles personnalisés ne sont plus fonctionnels et doivent être mis à jour. Ils n'ont pas encore été mis à jour."
},
"export-success": {
"title": "Export terminé 🎉"
}
@@ -1136,14 +1177,6 @@
"stop-download": "Arrêter le téléchargement",
"cancel-download": "Annuler le téléchargement",
"open-file": "Ouvrir le fichier",
"link-playlists": "Lier les playlists",
"link-playlist-desc": "La liaison des playlists permet de partager les playlists entre toute les version. Une fois liée, cette version profitera des playlists partagées",
"link-playlist-info": "L'ajout et la suppression de playlists sera également partagé",
"keep-playlists": "Conserver les playlists",
"keep-playlists-tip": "Conserver les playlists déplacera les playlists de la version actuelle dans le dossier des playlists partagées. Dans le cas contraire elles seront perdues",
"unlink-playlists": "Délier les playlists",
"unlink-playlist-desc": "Attention, délier les playlists ne permettra plus l'utilisation des playlists paratagées pour cette version.",
"unlink-keep-playlists-tip": "Conserver les playlists créera une copie des playlists partagées pour la version actuelle. Dans le cas contraire, aucune playlist ne sera conservée pour cette version.",
"delete-playlist-ask": "Supprimer la playlist ?",
"delete-playlists-ask": "Supprimer les playlists ?",
"delete-playlist-desc": "Es-tu sur de vouloir supprimer la playlist \"{playlistTitle}\" ?",
File diff suppressed because it is too large Load Diff
+177 -144
View File
@@ -8,6 +8,10 @@
"maps": "マップ",
"playlists": "プレイリスト",
"models": "モデル",
"avatars": "アバター",
"sabers": "セイバー",
"platforms": "プラットフォーム",
"blocks": "ブロック",
"cancel": "キャンセル",
"delete": "削除",
"accept": "同意する",
@@ -15,7 +19,22 @@
"apply": "適用",
"copy": "コピー",
"copied": "コピー済み!",
"confirm": "確認"
"confirm": "確認",
"choose-folder": "フォルダーを選択",
"unknown": "不明なエラーが発生しました (´・ω・`)",
"warning": "警告",
"continue": "続ける",
"shared": "共有",
"pin": "固定",
"unpin": "固定解除"
},
"generic": {
"env": {
"parse": "環境変数の文字列を正しく解析できませんでした。"
}
},
"title-bar": {
"outdated": "時代遅れ"
},
"nav-bar": {
"add-version": "バージョンを追加",
@@ -34,10 +53,17 @@
"desktop-description": "ファーストパーソン・フライング・コントローラー・モードでは、WASDとマウスを使ってゲーム内のメニューを操作できます。ヘッドセットを装着する必要がないので、テストがより簡単になります!",
"debug": "デバックモード",
"debug-description": "IPAの出力ログウィンドウを有効にします。これはMODのデバッグコンソールを表示します。",
"outdated-tippy": "このバージョンは古いため、一部のMODや機能が期待通りに動作しない可能性があります。最新の機能やバグ修正を楽しむには、推奨バージョン ({recommendedVersion}) のBeat Saberを使用することをお勧めします。",
"advanced-launch": {
"button": "高度な起動",
"placeholder": "追加引数 例:--revert; --nowait"
}
"button": "起動オプション",
"placeholder": "起動オプション 例:KEY=VALUE %command% fpfc"
},
"skipsteam": "Steamをスキップ",
"skipsteam-description": "Beat Saberと一緒にSteamが自動的に開くのを防ぎます。SteamVRが干渉する可能性のあるWiVRnやMonadoなど、別のVRランタイムを使用している場合は有効にしてください。",
"map-editor": "マップエディタ",
"map-editor-description": "ゲームの代わりに公式のBeat Saberマップエディタを起動する。",
"proton-logs": "プロトンログ",
"proton-logs-description": "このBeat Saberインストールのプロトンログの記録を「{versionPath}」に有効にします。"
},
"maps": {
"search-bar": {
@@ -70,6 +96,15 @@
"drop-zone": {
"text": "マップをインポート",
"subtext": "ZIPファイルをここにドロップしてマップをインポート"
},
"sort": {
"name": "名前",
"song-author": "曲の作者",
"map-author": "地図の作者",
"bpm": "BPM",
"duration": "持続時間",
"likes": "いいね",
"date-uploaded": "アップロード日"
}
},
"playlists": {
@@ -81,6 +116,13 @@
"drop-zone": {
"text": "プレイリストをインポート",
"subtext": "\".bplist\" または \".json\" ファイルをここにドロップしてインポート"
},
"sort": {
"title": "タイトル",
"author": "著者",
"number-of-maps": "地図の数",
"duration": "持続時間",
"notes-per-second": "NPS"
}
}
}
@@ -101,7 +143,9 @@
"latest": "最新",
"description": "說明",
"dropdown": {
"uninstall-all": "全てアンインストールする"
"import-mods": "モッドをインポート",
"uninstall-all": "全てアンインストールする",
"unselect-all": "すべて選択解除"
}
}
},
@@ -109,7 +153,19 @@
"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": {
"text": "モッドをインポートする",
"subtext": "「zip」または「dll」ファイルをここにドロップしてインポートする"
}
},
"dropdown": {
@@ -123,7 +179,7 @@
}
},
"available-versions": {
"title": "バージョンを選択",
"title": "バージョンをダウンロード",
"steam-release": "リリースページ",
"dropdown": {
"refresh": "バージョンの更新",
@@ -157,8 +213,15 @@
},
"installation-folder": {
"title": "インストールフォルダー",
"description": "BSManager によってダウンロードされたすべてのコンテンツを含むフォルダを変更します。",
"choose-folder": "フォルダーを選択"
"description": "BSManager によってダウンロードされたすべてのコンテンツを含むフォルダを変更します。"
},
"proton-folder": {
"title": "Protonフォルダー",
"description": "フォルダーをProtonのパスに変更してください。(例:Proton - Experimental",
"errors": {
"title": "Protonフォルダーの設定に失敗しました",
"invalid-folder": "無効なProtonフォルダーのパスです"
}
},
"additional-content": {
"title": "追加コンテンツ",
@@ -175,21 +238,27 @@
"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": "イギリス英語",
"en-US": "アメリカ英語",
"fr-FR": "フランス語",
"es-ES": "スペイン語",
"it-IT": "イタリア語",
"de-DE": "ドイツ語",
"pt-BR": "ポルトガル語 (ブラジル)",
"ru-RU": "ロシア語",
"zh-CN": "簡体字中国",
"zh-TW": "繁体字中国",
"ja-JP": "日本語"
"ja-JP": "日本語",
"ko-KR": "韓国語"
}
}
},
@@ -217,10 +286,6 @@
"open-logs": "ログを表示"
}
},
"changelogs": {
"open" : "🚀 チェンジログを覗いてみて!",
"not-founds": "😕 あれ、チェンジログが見当たらない!"
},
"advanced": {
"title": "高度な設定",
"description": "BSManagerの高度な設定。",
@@ -247,6 +312,13 @@
"error-notification": {
"message": "エラーが発生しました。シンボリックリンク設定を変更できません。"
}
},
"use-system-proxy": {
"title": "システムプロキシを使用",
"description": "BSManagerはシステムプロキシを通じてネットワークリクエストを行います。",
"error-notification": {
"message": "エラーが発生しました。システムプロキシ設定を変更できません。"
}
}
}
}
@@ -297,6 +369,8 @@
"msg": {
"401": "SteamがBeat Saberのダウンロードを許可してくれないようだ。😢",
"404": "Steamサーバーに接続できません。",
"ExeNotFoundWindows": "「DepotDownloader.exe」が見つかりません。実行ファイルがアンチウイルスソフトによって隔離されていないか確認してください。",
"ExeNotFoundLinux": "「DepotDownloader」の実行ファイルが見つかりません。",
"Password": "パスワードが不正です。",
"InvalidCredentials": "無効なログイン認証情報、許可されていない接続、またはログイン試行回数が多すぎます。",
"NoManifest": "マニフェストは見つかりませんでした",
@@ -330,8 +404,8 @@
"UNABLE_TO_GET_MANIFEST": "ダウンロードに必要なマニフェストを取得できません。",
"VERIFY_INTEGRITY_FAILED": "ファイルの検証中にエラーが発生しました。",
"SOME_FILES_FAILED_TO_DOWNLOAD": "一部のファイルのダウンロードに失敗しました。",
"OCULUS_LOGIN_TIMED_OUT": "ログイントークンの取得に時間がかかりすぎました。",
"OCULUS_LOGIN_WINDOW_CLOSED_BY_USER": "メタ・ログイン・ウィンドウが閉じられた。",
"META_LOGIN_TIMED_OUT": "ログイントークンの取得に時間がかかりすぎました。",
"META_LOGIN_WINDOW_CLOSED_BY_USER": "メタ・ログイン・ウィンドウが閉じられた。",
"NO_META_AUTH_TOKEN": "ダウンロードに必要な Meta ログイン トークンを取得できません。",
"UNKNOWN_ERROR": "不明なエラーが発生しました。"
}
@@ -418,11 +492,13 @@
"success": {
"titles": {
"BS_LAUNCHING": "起動中...🚀",
"STEAM_LAUNCHING": "Steamの起動を確認しました!"
"STEAM_LAUNCHING": "Steamの起動を確認しました!",
"SKIPPING_STEAM_LAUNCH": "Steamの起動をスキップ"
},
"msg": {
"BS_LAUNCHING": "ウォームアップを忘れずに 😉",
"STEAM_LAUNCHING": "Beat SaberはSteamの起動後に自動的に起動します。"
"STEAM_LAUNCHING": "Beat SaberはSteamの起動後に自動的に起動します。",
"SKIPPING_STEAM_LAUNCH": "あなたが何をしているのか分かっていることを願っています :)"
}
},
"errors": {
@@ -432,8 +508,11 @@
"OCULUS_NOT_RUNNING": "Oculusが起動していません",
"BS_ALREADY_RUNNING": "Beat Saberはすでに起動しています",
"EXE_NOT_FINDED": "ファイルが見つかりません",
"PROTON_NOT_SET": "Protonフォルダーが設定されていません",
"PROTON_NOT_FOUND": "Protonのバイナリが見つかりません",
"EXIT": "緊急停止",
"OCULUS_LIB_NOT_FOUND": "Oculusライブラリが見つかりません"
"OCULUS_LIB_NOT_FOUND": "Oculusライブラリが見つかりません",
"ORIGINAL_OCULUS_NOT_INSTALLED": "オリジナルのOculusバージョンが見つかりませんでした"
},
"msg": {
"UNKNOWN_ERROR": "不明なエラーが発生しました。",
@@ -442,7 +521,10 @@
"BS_ALREADY_RUNNING": "再度起動する前にBeatSaberを閉じてください。",
"EXE_NOT_FINDED": "いくつかのファイルが見つからないようです。",
"EXIT": "BeatSaberが緊急停止したため、ファイルをチェックします。",
"OCULUS_LIB_NOT_FOUND": "Oculusアプリケーションが正しくインストールしていることと、Oculusライブラリが正しく定義されていることを確認してください。"
"OCULUS_LIB_NOT_FOUND": "Oculusアプリケーションが正しくインストールしていることと、Oculusライブラリが正しく定義されていることを確認してください。",
"PROTON_NOT_SET": "設定でProtonのパスを設定してください。",
"PROTON_NOT_FOUND": "設定でProtonのパスを設定してください。",
"ORIGINAL_OCULUS_NOT_INSTALLED": "Beat Saberは、開く前にOculusアプリからインストールする必要があります。"
},
"actions": {
"STEAM_NOT_RUNNING": "Steamを起動"
@@ -509,6 +591,17 @@
"no-mods": "このバージョンのModはインストールされていません 😑"
}
}
},
"import-mod": {
"titles": {
"success": "モッドのインポートが完了しました",
"error": "モッドのインポート中にエラーが発生しました"
},
"msgs": {
"success": "モッドが正常にインポートされました。",
"some-success": "一部のモッドが正常にインポートされました。",
"no-dlls": "ファイルに \"dll\" ファイルが含まれていません。"
}
}
},
"maps": {
@@ -563,18 +656,32 @@
"EPERM": "BSManagerにはフォルダをリンクするための必要な権限がありません。",
"EACCES": "BSManagerにはフォルダをリンクするための必要な権限がありません。",
"ENOSPC": "ディスクがいっぱいです。空き容量を作ってもう一度試してください。",
"LinkingNotSupported": "このファイルシステムではフォルダのリンクはサポートされていません。",
"UNKNOWN_ERROR": "フォルダをリンク中に不明なエラーが発生しました。"
}
},
"adding-error": {
"title": "共有フォルダの追加に失敗しました",
"msg": "「{folder}」を共有フォルダに追加することはできません。"
}
},
"create-launch-shortcut": {
"success": {
"title": "ショートカットを作成しました",
"msg": "デスクトップにショートカットを作成されました。"
"msg": "デスクトップにショートカットを作成されました。",
"msg-steam": "ショートカットがSteamライブラリに作成されました。"
},
"error": {
"msg": "ショートカットの作成中にエラーが発生しました。"
}
},
"bs-version-oudated": {
"title": "バージョンが古い",
"msg": "このBeat Saberのバージョンは古いため、推奨バージョンを使用して最新の機能やバグ修正をお楽しみください。",
"actions": {
"do-not-remind": "再度通知しない",
"ok": "OK"
}
}
},
"modals": {
@@ -712,31 +819,29 @@
}
}
},
"link-maps": {
"title": "マップをリンク",
"desc": "マップをリンクすると、この機能が有効になっているすべてのバージョン間でマップを共有できます。リンクされると、このバージョンは共有マップの恩恵を受けることができます。",
"info": "マップの追加と削除も共有されます。",
"keep-maps": {
"label": "マップを保持",
"title": "マップを保持すると現在のバージョンのすべてのマップを共有マップフォルダーにコピーします。有効していない場合はこのバージョンのマップは保持されず、失われます。"
},
"valid-btn": "マップをリンク"
},
"unlink-maps": {
"title": "マップのリンクを解除",
"desc": "マップのリンクを解除すると、このバージョンでは共有マップを使用できなくなります。",
"keep-maps": {
"label": "マップを保持",
"title": "マップを保持は、リンクを解除した後、共有フォルダから現在のバージョンにすべてのマップをコピーします。これを無効をしても共有マップは失われません。"
},
"valid-btn": "マップのリンクを解除"
},
"delete-duplicate-maps": {
"title": "マップを削除しますか?",
"desc": "マップ「{map}」のみが重複しています。削除してもよろしいですか?",
"desc-plural": "{nb}個の重複したマップが見つかりました。削除してもよろしいですか?"
}
},
"link-contents": {
"title": "{contentType}をリンクする",
"p-1": "{contentType}をリンクすると、この機能が有効なすべてのバージョン間で{contentType}を共有できます。リンクされると、このバージョンは共有された{contentType}を利用できます。",
"p-2": "リンク機能を利用するには、すべての{itemsHtml}を{sharedHtml}フォルダに移動します。その後、共有された{contentType}フォルダを指すシンボリックリンクが元の{contentType}フォルダの代わりになります。",
"warning": "ご注意ください:{contentType}に影響を与える変更は、この機能が有効なすべてのバージョンにも影響を与えます。",
"what-is-a-symbolic-link": "シンボリックリンクとは何ですか?",
"i-need-help": "助けが必要です",
"valid-btn": "{contentType}をリンクする"
},
"unlink-contents": {
"title": "{contentType}のリンクを解除する",
"p-1": "注意してください:{contentType}のリンクを解除すると、この機能が再度有効化されるまで、このバージョンで共有された{contentType}を使用できなくなります。",
"p-2": "{contentType}のリンクを解除するには、{sharedHtml}を指すシンボリックリンクが削除されます。その後、共有フォルダ内のすべての{contentType}がBeat Saberのバージョン内の{itemsHtml}フォルダにコピーされます。",
"do-not-copy-contents": "{contentType}をコピーしない",
"do-not-copy-contents-tip": "有効にすると、共有フォルダ内の{contentType}はBeat Saberのバージョンにコピーされません。その結果、リンク解除後にBeat Saberバージョン内に{contentType}は残りません。",
"valid-btn": "{contentType}のリンクを解除する"
},
"download-maps": {
"search-btn": "検索 ",
"loading-maps": "マップを読込中...",
@@ -758,15 +863,22 @@
"add-folder": "フォルダーを追加",
"link-folder": "フォルダーをリンク",
"unlink-folder": "フォルダーのリンクを解除",
"link-all": "すべてリンク"
"link-all": "すべてリンク",
"remove-from-the-list": "リストから削除"
}
},
"adding-shared-folder": {
"title": "共有フォルダの追加",
"description": "「{folder}」フォルダをリンクするときに問題が発生する可能性があります。追加してもよろしいですか?"
},
"create-launch-shortcut": {
"title": "ショートカットを作成",
"desc": "ショートカットを作成すると、BSManagerを起動せずに、直接Beat Saberを起動できます。",
"launch-options": "起動オプション",
"advanced-launch": "高度な起動",
"valid-btn": "ショートカットを作成"
"valid-btn": "ショートカットを作成",
"create-steam-shortcut": "Steamショートカットを作成",
"steam-shortcut-tippy": "有効にすると、デスクトップにショートカットを作成する代わりに、Steam内に作成されます。"
},
"connect-to-meta": {
"title": "Metaに接続する",
@@ -779,14 +891,13 @@
"stay": "記憶する",
"connect-to-meta": "Metaに接続する"
},
"original-version-backup-oculus": {
"title": "注意",
"body": {
"must-be-installed-once": "少なくとも一度はOculus StoreからBeat Saberをインストールしている必要があります。そうしないとBeat Saberは起動後に自動的に終了する可能性があります。",
"will-backup": "このバージョンを起動するために、OculusライブラリにあるBeat Saberの元のインストールフォルダは名前が変更され、Beat Saberの終了時に自動的に復元されます。"
},
"not-remind-me": "二度と表示しないでください",
"understood": "分かった"
"enable-oculus-sideloaded-apps": {
"title": "サイドローディングを有効化",
"info-1": "Beat Saberを起動するには、サイドローディングアプリを実行する機能を有効にする必要があります。BSManagerは、この機能を自動的に有効にするために管理者権限を要求します。",
"info-2": "サイドローディング機能により、Oculusライブラリフォルダ外にあるゲームを起動できます。",
"info-3": "サイドローディングを有効化すると、この機能はアクティブなままとなり、再度有効化を求められることはありません。",
"i-want-to-do-it-myself": "自分でやりたい",
"understood": "了解しました"
},
"enter-meta-token": {
"title": "Oculusトークン",
@@ -819,9 +930,17 @@
"ask-install-path": {
"title": "インストールフォルダー",
"choose-folder-description": "BSManager によってダウンロードされたすべてのコンテンツ (バージョン、MOD、マップ、プレイリストなど) を含むフォルダを選択してください。",
"choose-folder": "フォルダーを選択",
"default": "デフォルト",
"default-tooltip": "デフォルトでは、ホームフォルダに設定されます"
},
"choose-proton-folder": {
"title": "Protonフォルダ",
"proton-folder-description": "Linuxでは、BSManagerを動作させるためにProtonが必要です。続行するには、Protonのインストールフォルダを選択してください。",
"proton-folder-placeholder": "Protonのインストールフォルダ",
"where-is-proton-installed": "Protonはどこにインストールされていますか?"
},
"bs-version-outdated": {
"body": "バージョン {outdatedVersion} は古いため、一部のモッドや機能が期待通りに動作しない場合があります。最新の機能やバグ修正を楽しむために、推奨される最新バージョンの Beat Saber ({recommendedVersion}) をダウンロードしてください。"
}
},
"maps": {
@@ -832,7 +951,8 @@
"tags": "タグ",
"specificities": "一般",
"requirements": "要Mod",
"exclude": "除外する"
"exclude": "除外する",
"leaderboard": "ランキング"
},
"map-types": {
"accuracy": "正確",
@@ -883,11 +1003,16 @@
},
"map-specificities": {
"automapper": "AI",
"ranked": "ランク入賞",
"curated": "厳選済み",
"verified": "認証済み",
"fullSpread": "フルスプレッド"
},
"map-leaderboard": {
"All": "すべて",
"Ranked": "ランク入賞",
"BeatLeader": "BeatLeader",
"ScoreSaber": "ScoreSaber"
},
"map-excludes": {
"installed": "インストール済み"
},
@@ -975,86 +1100,6 @@
"no-models": "モデルは見つかりませんでした。",
"no-internet": "インターネットに接続できませんでした。",
"error-occured": "エラーが発生しました。もう一度お試しください."
},
"link-models": {
"avatar": {
"title": "アバターをリンク",
"desc": "アバターをリンクすると、この機能が有効になっているすべてのバージョン間でアバターを共有できます。また、リンクすることでこのバージョンは共有アバターの恩恵を受けることができます。",
"info": "アバターの追加と削除も共有されます",
"keep-models": {
"label": "アバターを保持",
"title": "アバターを保持すると、現在のバージョンからすべてのアバターが共有アバターフォルダーにコピーされます。有効していない場合はこのバージョンのアバターは保持されず、それらは失われます。"
},
"valid-btn": "アバターをリンク"
},
"saber": {
"title": "セーバーをリンク",
"desc": "セーバーをリンクすると、この機能が有効になっているすべてのバージョン間でセーバーを共有できます。また、リンクすることでこのバージョンは共有セーバーの恩恵を受けることができます。",
"info": "セーバーの追加と削除も共有されます",
"keep-models": {
"label": "セーバーを保持",
"title": "セーバーを保持すると、現在のバージョンからすべてのセーバーが共有vフォルダーにコピーされます。有効していない場合はこのバージョンのセーバーは保持されず、それらは失われます。"
},
"valid-btn": "セーバーをリンク"
},
"platform": {
"title": "プラットフォームをリンク",
"desc": "プラットフォームをリンクすると、この機能が有効になっているすべてのバージョン間でプラットフォームを共有できます。また、リンクすることでこのバージョンは共有プラットフォームの恩恵を受けることができます。",
"info": "プラットフォームの追加と削除も共有されます",
"keep-models": {
"label": "プラットフォームを保持",
"title": "プラットフォームを保持すると、現在のバージョンからすべてのプラットフォームが共有プラットフォームフォルダーにコピーされます。有効していない場合はこのバージョンのプラットフォームは保持されず、それらは失われます。"
},
"valid-btn": "プラットフォームをリンク"
},
"bloq": {
"title": "ノーツをリンク",
"desc": "ノーツをリンクすると、この機能が有効になっているすべてのバージョン間でノーツを共有できます。また、リンクすることでこのバージョンは共有ノーツの恩恵を受けることができます。",
"info": "ノーツの追加と削除も共有されます",
"keep-models": {
"label": "ノーツを保持",
"title": "ノーツを保持すると、現在のバージョンからすべてのノーツが共有ノーツフォルダーにコピーされます。有効していない場合はこのバージョンのノーツは保持されず、それらは失われます。"
},
"valid-btn": "ノーツをリンク"
}
},
"unlink-models": {
"avatar": {
"title": "アバターのリンクを解除",
"desc": "アバターのリンクを解除すると、このバージョンでは共有アバターが使用できなくなります。",
"keep-models": {
"label": "アバターを保持する",
"title": "アバターを保持すると、リンクを解除した後、共有フォルダにあるすべてのアバターが現在のバージョンにコピーされます。これが無効にしても共有アバターは失われません。"
},
"valid-btn": "アバターのリンクを解除"
},
"saber": {
"title": "セーバーのリンクを解除",
"desc": "セーバーのリンクを解除すると、このバージョンでは共有セーバーが使用できなくなります。",
"keep-models": {
"label": "セーバーを保持する",
"title": "セーバーを保持すると、リンクを解除した後、共有フォルダにあるすべてのセーバーが現在のバージョンにコピーされます。これが無効にしても共有セーバーは失われません。"
},
"valid-btn": "セーバーのリンクを解除"
},
"platform": {
"title": "プラットフォームのリンクを解除",
"desc": "プラットフォームのリンクを解除すると、このバージョンでは共有プラットフォームが使用できなくなります。",
"keep-models": {
"label": "プラットフォームを保持する",
"title": "プラットフォームを保持すると、リンクを解除した後、共有フォルダにあるすべてのプラットフォームが現在のバージョンにコピーされます。これが無効にしても共有プラットフォームは失われません。"
},
"valid-btn": "プラットフォームのリンクを解除"
},
"bloq": {
"title": "ノーツのリンクを解除",
"desc": "ノーツのリンクを解除すると、このバージョンでは共有ノーツが使用できなくなります。",
"keep-models": {
"label": "ノーツを保持する",
"title": "ノーツを保持すると、リンクを解除した後、共有フォルダにあるすべてのノーツが現在のバージョンにコピーされます。これが無効にしても共有ノーツは失われません。"
},
"valid-btn": "ノーツのリンクを解除"
}
}
},
"notifications": {
@@ -1064,10 +1109,6 @@
"go-to-mods": "Modインストーラーに移動",
"not-remind": "二度と表示しないで"
},
"prevent-for-models-breaks": {
"title": "モデルが壊れています!",
"desc": "Beat Saberのエンジンアップデート以来、すべてのカスタムモデルのMODが壊れており、更新が必要です。まだ更新されていません。"
},
"export-success": {
"title": "エクスポート完了🎉"
}
@@ -1135,14 +1176,6 @@
"stop-download": "ダウンロードを停止",
"cancel-download": "ダウンロードをキャンセル",
"open-file": "ファイルを開く",
"link-playlists": "プレイリストをリンク",
"link-playlist-desc": "プレイリストをリンクすると、すべてのバージョン間でプレイリストを共有できます。リンクすると、このバージョンは共有プレイリストの恩恵を受けます",
"link-playlist-info": "プレイリストの追加と削除も共有されます",
"keep-playlists": "プレイリストを保持",
"keep-playlists-tip": "プレイリストを保持すると、現在のバージョンのプレイリストが共有プレイリストフォルダに移動されます。そうしない場合、それらは失われます",
"unlink-playlists": "プレイリストのリンクを解除",
"unlink-playlist-desc": "警告:プレイリストのリンクを解除すると、このバージョンでは共有プレイリストを使用できなくなります。",
"unlink-keep-playlists-tip": "プレイリストを保持すると、現在のバージョン用に共有プレイリストのコピーが作成されます。そうしない場合、このバージョンのプレイリストは保持されません。",
"delete-playlist-ask": "プレイリストを削除しますか?",
"delete-playlists-ask": "プレイリストを削除しますか?",
"delete-playlist-desc": "プレイリスト「{playlistTitle}」を削除してもよろしいですか?",
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+177 -144
View File
@@ -8,6 +8,10 @@
"maps": "Карты",
"playlists": "Плейлисты",
"models": "Модели",
"avatars": "Аватары",
"sabers": "Сабли",
"platforms": "Платформы",
"blocks": "Блоки",
"cancel": "Отмена",
"delete": "Удалить",
"accept": "Принять",
@@ -15,7 +19,22 @@
"apply": "Применить",
"copy": "Скопировать",
"copied": "Скопировано!",
"confirm": "Подтвердить"
"confirm": "Подтвердить",
"choose-folder": "Изменить папку",
"unknown": "Неизвестная ошибка ¯\\_(ツ)_/¯",
"warning": "Внимание",
"continue": "Продолжить",
"shared": "Общий",
"pin": "Закрепить",
"unpin": "Открепить"
},
"generic": {
"env": {
"parse": "Не удалось правильно разобрать строку переменной окружения."
}
},
"title-bar": {
"outdated": "устаревший"
},
"nav-bar": {
"add-version": "Добавить версию игры",
@@ -34,10 +53,17 @@
"desktop-description": "Режим Летающих контроллеров от первого лица(FPFC) позволит вам использовать меню с помощью WASD и мышки. Это облегчает тестирование модов, потому что вам не нужно подключать шлем!",
"debug": "Режим отладки",
"debug-description": "Включает окно логов для IPA. В окне будут отображаться логи модов.",
"outdated-tippy": "Эта версия устарела, и некоторые моды или функции могут работать не так, как ожидалось. Рекомендуется использовать рекомендуемую версию ({recommendedVersion}) Beat Saber, чтобы воспользоваться последними функциями и исправлениями ошибок.",
"advanced-launch": {
"button": "Расширенный запуск",
"placeholder": "Параметры запуска, например: --revert; --nowait"
}
"button": "Параметры запуска",
"placeholder": "Параметры запуска, например: KEY=VALUE %command% fpfc"
},
"skipsteam": "Пропустить Steam",
"skipsteam-description": "Предотвращает автоматическое открытие Steam с Beat Saber, включите, если вы используете другую VR-среду, такую как WiVRn или Monado, с которой SteamVR может мешать.",
"map-editor": "Редактор карт",
"map-editor-description": "Запусти официальный редактор карт Beat Saber вместо игры.",
"proton-logs": "Протонные логи",
"proton-logs-description": "Включает запись протонных логов для этой установки Beat Saber в \"{versionPath}\"."
},
"maps": {
"search-bar": {
@@ -70,6 +96,15 @@
"drop-zone": {
"text": "Импортируйте свои карты",
"subtext": "Перетащите сюда файлы ZIP, чтобы импортировать свои карты"
},
"sort": {
"name": "Имя",
"song-author": "Автор песни",
"map-author": "Автор карты",
"bpm": "BPM",
"duration": "Длительность",
"likes": "Лайки",
"date-uploaded": "Дата загрузки"
}
},
"playlists": {
@@ -81,6 +116,13 @@
"drop-zone": {
"text": "Импортируйте ваши плейлисты",
"subtext": "Перетащите сюда файлы \".bplist\" или \".json\" для их импорта"
},
"sort": {
"title": "Заголовок",
"author": "Автор",
"number-of-maps": "Количество карт",
"duration": "Длительность",
"notes-per-second": "NPS"
}
}
}
@@ -101,7 +143,9 @@
"latest": "Latest",
"description": "Описание",
"dropdown": {
"uninstall-all": "Удалить всё"
"import-mods": "Импортировать моды",
"uninstall-all": "Удалить всё",
"unselect-all": "Снять все выделения"
}
}
},
@@ -109,7 +153,19 @@
"all-mods-already-installed": {
"title": "Моды уже установлены",
"description": "Все выбранные моды уже установлены"
},
"outdated-mods": {
"title": "Устаревший мод",
"title-plural": "Устаревшие моды",
"description": "Мод {name} устарел. Хотите его обновить?",
"description-plural": "В этой версии есть {nb} устаревших модов. Хотите их обновить?",
"dont-remind-me": "Не напоминать мне",
"update": "Обновить"
}
},
"drop-zone": {
"text": "Импортируйте свои моды",
"subtext": "Перетащите ваши файлы \"zip\" или \"dll\" сюда для импорта"
}
},
"dropdown": {
@@ -123,7 +179,7 @@
}
},
"available-versions": {
"title": "Выберите версию",
"title": "Скачать версию",
"steam-release": "Список изменений",
"dropdown": {
"refresh": "Обновить версии",
@@ -157,8 +213,15 @@
},
"installation-folder": {
"title": "Папка установок",
"description": "Изменить папку, которая будет содержать весь контент, загруженный BSManager.",
"choose-folder": "Изменить папку"
"description": "Изменить папку, которая будет содержать весь контент, загруженный BSManager."
},
"proton-folder": {
"title": "Папка Proton",
"description": "Измените папку на путь к Proton. (например, Proton - Experimental)",
"errors": {
"title": "Не удалось установить папку Proton",
"invalid-folder": "Недействительный путь к папке Proton"
}
},
"additional-content": {
"title": "Дополнительный контент",
@@ -175,21 +238,27 @@
"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": "Английский, Великобритания",
"en-US": "Английский, США",
"fr-FR": "Французский",
"es-ES": "Испанский",
"it-IT": "Итальянец",
"de-DE": "Немецкий",
"pt-BR": "португальский (Бразилия)",
"ru-RU": "Русский",
"zh-CN": "Китайский (упрощенный)",
"zh-TW": "Китайский (традиционный)",
"ja-JP": "Японский"
"ja-JP": "Японский",
"ko-KR": "Корейский"
}
}
},
@@ -217,10 +286,6 @@
"open-logs": "Открыть логи"
}
},
"changelogs": {
"open" : "🚀 Изучаем Changelog!",
"not-founds": "😕 Ой, Changelog нигде не видно!"
},
"advanced": {
"title": "Дополнительные",
"description": "Дополнительные настройки для BSManager.",
@@ -247,6 +312,13 @@
"error-notification": {
"message": "Произошла ошибка, невозможно изменить настройки символических ссылок."
}
},
"use-system-proxy": {
"title": "Использовать системный прокси",
"description": "BSManager будет делать сетевые запросы через ваш системный прокси.",
"error-notification": {
"message": "Произошла ошибка, не удалось изменить настройки системного прокси."
}
}
}
}
@@ -297,6 +369,8 @@
"msg": {
"401": "Похоже Steam не хочет, чтобы мы скачали Beat Saber 😢",
"404": "Нет связи с серверами Steam.",
"ExeNotFoundWindows": "Отсутствует \"DepotDownloader.exe\". Пожалуйста, проверьте, не находится ли исполняемый файл в карантине вашего антивируса.",
"ExeNotFoundLinux": "Отсутствует исполняемый файл \"DepotDownloader\".",
"Password": "Неверный пароль.",
"InvalidCredentials": "Неверные учетные данные для входа, неразрешенное соединение или слишком много попыток входа.",
"NoManifest": "Файл манифеста не найден",
@@ -330,8 +404,8 @@
"UNABLE_TO_GET_MANIFEST": "Невозможно получить манифест, необходимый для загрузки.",
"VERIFY_INTEGRITY_FAILED": "При проверке файлов произошла ошибка.",
"SOME_FILES_FAILED_TO_DOWNLOAD": "Некоторые файлы не удалось загрузить.",
"OCULUS_LOGIN_TIMED_OUT": "Получение токена входа заняло слишком много времени.",
"OCULUS_LOGIN_WINDOW_CLOSED_BY_USER": "Окно входа в Meta было закрыто.",
"META_LOGIN_TIMED_OUT": "Получение токена входа заняло слишком много времени.",
"META_LOGIN_WINDOW_CLOSED_BY_USER": "Окно входа в Meta было закрыто.",
"NO_META_AUTH_TOKEN": "Невозможно получить токен входа в Meta, необходимый для загрузки.",
"UNKNOWN_ERROR": "Произошла неизвестная ошибка."
}
@@ -418,11 +492,13 @@
"success": {
"titles": {
"BS_LAUNCHING": "Запуск...🚀",
"STEAM_LAUNCHING": "Steam запускается!"
"STEAM_LAUNCHING": "Steam запускается!",
"SKIPPING_STEAM_LAUNCH": "Пропуск запуска Steam"
},
"msg": {
"BS_LAUNCHING": "Не забудьте разогреться 😉",
"STEAM_LAUNCHING": "Beat Saber запустится сам после Steam."
"STEAM_LAUNCHING": "Beat Saber запустится сам после Steam.",
"SKIPPING_STEAM_LAUNCH": "Надеюсь, вы знаете, что делаете :)"
}
},
"errors": {
@@ -432,8 +508,11 @@
"OCULUS_NOT_RUNNING": "Oculus не запущен",
"BS_ALREADY_RUNNING": "Beat Saber уде запущен",
"EXE_NOT_FINDED": "Отсутствуют файлы",
"PROTON_NOT_SET": "Папка Proton не установлена",
"PROTON_NOT_FOUND": "Бинарный файл Proton не найде",
"EXIT": "Вылет",
"OCULUS_LIB_NOT_FOUND": "Библиотека Oculus не найдена"
"OCULUS_LIB_NOT_FOUND": "Библиотека Oculus не найдена",
"ORIGINAL_OCULUS_NOT_INSTALLED": "Оригинальная версия Oculus не найдена"
},
"msg": {
"UNKNOWN_ERROR": "Возникла неизвестная ошибка.",
@@ -442,7 +521,10 @@
"BS_ALREADY_RUNNING": "Закройте Beat Saber, чтобы запустить его.",
"EXE_NOT_FINDED": "Некоторые файлы отсутствуют, пробуем их проверить.",
"EXIT": "Beat Saber вылетел, пытаемся проверить файлы.",
"OCULUS_LIB_NOT_FOUND": "Проверьте, правильно ли установлено приложение Oculus, и правильно ли определены библиотеки в Oculus."
"OCULUS_LIB_NOT_FOUND": "Проверьте, правильно ли установлено приложение Oculus, и правильно ли определены библиотеки в Oculus.",
"PROTON_NOT_SET": "Установите путь к Proton в настройках.",
"PROTON_NOT_FOUND": "Установите путь к Proton в настройках.",
"ORIGINAL_OCULUS_NOT_INSTALLED": "Beat Saber должен быть установлен из приложения Oculus перед открытием."
},
"actions": {
"STEAM_NOT_RUNNING": "Запустить Steam"
@@ -509,6 +591,17 @@
"no-mods": "Для этой версии не было установлено модов 😑"
}
}
},
"import-mod": {
"titles": {
"success": "Импорт модов завершен",
"error": "Произошла ошибка при импорте модов"
},
"msgs": {
"success": "Моды успешно импортированы.",
"some-success": "Некоторые моды были успешно импортированы.",
"no-dlls": "Файл(ы) не содержат файлов \"dll\"."
}
}
},
"maps": {
@@ -563,18 +656,32 @@
"EPERM": "BSManager не имеет необходимых прав для связывания папки.",
"EACCES": "BSManager не имеет необходимых прав для связывания папки.",
"ENOSPC": "Диск заполнен, освободите место и попробуйте снова.",
"LinkingNotSupported": "Ссылки на папки не поддерживаются в этой файловой системе.",
"UNKNOWN_ERROR": "Произошла неизвестная ошибка при связывании папки."
}
},
"adding-error": {
"title": "Не удалось добавить общую папку.",
"msg": "Вы не можете добавлять \"{folder}\" в общие папки."
}
},
"create-launch-shortcut": {
"success": {
"title": "Ярлык создан",
"msg": "Ярлык находится на рабочем столе."
"msg": "Ярлык находится на рабочем столе.",
"msg-steam": "Ярлык был создан в библиотеке Steam."
},
"error": {
"msg": "Ошибка создания ярлыка."
}
},
"bs-version-oudated": {
"title": "Устаревшая версия",
"msg": "Эта версия Beat Saber устарела. Используйте рекомендуемую версию, чтобы воспользоваться последними функциями и исправлениями ошибок.",
"actions": {
"do-not-remind": "Больше не напоминать",
"ok": "Ок"
}
}
},
"modals": {
@@ -712,31 +819,29 @@
}
}
},
"link-maps": {
"title": "Связать карты",
"desc": "Общие карты доступны во всех версиях игры с этой функцией. Пока связь есть, эта версия будет иметь общие карты.",
"info": "Добавление и удаление карт так же будут общими",
"keep-maps": {
"label": "Оставить карты",
"title": "Все карты из этой версии станут общими. Если не включить, то карты этой версии будут потеряны."
},
"valid-btn": "Связать карты"
},
"unlink-maps": {
"title": "Отвязать карты",
"desc": "Осторожно, отвязка карт сделает недоступными общие карты для этой версии, пока вы не свяжете их снова.",
"keep-maps": {
"label": "Оставить карты",
"title": "Общие карты будут скопированы в папку карт этой версии. Карты не будут потеряны, если это не выбрано."
},
"valid-btn": "Отвязать карты"
},
"delete-duplicate-maps": {
"title": "Удалить карту?",
"desc": "Только карта \"{map}\" является дубликатом. Вы уверены, что хотите ее удалить?",
"desc-plural": "Найдено {nb} дубликатов карт. Вы уверены, что хотите их удалить?"
}
},
"link-contents": {
"title": "Связать {contentType}",
"p-1": "Связывание {contentType} позволяет делиться {contentType} между всеми версиями с этой функцией. После связывания эта версия будет использовать общие {contentType}.",
"p-2": "Для использования функции связывания все ваши {itemsHtml} будут перемещены в папку {sharedHtml}. После этого символическая ссылка, указывающая на общую папку {contentType}, заменит вашу оригинальную папку {contentType}.",
"warning": "Обратите внимание, что любые изменения, затрагивающие {contentType}, также затронут все версии с этой функцией.",
"what-is-a-symbolic-link": "Что такое символическая ссылка?",
"i-need-help": "Мне нужна помощь",
"valid-btn": "Связать {contentType}"
},
"unlink-contents": {
"title": "Разорвать связь {contentType}",
"p-1": "Будьте осторожны, разрыв связи {contentType} отключит использование общих {contentType} для этой версии, пока они снова не будут связаны.",
"p-2": "Чтобы разорвать связь ваших {contentType}, символическая ссылка, указывающая на {sharedHtml}, будет удалена. После этого все {contentType} из общей папки будут скопированы в папку {itemsHtml} вашей версии Beat Saber.",
"do-not-copy-contents": "Не копировать {contentType}",
"do-not-copy-contents-tip": "Если включено, {contentType} из общей папки не будут скопированы в вашу версию Beat Saber. В результате, никакие {contentType} не останутся в вашей версии Beat Saber после разрыва связи.",
"valid-btn": "Разорвать связь {contentType}"
},
"download-maps": {
"search-btn": "Поиск",
"loading-maps": "Загрузка карт...",
@@ -758,15 +863,22 @@
"add-folder": "Добавить папку",
"link-folder": "Связать папку",
"unlink-folder": "Отвязать папку",
"link-all": "Связать всё"
"link-all": "Связать всё",
"remove-from-the-list": "Удалить из списка"
}
},
"adding-shared-folder": {
"title": "Добавление общей папки",
"description": "У вас могут возникнуть проблемы при связывании папки \"{folder}\". Вы уверены, что хотите ее добавить?"
},
"create-launch-shortcut": {
"title": "Создать ярлык",
"desc": "Ярлык позволит вам запустить Beat Saber без помощи BSManager.",
"launch-options": "Параметры запуска",
"advanced-launch": "Расширенный запуск",
"valid-btn": "Создать ярлык"
"valid-btn": "Создать ярлык",
"create-steam-shortcut": "Создать ярлык для Steam",
"steam-shortcut-tippy": "Если включено, вместо создания ярлыка на рабочем столе, он будет создан в Steam."
},
"connect-to-meta": {
"title": "Подключение к Meta",
@@ -779,14 +891,13 @@
"stay": "Запомнить меня",
"connect-to-meta": "Подключиться к Meta"
},
"original-version-backup-oculus": {
"title": "Внимание",
"body": {
"must-be-installed-once": "Вы должны были установить Beat Saber хотя бы один раз из Oculus Store, иначе Beat Saber может автоматически закрыться после запуска.",
"will-backup": "Для запуска этой версии исходная папка установки Beat Saber, находящаяся в вашей библиотеке Oculus, будет переименована и автоматически восстановлена при выходе из Beat Saber."
},
"not-remind-me": "Больше не напоминать",
"understood": "Понял"
"enable-oculus-sideloaded-apps": {
"title": "Включить Sideloading",
"info-1": "Чтобы запустить Beat Saber, необходимо включить возможность запуска приложений через sideloading. BSManager запросит права администратора для автоматического включения этой функции.",
"info-2": "Функция sideloading позволяет запускать игры, расположенные за пределами папки библиотеки Oculus.",
"info-3": "После активации сайдлоадинга функция останется активной, и вам больше не будет предложено её включить.",
"i-want-to-do-it-myself": "Я хочу сделать это сам",
"understood": "Понято"
},
"enter-meta-token": {
"title": "Токен Oculus",
@@ -818,9 +929,17 @@
"ask-install-path": {
"title": "Папка установок",
"choose-folder-description": "Выберите папку, которая будет содержать весь контент, загруженный BSManager. (версии, моды, карты, плейлисты и т.д.)",
"choose-folder": "Изменить папку",
"default": "По умолчанию",
"default-tooltip": "По умолчанию в вашей домашней папке"
},
"choose-proton-folder": {
"title": "Папка Proton",
"proton-folder-description": "В Linux BSManager требует Proton для работы. Выберите папку установки Proton, чтобы продолжить.",
"proton-folder-placeholder": "Папка установки Proton",
"where-is-proton-installed": "Где установлен Proton?"
},
"bs-version-outdated": {
"body": "Версия {outdatedVersion} устарела, и некоторые моды или функции могут работать некорректно. Пожалуйста, скачайте последнюю рекомендуемую версию ({recommendedVersion}) Beat Saber, чтобы воспользоваться новейшими функциями и исправлениями ошибок."
}
},
"maps": {
@@ -831,7 +950,8 @@
"tags": "тэги",
"specificities": "основное",
"requirements": "требуемые моды",
"exclude": "исключить"
"exclude": "исключить",
"leaderboard": "Таблица лидеров"
},
"map-types": {
"accuracy": "точность",
@@ -882,11 +1002,16 @@
},
"map-specificities": {
"automapper": "ИИ",
"ranked": "с рейтингом",
"curated": "оценённые куратором",
"verified": "проверенные авторы",
"fullSpread": "полный набор"
},
"map-leaderboard": {
"All": "все",
"Ranked": "с рейтингом",
"BeatLeader": "BeatLeader",
"ScoreSaber": "ScoreSaber"
},
"map-excludes": {
"installed": "установленный"
},
@@ -974,86 +1099,6 @@
"no-models": "Модели не найдены.",
"no-internet": "Нет интернета.",
"error-occured": "Ошибка, повторите попытку позже."
},
"link-models": {
"avatar": {
"title": "Связать аватары",
"desc": "Общие аватары доступны во всех версиях игры с этой функцией. Пока связь есть, эта версия будет иметь общие аватары.",
"info": "Добавление и удаление аватаров так же будут общими",
"keep-models": {
"label": "Оставить аватары",
"title": "Все аватары из этой версии станут общими. Если не включить, то аватары этой версии будут потеряны."
},
"valid-btn": "Связать аватары"
},
"saber": {
"title": "Связать мечи",
"desc": "Общие мечи доступны во всех версиях игры с этой функцией. Пока связь есть, эта версия будет иметь общие мечи.",
"info": "Добавление и удаление мечей так же будут общими",
"keep-models": {
"label": "Оставить мечи",
"title": "Все мечи из этой версии станут общими. Если не включить, то мечи этой версии будут потеряны."
},
"valid-btn": "Связать мечи"
},
"platform": {
"title": "Связать платформы",
"desc": "Общие платформы доступны во всех версиях игры с этой функцией. Пока связь есть, эта версия будет иметь общие платформы.",
"info": "Добавление и удаление платформ так же будут общими",
"keep-models": {
"label": "Оставить платформы",
"title": "Все платформы из этой версии станут общими. Если не включить, то платформы этой версии будут потеряны."
},
"valid-btn": "Связать платформы"
},
"bloq": {
"title": "Связать кубы",
"desc": "Общие кубы доступны во всех версиях игры с этой функцией. Пока связь есть, эта версия будет иметь общие кубы.",
"info": "Adding and deleting bloqs will also be shared",
"keep-models": {
"label": "Оставить кубы",
"title": "Все кубы из этой версии станут общими. Если не включить, то кубы этой версии будут потеряны."
},
"valid-btn": "Связать кубы"
}
},
"unlink-models": {
"avatar": {
"title": "Отвязать аватары",
"desc": "Осторожно, отвязка аватаров сделает недоступными общие аватары для этой версии, пока вы не свяжете их снова.",
"keep-models": {
"label": "Оставить аватары",
"title": "Общие аватары будут скопированы в папку аватаров этой версии. Аватары не будут потеряны, если это не выбрано."
},
"valid-btn": "Отвязать аватары"
},
"saber": {
"title": "Отвязать мечи",
"desc": "Осторожно, отвязка мечей сделает недоступными общие мечи для этой версии, пока вы не свяжете их снова.",
"keep-models": {
"label": "Оставить мечи",
"title": "Общие мечи будут скопированы в папку мечей этой версии. Мечи не будут потеряны, если это не выбрано."
},
"valid-btn": "Отвязать мечи"
},
"platform": {
"title": "Отвязать платформы",
"desc": "Осторожно, отвязка платформ сделает недоступными общие платформы для этой версии, пока вы не свяжете их снова.",
"keep-models": {
"label": "Оставить платформы",
"title": "Общие платформы будут скопированы в папку платформ этой версии. Платформы не будут потеряны, если это не выбрано."
},
"valid-btn": "Отвязать платформы"
},
"bloq": {
"title": "Отвязать кубы",
"desc": "Осторожно, отвязка кубов сделает недоступными общие кубы для этой версии, пока вы не свяжете их снова.",
"keep-models": {
"label": "Оставить кубы",
"title": "Общие кубы будут скопированы в папку кубов этой версии. Кубы не будут потеряны, если это не выбрано."
},
"valid-btn": "Отвязать кубы"
}
}
},
"notifications": {
@@ -1063,10 +1108,6 @@
"go-to-mods": "Перейти к модам",
"not-remind": "Больше не напоминать"
},
"prevent-for-models-breaks": {
"title": "Сломанные модели",
"desc": "С момента обновления движка Beat Saber, все пользовательские модификации моделей сломались и требуют обновления. Они еще не были обновлены."
},
"export-success": {
"title": "Экспорт завершен 🎉"
}
@@ -1134,14 +1175,6 @@
"stop-download": "Остановить загрузку",
"cancel-download": "Отменить загрузку",
"open-file": "Открыть файл",
"link-playlists": "Связать плейлисты",
"link-playlist-desc": "Связывание плейлистов позволяет делиться плейлистами между всеми версиями. После связывания эта версия будет иметь доступ к общим плейлистам",
"link-playlist-info": "Добавление и удаление плейлистов также будет общим",
"keep-playlists": "Сохранить плейлисты",
"keep-playlists-tip": "Сохранение плейлистов переместит плейлисты из текущей версии в папку общих плейлистов. В противном случае они будут потеряны",
"unlink-playlists": "Отвязать плейлисты",
"unlink-playlist-desc": "Внимание, отвязка плейлистов больше не позволит использовать общие плейлисты для этой версии.",
"unlink-keep-playlists-tip": "Сохранение плейлистов создаст копию общих плейлистов для текущей версии. В противном случае для этой версии не будут сохранены плейлисты.",
"delete-playlist-ask": "Удалить плейлист?",
"delete-playlists-ask": "Удалить плейлисты?",
"delete-playlist-desc": "Вы уверены, что хотите удалить плейлист \"{playlistTitle}\"?",
+177 -144
View File
@@ -8,6 +8,10 @@
"maps": "譜面",
"playlists": "歌單",
"models": "模型",
"avatars": "頭像",
"sabers": "光劍",
"platforms": "平台",
"blocks": "方塊",
"cancel": "取消",
"delete": "刪除",
"accept": "接受",
@@ -15,7 +19,22 @@
"apply": "應用",
"copy": "複製",
"copied": "已複製!",
"confirm": "確認"
"confirm": "確認",
"choose-folder": "選擇文件夾",
"unknown": "發生了一個錯誤 ¯\\_(ツ)_/¯",
"warning": "警告",
"continue": "繼續",
"shared": "共享",
"pin": "固定",
"unpin": "取消固定"
},
"generic": {
"env": {
"parse": "無法正確解析環境變數字串。"
}
},
"title-bar": {
"outdated": "過時"
},
"nav-bar": {
"add-version": "新增版本",
@@ -34,10 +53,17 @@
"desktop-description": "第一人稱飛控模式允許你使用鍵盤 WASD 和滑鼠在遊戲中進行導航。你無需帶上頭顯即可進行測試!",
"debug": "Debug 模式",
"debug-description": "為 IPA 啟用輸出日誌窗口。 會顯示所用 Mod 的 debug 輸出",
"outdated-tippy": "此版本已過時,某些模組或功能可能無法按預期運作。建議使用推薦版本的 Beat Saber ({recommendedVersion}),以享受最新功能和修復。",
"advanced-launch": {
"button": "高級啟動",
"placeholder": "額外啟動參數,例如: --revert; --nowait"
}
"button": "啟動選項",
"placeholder": "啟動選項,例如: KEY=VALUE %command% fpfc"
},
"skipsteam": "跳過 Steam",
"skipsteam-description": "防止 Steam 與 Beat Saber 自動打開,如果您使用的是其他 VR 執行時,如 WiVRn 或 Monado,SteamVR 可能會干擾,請啟用此選項。",
"map-editor": "地圖編輯器",
"map-editor-description": "啟動官方的 Beat Saber 地圖編輯器,而不是遊戲。",
"proton-logs": "Proton紀錄",
"proton-logs-description": "啟用此 Beat Saber 安裝的質子紀錄,路徑為\"{versionPath}\"。"
},
"maps": {
"search-bar": {
@@ -70,6 +96,15 @@
"drop-zone": {
"text": "導入您的地圖",
"subtext": "將ZIP文件拖放到此處以導入您的地圖"
},
"sort": {
"name": "名字",
"song-author": "歌曲作者",
"map-author": "地圖作者",
"bpm": "BPM",
"duration": "持續時間",
"likes": "喜歡",
"date-uploaded": "上傳日期"
}
},
"playlists": {
@@ -81,6 +116,13 @@
"drop-zone": {
"text": "匯入您的播放列表",
"subtext": "將您的 \".bplist\" 或 \".json\" 檔案拖曳到這裡進行匯入"
},
"sort": {
"title": "標題",
"author": "作者",
"number-of-maps": "地圖數量",
"duration": "持續時間",
"notes-per-second": "NPS"
}
}
}
@@ -101,7 +143,9 @@
"latest": "最新",
"description": "描述",
"dropdown": {
"uninstall-all": "全部移除"
"import-mods": "導入模組",
"uninstall-all": "全部移除",
"unselect-all": "取消全選"
}
}
},
@@ -109,7 +153,19 @@
"all-mods-already-installed": {
"title": "模組已安裝",
"description": "所有選中的模組已經安裝"
},
"outdated-mods": {
"title": "過時的模組",
"title-plural": "過時的模組",
"description": "{name} 模組已過時。您想更新嗎?",
"description-plural": "此版本有 {nb} 個過時的模組。您想更新它們嗎?",
"dont-remind-me": "不要提醒我",
"update": "更新"
}
},
"drop-zone": {
"text": "匯入你的模組",
"subtext": "將你的 \"zip\" 或 \"dll\" 檔案拖放到這裡以進行匯入"
}
},
"dropdown": {
@@ -123,7 +179,7 @@
}
},
"available-versions": {
"title": "選擇版本",
"title": "下載一個版本",
"steam-release": "發布頁面",
"dropdown": {
"refresh": "刷新版本",
@@ -157,8 +213,15 @@
},
"installation-folder": {
"title": "安裝文件夾",
"description": "更改將包含 BSManager 下載的所有內容的文件夾。",
"choose-folder": "選擇文件夾"
"description": "更改將包含 BSManager 下載的所有內容的文件夾。"
},
"proton-folder": {
"title": "Proton資料夾",
"description": "將資料夾更改為Proton路徑。(例如:Proton - Experimental",
"errors": {
"title": "設置Proton資料夾失敗",
"invalid-folder": "無效的Proton資料夾路徑"
}
},
"additional-content": {
"title": "附加內容",
@@ -175,21 +238,27 @@
"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": "英式英語",
"en-US": "美式英語",
"fr-FR": "法語",
"es-ES": "西班牙語",
"it-IT": "義大利語",
"de-DE": "德語",
"pt-BR": "葡萄牙語 (巴西)",
"ru-RU": "俄語",
"zh-CN": "簡體中文",
"zh-TW": "正體中文",
"ja-JP": "日語"
"ja-JP": "日語",
"ko-KR": "韓語"
}
}
},
@@ -217,10 +286,6 @@
"open-logs": "打開日誌"
}
},
"changelogs": {
"open" : "🚀 探索更新日誌!",
"not-founds": "😕 噢,找不到更新日誌!"
},
"advanced": {
"title": "高级设置",
"description": "BSManager的高级设置。",
@@ -247,6 +312,13 @@
"error-notification": {
"message": "發生錯誤,無法更改符號鏈接設置。"
}
},
"use-system-proxy": {
"title": "使用系統代理",
"description": "BSManager將通過您的系統代理發送網絡請求。",
"error-notification": {
"message": "發生錯誤,無法更改系統代理設置。"
}
}
}
}
@@ -297,6 +369,8 @@
"msg": {
"401": "Steam 似乎不想讓我們下載 Beat Saber😢",
"404": "無法聯繫 Steam 伺服器。",
"ExeNotFoundWindows": "\"DepotDownloader.exe\" 缺失。請檢查執行檔是否被您的防毒軟體隔離。",
"ExeNotFoundLinux": "\"DepotDownloader\" 的可執行檔缺失。",
"Password": "密碼無效",
"InvalidCredentials": "登錄憑據無效、連接未經批准或登錄嘗試次數過多。",
"NoManifest": "未找到清單",
@@ -330,8 +404,8 @@
"UNABLE_TO_GET_MANIFEST": "無法獲取下載所需的清單。",
"VERIFY_INTEGRITY_FAILED": "文件驗證過程中發生錯誤。",
"SOME_FILES_FAILED_TO_DOWNLOAD": "一些文件下載失敗。",
"OCULUS_LOGIN_TIMED_OUT": "獲取登錄令牌用時過長。",
"OCULUS_LOGIN_WINDOW_CLOSED_BY_USER": "Meta 登錄窗口被關閉。",
"META_LOGIN_TIMED_OUT": "獲取登錄令牌用時過長。",
"META_LOGIN_WINDOW_CLOSED_BY_USER": "Meta 登錄窗口被關閉。",
"NO_META_AUTH_TOKEN": "無法獲取下載所需的 Meta 登錄令牌。",
"UNKNOWN_ERROR": "發生未知錯誤。"
}
@@ -418,11 +492,13 @@
"success": {
"titles": {
"BS_LAUNCHING": "啟動中...🚀",
"STEAM_LAUNCHING": "Steam 正在啟動!"
"STEAM_LAUNCHING": "Steam 正在啟動!",
"SKIPPING_STEAM_LAUNCH": "跳過 Steam 啟動"
},
"msg": {
"BS_LAUNCHING": "別忘了熱身哦 😉",
"STEAM_LAUNCHING": "Beat Saber 會在 Steam 啟動後自動啟動。"
"STEAM_LAUNCHING": "Beat Saber 會在 Steam 啟動後自動啟動。",
"SKIPPING_STEAM_LAUNCH": "希望你知道自己在做什麼 :)"
}
},
"errors": {
@@ -432,8 +508,11 @@
"OCULUS_NOT_RUNNING": "Oculus 未運行",
"BS_ALREADY_RUNNING": "Beat Saber 已在運行",
"EXE_NOT_FINDED": "缺少文件",
"PROTON_NOT_SET": "Proton資料夾未設置",
"PROTON_NOT_FOUND": "找不到Proton二進位檔",
"EXIT": "突然停止",
"OCULUS_LIB_NOT_FOUND": "未找到 Oculus 庫"
"OCULUS_LIB_NOT_FOUND": "未找到 Oculus 庫",
"ORIGINAL_OCULUS_NOT_INSTALLED": "找不到原始Oculus版本"
},
"msg": {
"UNKNOWN_ERROR": "發生未知錯誤。",
@@ -442,7 +521,10 @@
"BS_ALREADY_RUNNING": "再次啟動前請關閉 BeatSaber。",
"EXE_NOT_FINDED": "某些文件似乎遺失了,嘗試驗證文件。",
"EXIT": "BeatSaber 突然停止,請檢查文件。",
"OCULUS_LIB_NOT_FOUND": "檢查 Oculus 應用是否正確安裝,以及庫是否在 Oculus 中正確定義。"
"OCULUS_LIB_NOT_FOUND": "檢查 Oculus 應用是否正確安裝,以及庫是否在 Oculus 中正確定義。",
"PROTON_NOT_SET": "在設定中設置Proton路徑。",
"PROTON_NOT_FOUND": "在設定中設置Proton路徑。",
"ORIGINAL_OCULUS_NOT_INSTALLED": "在打開之前,必須從Oculus應用程式安裝Beat Saber。"
},
"actions": {
"STEAM_NOT_RUNNING": "啟動 Steam"
@@ -509,6 +591,17 @@
"no-mods": "該版本中沒有安裝 Mod 😑"
}
}
},
"import-mod": {
"titles": {
"success": "模組匯入完成",
"error": "模組匯入過程中發生錯誤"
},
"msgs": {
"success": "模組成功匯入。",
"some-success": "一些模組已成功匯入。",
"no-dlls": "檔案中不包含任何 \"dll\" 檔案。"
}
}
},
"maps": {
@@ -563,18 +656,32 @@
"EPERM": "BSManager沒有必要的權限來連結文件夾。",
"EACCES": "BSManager沒有必要的權限來連結文件夾。",
"ENOSPC": "磁碟已滿,請騰出空間後再試。",
"LinkingNotSupported": "該檔案系統不支援資料夾連結。",
"UNKNOWN_ERROR": "連結文件夾時發生未知錯誤。"
}
},
"adding-error": {
"title": "添加共享文件夹失败",
"msg": "您无法将\"{folder}\"添加到共享文件夹。"
}
},
"create-launch-shortcut": {
"success": {
"title": "捷徑已創建",
"msg": "捷徑已在桌面上創建"
"msg": "捷徑已在桌面上創建",
"msg-steam": "捷徑已在 Steam 庫中建立。"
},
"error": {
"msg": "創建捷徑時發生錯誤"
}
},
"bs-version-oudated": {
"title": "版本過時",
"msg": "此 Beat Saber 版本已過時,請使用推薦版本以享受最新功能和修復。",
"actions": {
"do-not-remind": "不要再提醒我",
"ok": "確定"
}
}
},
"modals": {
@@ -712,31 +819,29 @@
}
}
},
"link-maps": {
"title": "關聯譜面",
"desc": "關聯譜面可以在所有啟用此功能的版本之間共享譜面。一旦關聯,該版本將受益於共享譜面。",
"info": "新增和刪除的譜面也將被共享",
"keep-maps": {
"label": "保留譜面",
"title": "保留譜面將會把當前版本的所有譜面複製到共享譜面文件夾。否則,該版本的譜面將不會被保留,它們將遺失。"
},
"valid-btn": "關聯譜面"
},
"unlink-maps": {
"title": "取消關聯譜面",
"desc": "請注意,取消關聯譜面後該版本將無法使用共享譜面,直到重新啟用。",
"keep-maps": {
"label": "保留譜面",
"title": "保留譜面將會在取消關聯後把共享文件夾的所有譜面複製到當前版本。如果此項被禁用,譜面也不會遺失。"
},
"valid-btn": "取消關聯譜面"
},
"delete-duplicate-maps": {
"title": "刪除地圖",
"desc": "只有地圖「{map}」是重複的。你確定要刪除它嗎?",
"desc-plural": "發現了 {nb} 個重複的地圖。你確定要刪除它們嗎?"
}
},
"link-contents": {
"title": "連結{contentType}",
"p-1": "連結{contentType}允許在啟用此功能的所有版本之間共享{contentType}。連結後,該版本將受益於共享的{contentType}。",
"p-2": "為了使用連結功能,您的所有{itemsHtml}將被移動到{sharedHtml}資料夾。之後,一個指向共享{contentType}資料夾的符號連結將取代您原本的{contentType}資料夾。",
"warning": "請注意,任何影響{contentType}的更改也會影響所有啟用此功能的版本。",
"what-is-a-symbolic-link": "什麼是符號連結?",
"i-need-help": "我需要幫助",
"valid-btn": "連結{contentType}"
},
"unlink-contents": {
"title": "取消連結{contentType}",
"p-1": "注意:取消連結{contentType}將會停用此版本中共享的{contentType}功能,直到該功能再次啟用。",
"p-2": "為了取消連結您的{contentType},指向{sharedHtml}的符號連結將被移除。之後,共享資料夾中的所有{contentType}將被複製到您Beat Saber版本的{itemsHtml}資料夾中。",
"do-not-copy-contents": "不要複製{contentType}",
"do-not-copy-contents-tip": "如果啟用,共享資料夾中的{contentType}將不會被複製到您的Beat Saber版本中。結果是,在取消連結後,您的Beat Saber版本中將不再保留任何{contentType}。",
"valid-btn": "取消連結{contentType}"
},
"download-maps": {
"search-btn": "搜尋",
"loading-maps": "譜面載入中...",
@@ -758,15 +863,22 @@
"add-folder": "新增文件夾",
"link-folder": "關聯文件夾",
"unlink-folder": "取消關聯文件夾",
"link-all": "關聯所有"
"link-all": "關聯所有",
"remove-from-the-list": "從列表中移除"
}
},
"adding-shared-folder": {
"title": "添加共享文件夹",
"description": "链接\"{folder}\"文件夹时可能会遇到问题。您确定要添加它吗?"
},
"create-launch-shortcut": {
"title": "創建捷徑",
"desc": "創建捷徑使得你可以在不通過 BSManager 的情況下以特定選項啟動 BeatSaber",
"launch-options": "啟動選項",
"advanced-launch": "高級啟動",
"valid-btn": "創建捷徑"
"valid-btn": "創建捷徑",
"create-steam-shortcut": "建立 Steam 快捷方式",
"steam-shortcut-tippy": "如果啟用,將不會在桌面建立捷徑,而是在 Steam 中建立。"
},
"connect-to-meta": {
"title": "連接到 Meta",
@@ -779,14 +891,13 @@
"stay": "記住我",
"connect-to-meta": "連接到 Meta"
},
"original-version-backup-oculus": {
"title": "警告",
"body": {
"must-be-installed-once": "你必須至少從 Oculus 商店安裝過一次 BeatSaber,否則 BeatSaber 可能會在啟動後自動關閉。",
"will-backup": "為了啟動這個版本,位於您的Oculus庫中的Beat Saber的原始安裝文件夾將被重新命名,並且在Beat Saber關閉時會自動恢復。"
},
"not-remind-me": "不再提醒我",
"understood": "明白了"
"enable-oculus-sideloaded-apps": {
"title": "啟用旁載",
"info-1": "為了啟動 Beat Saber,必須啟用執行旁載應用程式的功能。BSManager 將請求管理員權限以自動啟用此功能。",
"info-2": "旁載功能允許啟動位於 Oculus 資料庫資料夾之外的遊戲。",
"info-3": "啟用 sideloading 後,此功能將保持啟用狀態,您將不再被提示啟用它。",
"i-want-to-do-it-myself": "我想自己完成",
"understood": "了解"
},
"enter-meta-token": {
"title": "Oculus令牌",
@@ -819,9 +930,17 @@
"ask-install-path": {
"title": "安裝文件夾",
"choose-folder-description": "選擇將包含 BSManager 下載的所有內容的文件夾。(版本、mod、地圖、播放列表等)",
"choose-folder": "選擇文件夾",
"default": "預設",
"default-tooltip": "預設為您的主資料夾"
},
"choose-proton-folder": {
"title": "Proton資料夾",
"proton-folder-description": "在Linux上,BSManager需要Proton才能運行。請選擇Proton的安裝資料夾以繼續。",
"proton-folder-placeholder": "Proton安裝資料夾",
"where-is-proton-installed": "Proton安裝在哪裡?"
},
"bs-version-outdated": {
"body": "版本 {outdatedVersion} 已過時,某些模組或功能可能無法正常運作。請下載最新推薦的 Beat Saber 版本 ({recommendedVersion}),以享受最新功能和修正。"
}
},
"maps": {
@@ -832,7 +951,8 @@
"tags": "標籤",
"specificities": "general",
"requirements": "要求",
"exclude": "排除"
"exclude": "排除",
"leaderboard": "排行榜"
},
"map-types": {
"accuracy": "精確度",
@@ -883,11 +1003,16 @@
},
"map-specificities": {
"automapper": "AI",
"ranked": "Ranked",
"curated": "Curated",
"verified": "Verified",
"fullSpread": "Full spread"
},
"map-leaderboard": {
"All": "所有",
"Ranked": "排名的",
"BeatLeader": "BeatLeader",
"ScoreSaber": "ScoreSaber"
},
"map-excludes": {
"installed": "已安裝"
},
@@ -975,86 +1100,6 @@
"no-models": "未找到模型",
"no-internet": "無網路連接",
"error-occured": "發生了一個錯誤,稍後重試。"
},
"link-models": {
"avatar": {
"title": "關聯 Avatar",
"desc": "關聯 Avatar 允許在所有啟用此功能的版本之間共享 Avatar。一旦關聯,該版本將受益於共享 Avatar。",
"info": "對 Avatar 的新增和刪除也將被共享",
"keep-models": {
"label": "保留 Avatar",
"title": "保留 Avatar 將會把當前版本的所有 Avatar 複製到共享 Avatar文件夾。否則,該版本的 Avatar將不會被保留,它們將遺失。"
},
"valid-btn": "關聯 Avatar "
},
"saber": {
"title": "關聯光劍",
"desc": "關聯光劍允許在所有啟用此功能的版本之間共享光劍。一旦關聯,該版本將受益於共享光劍。",
"info": "對光劍的新增和刪除也將被共享",
"keep-models": {
"label": "保留光劍",
"title": "保留光劍將會把當前版本的所有光劍複製到共享光劍文件夾。否則,該版本的光劍將不會被保留,它們將遺失。"
},
"valid-btn": "關聯光劍"
},
"platform": {
"title": "關聯平台",
"desc": "關聯平台允許在所有啟用此功能的版本之間共享平台。一旦關聯,該版本將受益於共享平台。",
"info": "對平台的新增和刪除也將被共享",
"keep-models": {
"label": "保留平台",
"title": "保留平台將會把當前版本的所有平台複製到共享平台文件夾。否則,該版本的平台將不會被保留,它們將遺失。"
},
"valid-btn": "關聯平台"
},
"bloq": {
"title": "關聯方塊",
"desc": "關聯方塊允許在所有啟用此功能的版本之間共享方塊。一旦關聯,該版本將受益於共享方塊。",
"info": "對方塊的新增和刪除也將被共享",
"keep-models": {
"label": "保留方塊",
"title": "保留方塊將會把當前版本的所有方塊複製到共享方塊文件夾。否則,該版本的方塊將不會被保留,它們將遺失。"
},
"valid-btn": "關聯方塊"
}
},
"unlink-models": {
"avatar": {
"title": "取消關聯 Avatar",
"desc": "請注意,取消關聯 Avatar 將禁用該版本的共享 Avatar 使用,直到重新啟用。",
"keep-models": {
"label": "保留 Avatar",
"title": "保留 Avatar 將會在取消關聯後把共享文件夾的所有 Avatar 複製到當前版本。如果此項被禁用,Avatar 將不會遺失。"
},
"valid-btn": "取消關聯 Avatar"
},
"saber": {
"title": "取消關聯光劍",
"desc": "請注意,取消關聯光劍將禁用該版本的共享光劍使用,直到重新啟用。",
"keep-models": {
"label": "保留光劍",
"title": "保留光劍將會在取消關聯後把共享文件夾的所有光劍複製到當前版本。如果此項被禁用,光劍將不會遺失。"
},
"valid-btn": "取消關聯光劍"
},
"platform": {
"title": "取消關聯平台",
"desc": "請注意,取消關聯平台將禁用該版本的共享平台使用,直到重新啟用。",
"keep-models": {
"label": "保留平台",
"title": "保留平台將會在取消關聯後把共享文件夾的所有平台複製到當前版本。如果此項被禁用,平台將不會遺失。"
},
"valid-btn": "取消關聯平台"
},
"bloq": {
"title": "取消關聯方塊",
"desc": "請注意,取消關聯方塊將禁用該版本的共享方塊使用,直到重新啟用。",
"keep-models": {
"label": "保留方塊",
"title": "保留方塊將會在取消關聯後把共享文件夾的所有方塊複製到當前版本。如果此項被禁用,方塊將不會遺失。"
},
"valid-btn": "取消關聯方塊"
}
}
},
"notifications": {
@@ -1064,10 +1109,6 @@
"go-to-mods": "前往 Mod 頁",
"not-remind": "不再提醒我"
},
"prevent-for-models-breaks": {
"title": "已損壞的模型",
"desc": "自從Beat Saber引擎更新以來,所有自定義模型的MOD都已損壞,需要更新。它們還沒有被更新。"
},
"export-success": {
"title": "導出成功 🎉"
}
@@ -1135,14 +1176,6 @@
"stop-download": "停止下載",
"cancel-download": "取消下載",
"open-file": "開啟檔案",
"link-playlists": "連結播放清單",
"link-playlist-desc": "連結播放清單允許在所有版本之間共享播放清單。一旦連結,此版本將受益於共享播放清單",
"link-playlist-info": "新增和刪除播放清單也將被共享",
"keep-playlists": "保留播放清單",
"keep-playlists-tip": "保留播放清單將把當前版本的播放清單移動到共享播放清單資料夾。否則,它們將遺失",
"unlink-playlists": "取消連結播放清單",
"unlink-playlist-desc": "警告,取消連結播放清單將不再允許此版本使用共享播放清單。",
"unlink-keep-playlists-tip": "保留播放清單將為當前版本建立共享播放清單的副本。否則,此版本將不保留任何播放清單。",
"delete-playlist-ask": "刪除播放清單?",
"delete-playlists-ask": "刪除播放清單?",
"delete-playlist-desc": "您確定要刪除播放清單 \"{playlistTitle}\" 嗎?",
+175 -143
View File
@@ -8,6 +8,10 @@
"maps": "谱面",
"playlists": "歌单",
"models": "模型",
"avatars": "头像",
"sabers": "光剑",
"platforms": "平台",
"blocks": "方块",
"cancel": "取消",
"delete": "删除",
"accept": "接受",
@@ -15,7 +19,22 @@
"apply": "应用",
"copy": "复制",
"copied": "已复制!",
"confirm": "确认"
"confirm": "确认",
"choose-folder": "选择文件夹",
"Unknown": "发生了一个错误 ¯\\_(ツ)_/¯",
"warning": "警告",
"continue": "继续",
"shared": "共享",
"pin": "固定",
"unpin": "取消固定"
},
"generic": {
"env": {
"parse": "无法正确解析环境变量字符串。"
}
},
"title-bar": {
"outdated": "过时"
},
"nav-bar": {
"add-version": "添加版本",
@@ -34,10 +53,17 @@
"desktop-description": "第一人称飞控模式允许你使用键盘 WASD 和鼠标在游戏中进行导航。你无需带上头显即可进行测试!",
"debug": "Debug 模式",
"debug-description": "为 IPA 启用输出日志窗口。 会显示所用 Mod 的 debug 输出",
"outdated-tippy": "此版本已过时,某些模组或功能可能无法按预期运行。建议使用推荐版本的 Beat Saber ({recommendedVersion}),以享受最新功能和修复。",
"advanced-launch": {
"button": "高级启动",
"placeholder": "额外启动参数,例如: --revert; --nowait"
}
"button": "启动选项",
"placeholder": "启动选项,例如: KEY=VALUE %command% fpfc"
},
"skipsteam": "跳过 Steam",
"skipsteam-description": "防止 Steam 与 Beat Saber 自动打开,如果您使用的是其他 VR 运行时,如 WiVRn 或 Monado,SteamVR 可能会干扰,请启用此选项。",
"map-editor": "地图编辑器",
"map-editor-description": "启动官方的 Beat Saber 地图编辑器,而不是游戏。",
"proton-logs": "Proton日志",
"proton-logs-description": "启用此 Beat Saber 安装的质子日志,路径为\"{versionPath}\"。"
},
"maps": {
"search-bar": {
@@ -70,6 +96,15 @@
"drop-zone": {
"text": "导入您的地图",
"subtext": "将ZIP文件拖放到此处以导入您的地图"
},
"sort": {
"name": "名字",
"song-author": "歌曲作者",
"map-author": "地图作者",
"bpm": "BPM",
"duration": "持续时间",
"likes": "喜欢",
"date-uploaded": "上传日期"
}
},
"playlists": {
@@ -81,6 +116,13 @@
"drop-zone": {
"text": "导入您的播放列表",
"subtext": "将您的 \".bplist\" 或 \".json\" 文件拖放到这里进行导入"
},
"sort": {
"title": "标题",
"author": "作者",
"number-of-maps": "地图数量",
"duration": "持续时间",
"notes-per-second": "NPS"
}
}
}
@@ -101,7 +143,9 @@
"latest": "最新",
"description": "描述",
"dropdown": {
"uninstall-all": "全部卸载"
"import-mods": "导入模组",
"uninstall-all": "全部卸载",
"unselect-all": "取消全选"
}
}
},
@@ -109,7 +153,19 @@
"all-mods-already-installed": {
"title": "模组已安装",
"description": "所有选中的模组已经安装"
},
"outdated-mods": {
"title": "过时的模组",
"title-plural": "过时的模组",
"description": "{name} 模组已过时。您想更新吗?",
"description-plural": "此版本有 {nb} 个过时的模组。您想更新它们吗?",
"dont-remind-me": "不要提醒我",
"update": "更新"
}
},
"drop-zone": {
"text": "导入你的模组",
"subtext": "将你的 \"zip\" 或 \"dll\" 文件拖放到这里进行导入"
}
},
"dropdown": {
@@ -123,7 +179,7 @@
}
},
"available-versions": {
"title": "选择版本",
"title": "下载一个版本",
"steam-release": "发布页面",
"dropdown": {
"refresh": "刷新版本",
@@ -157,8 +213,15 @@
},
"installation-folder": {
"title": "安装文件夹",
"description": "更改将包含 BSManager 下载的所有内容的文件夹。",
"choose-folder": "选择文件夹"
"description": "更改将包含 BSManager 下载的所有内容的文件夹。"
},
"proton-folder": {
"title": "Proton文件夹",
"description": "将文件夹更改为Proton路径。(例如:Proton - Experimental",
"errors": {
"title": "设置Proton文件夹失败",
"invalid-folder": "无效的Proton文件夹路径"
}
},
"additional-content": {
"title": "附加内容",
@@ -175,21 +238,26 @@
"en-US": "English, US",
"fr-FR": "Français",
"es-ES": "Español",
"it-IT": "Italiano",
"de-DE": "Deutsch",
"ru-RU": "Русский",
"zh-CN": "简体中文",
"zh-TW": "正體中文",
"ja-JP": "日本語",
"ko-KR": "한국어",
"translated": {
"en-EN": "英式英语",
"en-US": "美式英语",
"fr-FR": "法语",
"es-ES": "西班牙语",
"it-IT": "意大利语",
"de-DE": "德语",
"pt-BR": "葡萄牙语 (巴西)",
"ru-RU": "俄语",
"zh-CN": "简体中文",
"zh-TW": "正体中文",
"ja-JP": "日语"
"ja-JP": "日语",
"ko-KR": "韩语"
}
}
},
@@ -217,10 +285,6 @@
"open-logs": "打开日志"
}
},
"changelogs": {
"open" : "🚀 探索更新日志!",
"not-founds": "😕 哎呀,找不到更新日志!"
},
"advanced": {
"title": "高级设置",
"description": "BSManager的高级设置。",
@@ -247,6 +311,13 @@
"error-notification": {
"message": "发生错误,无法更改符号链接设置。"
}
},
"use-system-proxy": {
"title": "使用系统代理",
"description": "BSMansger将通过系统代理发起网络请求。",
"error-notification": {
"message": "发生错误,无法启用系统代理。"
}
}
}
}
@@ -297,6 +368,8 @@
"msg": {
"401": "Steam 似乎不想让我们下载 Beat Saber😢",
"404": "无法联系 Steam 服务器。",
"ExeNotFoundWindows": "\"DepotDownloader.exe\" 缺失。请检查执行文件是否被您的防病毒软件隔离。",
"ExeNotFoundLinux": "\"DepotDownloader\" 的可执行文件缺失。",
"Password": "密码无效",
"InvalidCredentials": "登录凭据无效、连接未经批准或登录尝试次数过多。",
"NoManifest": "未找到清单",
@@ -330,8 +403,8 @@
"UNABLE_TO_GET_MANIFEST": "无法获取下载所需的清单。",
"VERIFY_INTEGRITY_FAILED": "文件验证过程中发生错误。",
"SOME_FILES_FAILED_TO_DOWNLOAD": "一些文件下载失败。",
"OCULUS_LOGIN_TIMED_OUT": "获取登录令牌用时过长。",
"OCULUS_LOGIN_WINDOW_CLOSED_BY_USER": "Meta 登录窗口被关闭。",
"META_LOGIN_TIMED_OUT": "获取登录令牌用时过长。",
"META_LOGIN_WINDOW_CLOSED_BY_USER": "Meta 登录窗口被关闭。",
"NO_META_AUTH_TOKEN": "无法获取下载所需的 Meta 登录令牌。",
"UNKNOWN_ERROR": "发生未知错误。"
}
@@ -418,11 +491,13 @@
"success": {
"titles": {
"BS_LAUNCHING": "启动中...🚀",
"STEAM_LAUNCHING": "Steam 正在启动!"
"STEAM_LAUNCHING": "Steam 正在启动!",
"SKIPPING_STEAM_LAUNCH": "跳过 Steam 启动"
},
"msg": {
"BS_LAUNCHING": "别忘了热身哦 😉",
"STEAM_LAUNCHING": "Beat Saber 会在 Steam 启动后自动启动。"
"STEAM_LAUNCHING": "Beat Saber 会在 Steam 启动后自动启动。",
"SKIPPING_STEAM_LAUNCH": "希望你知道自己在做什么 :)"
}
},
"errors": {
@@ -432,8 +507,11 @@
"OCULUS_NOT_RUNNING": "Oculus 未运行",
"BS_ALREADY_RUNNING": "Beat Saber 已在运行",
"EXE_NOT_FINDED": "缺少文件",
"PROTON_NOT_SET": "Proton文件夹未设置",
"PROTON_NOT_FOUND": "未找到Proton二进制文件",
"EXIT": "突然停止",
"OCULUS_LIB_NOT_FOUND": "未找到 Oculus 库"
"OCULUS_LIB_NOT_FOUND": "未找到 Oculus 库",
"ORIGINAL_OCULUS_NOT_INSTALLED": "未找到原始Oculus版本"
},
"msg": {
"UNKNOWN_ERROR": "发生未知错误。",
@@ -442,7 +520,10 @@
"BS_ALREADY_RUNNING": "再次启动前请关闭 BeatSaber。",
"EXE_NOT_FINDED": "某些文件似乎丢失了,尝试验证文件。",
"EXIT": "BeatSaber 突然停止,请检查文件。",
"OCULUS_LIB_NOT_FOUND": "检查 Oculus 应用是否正确安装,以及库是否在 Oculus 中正确定义。"
"OCULUS_LIB_NOT_FOUND": "检查 Oculus 应用是否正确安装,以及库是否在 Oculus 中正确定义。",
"PROTON_NOT_SET": "在设置中设置Proton路径。",
"PROTON_NOT_FOUND": "在设置中设置Proton路径。",
"ORIGINAL_OCULUS_NOT_INSTALLED": "在打开之前,必须从Oculus应用程序安装Beat Saber。"
},
"actions": {
"STEAM_NOT_RUNNING": "启动 Steam"
@@ -509,6 +590,17 @@
"no-mods": "该版本中没有安装 Mod 😑"
}
}
},
"import-mod": {
"titles": {
"success": "模组导入完成",
"error": "模组导入过程中发生错误"
},
"msgs": {
"success": "模组成功导入。",
"some-success": "一些模组已成功导入。",
"no-dlls": "文件中不包含任何 \"dll\" 文件。"
}
}
},
"maps": {
@@ -563,18 +655,32 @@
"EPERM": "BSManager没有必要的权限来链接文件夹。",
"EACCES": "BSManager没有必要的权限来链接文件夹。",
"ENOSPC": "磁盘已满,请腾出空间后再试。",
"LinkingNotSupported": "该文件系统不支持文件夹链接。",
"UNKNOWN_ERROR": "链接文件夹时发生未知错误。"
}
},
"adding-error": {
"title": "添加共享文件夹失败",
"msg": "您无法将\"{folder}\"添加到共享文件夹。"
}
},
"create-launch-shortcut": {
"success": {
"title": "快捷方式已创建",
"msg": "快捷方式已在桌面上创建"
"msg": "快捷方式已在桌面上创建",
"msg-steam": "快捷方式已在 Steam 库中创建。"
},
"error": {
"msg": "创建快捷方式时发生错误"
}
},
"bs-version-oudated": {
"title": "版本过时",
"msg": "此 Beat Saber 版本已过时,请使用推荐版本以享受最新功能和修复。",
"actions": {
"do-not-remind": "不再提醒",
"ok": "确定"
}
}
},
"modals": {
@@ -712,31 +818,29 @@
}
}
},
"link-maps": {
"title": "关联谱面",
"desc": "关联谱面可以在所有启用此功能的版本之间共享谱面。一旦关联,该版本将受益于共享谱面。",
"info": "添加和删除的谱面也将被共享",
"keep-maps": {
"label": "保留谱面",
"title": "保留谱面将会把当前版本的所有谱面复制到共享谱面文件夹。否则,该版本的谱面将不会被保留,它们将丢失。"
},
"valid-btn": "关联谱面"
},
"unlink-maps": {
"title": "取消关联谱面",
"desc": "请注意,取消关联谱面后该版本将无法使用共享谱面,直到重新启用。",
"keep-maps": {
"label": "保留谱面",
"title": "保留谱面将会在取消关联后把共享文件夹的所有谱面复制到当前版本。如果此项被禁用,谱面也不会丢失。"
},
"valid-btn": "取消关联谱面"
},
"delete-duplicate-maps": {
"title": "删除地图",
"desc": "只有地图 \"{map}\" 是重复的。你确定要删除它吗?",
"desc-plural": "发现了 {nb} 个重复的地图。你确定要删除它们吗?"
}
},
"link-contents": {
"title": "链接{contentType}",
"p-1": "链接{contentType}允许在启用此功能的所有版本之间共享{contentType}。链接后,该版本将受益于共享的{contentType}。",
"p-2": "为了使用链接功能,所有的{itemsHtml}将被移动到{sharedHtml}文件夹中。之后,一个指向共享{contentType}文件夹的符号链接将取代您原来的{contentType}文件夹。",
"warning": "请注意,任何影响{contentType}的更改也会影响所有启用此功能的版本。",
"what-is-a-symbolic-link": "什么是符号链接?",
"i-need-help": "我需要帮助",
"valid-btn": "链接{contentType}"
},
"unlink-contents": {
"title": "取消链接{contentType}",
"p-1": "注意:取消链接{contentType}将禁用此版本中共享的{contentType}功能,直到该功能再次启用。",
"p-2": "为了取消链接您的{contentType},指向{sharedHtml}的符号链接将被删除。之后,共享文件夹中的所有{contentType}将被复制到您Beat Saber版本的{itemsHtml}文件夹中。",
"do-not-copy-contents": "不复制{contentType}",
"do-not-copy-contents-tip": "如果启用,共享文件夹中的{contentType}不会被复制到您的Beat Saber版本中。结果是,取消链接后,您的Beat Saber版本中将不再保留任何{contentType}。",
"valid-btn": "取消链接{contentType}"
},
"download-maps": {
"search-btn": "搜索",
"loading-maps": "谱面加载中...",
@@ -758,15 +862,22 @@
"add-folder": "添加文件夹",
"link-folder": "关联文件夹",
"unlink-folder": "取消关联文件夹",
"link-all": "关联所有"
"link-all": "关联所有",
"remove-from-the-list": "从列表中移除"
}
},
"adding-shared-folder": {
"title": "添加共享文件夹",
"description": "链接\"{folder}\"文件夹时可能会遇到问题。您确定要添加它吗?"
},
"create-launch-shortcut": {
"title": "创建快捷方式",
"desc": "创建快捷方式使得你可以在不通过 BSManager 的情况下以特定选项启动 BeatSaber",
"launch-options": "启动选项",
"advanced-launch": "高级启动",
"valid-btn": "创建快捷方式"
"valid-btn": "创建快捷方式",
"create-steam-shortcut": "创建 Steam 快捷方式",
"steam-shortcut-tippy": "如果启用,将不会在桌面创建快捷方式,而是在 Steam 中创建。"
},
"connect-to-meta": {
"title": "连接到 Meta",
@@ -779,13 +890,12 @@
"stay": "记住我",
"connect-to-meta": "连接到 Meta"
},
"original-version-backup-oculus": {
"title": "警告",
"body": {
"must-be-installed-once": "你必须至少从 Oculus 商店安装过一次 BeatSaber,否则 BeatSaber 可能会在启动后自动关闭。",
"will-backup": "为了启动这个版本,位于您的Oculus库中的Beat Saber的原始安装文件夹将被重命名,并且在Beat Saber关闭时会自动恢复。"
},
"not-remind-me": "不再提醒我",
"enable-oculus-sideloaded-apps": {
"title": "启用旁加载",
"info-1": "为了启动 Beat Saber,必须启用运行旁加载应用程序的功能。BSManager 将请求管理员权限以自动启用此功能。",
"info-2": "旁加载功能允许启动位于 Oculus 库文件夹之外的游戏。",
"info-3": "激活 sideloading 后,该功能将保持激活状态,您将不再被提示启用它。",
"i-want-to-do-it-myself": "我想自己完成",
"understood": "明白了"
},
"enter-meta-token": {
@@ -819,9 +929,17 @@
"ask-install-path": {
"title": "安装文件夹",
"choose-folder-description": "选择将包含 BSManager 下载的所有内容的文件夹。(版本、mod、地图、播放列表等)",
"choose-folder": "选择文件夹",
"default": "默认",
"default-tooltip": "默认为您的主文件夹"
},
"choose-proton-folder": {
"title": "Proton文件夹",
"proton-folder-description": "在Linux上,BSManager需要Proton才能运行。请选择Proton的安装文件夹以继续。",
"proton-folder-placeholder": "Proton安装文件夹",
"where-is-proton-installed": "Proton安装在哪里?"
},
"bs-version-outdated": {
"body": "版本 {outdatedVersion} 已过时,某些模组或功能可能无法正常工作。请下载最新推荐的 Beat Saber 版本 ({recommendedVersion}),以享受最新功能和修复。"
}
},
"maps": {
@@ -832,7 +950,8 @@
"tags": "标签",
"specificities": "general",
"requirements": "要求",
"exclude": "排除"
"exclude": "排除",
"leaderboard": "排行榜"
},
"map-types": {
"accuracy": "精确度",
@@ -883,11 +1002,16 @@
},
"map-specificities": {
"automapper": "AI",
"ranked": "ranked",
"curated": "curated",
"verified": "verified",
"fullSpread": "full spread"
},
"map-leaderboard": {
"All": "所有",
"Ranked": "排名的",
"BeatLeader": "BeatLeader",
"ScoreSaber": "ScoreSaber"
},
"map-excludes": {
"installed": "已安装"
},
@@ -975,86 +1099,6 @@
"no-models": "未找到模型",
"no-internet": "无网络连接",
"error-occured": "发生了一个错误,稍后重试。"
},
"link-models": {
"avatar": {
"title": "关联 Avatar",
"desc": "关联 Avatar 允许在所有启用此功能的版本之间共享 Avatar。一旦关联,该版本将受益于共享 Avatar。",
"info": "对 Avatar 的添加和删除也将被共享",
"keep-models": {
"label": "保留 Avatar",
"title": "保留 Avatar 将会把当前版本的所有 Avatar复制到共享 Avatar文件夹。否则,该版本的 Avatar将不会被保留,它们将丢失。"
},
"valid-btn": "关联 Avatar "
},
"saber": {
"title": "关联光剑",
"desc": "关联光剑允许在所有启用此功能的版本之间共享光剑。一旦关联,该版本将受益于共享光剑。",
"info": "对光剑的添加和删除也将被共享",
"keep-models": {
"label": "保留光剑",
"title": "保留光剑将会把当前版本的所有光剑复制到共享光剑文件夹。否则,该版本的光剑将不会被保留,它们将丢失。"
},
"valid-btn": "关联光剑"
},
"platform": {
"title": "关联平台",
"desc": "关联平台允许在所有启用此功能的版本之间共享平台。一旦关联,该版本将受益于共享平台。",
"info": "对平台的添加和删除也将被共享",
"keep-models": {
"label": "保留平台",
"title": "保留平台将会把当前版本的所有平台复制到共享平台文件夹。否则,该版本的平台将不会被保留,它们将丢失。"
},
"valid-btn": "关联平台"
},
"bloq": {
"title": "关联方块",
"desc": "关联方块允许在所有启用此功能的版本之间共享方块。一旦关联,该版本将受益于共享方块。",
"info": "对方块的添加和删除也将被共享",
"keep-models": {
"label": "保留方块",
"title": "保留方块将会把当前版本的所有方块复制到共享方块文件夹。否则,该版本的方块将不会被保留,它们将丢失。"
},
"valid-btn": "关联方块"
}
},
"unlink-models": {
"avatar": {
"title": "取消关联 Avatar",
"desc": "请注意,取消关联 Avatar 将禁用该版本的共享 Avatar 使用,直到重新启用。",
"keep-models": {
"label": "保留 Avatar",
"title": "保留 Avatar 将会在取消关联后把共享文件夹的所有 Avatar 复制到当前版本。如果此项被禁用,Avatar 将不会丢失。"
},
"valid-btn": "取消关联 Avatar"
},
"saber": {
"title": "取消关联光剑",
"desc": "请注意,取消关联光剑将禁用该版本的共享光剑使用,直到重新启用。",
"keep-models": {
"label": "保留光剑",
"title": "保留光剑将会在取消关联后把共享文件夹的所有光剑复制到当前版本。如果此项被禁用,光剑将不会丢失。"
},
"valid-btn": "取消关联光剑"
},
"platform": {
"title": "取消关联平台",
"desc": "请注意,取消关联平台将禁用该版本的共享平台使用,直到重新启用。",
"keep-models": {
"label": "保留平台",
"title": "保留平台将会在取消关联后把共享文件夹的所有平台复制到当前版本。如果此项被禁用,平台将不会丢失。"
},
"valid-btn": "取消关联平台"
},
"bloq": {
"title": "取消关联方块",
"desc": "请注意,取消关联方块将禁用该版本的共享方块使用,直到重新启用。",
"keep-models": {
"label": "保留方块",
"title": "保留方块将会在取消关联后把共享文件夹的所有方块复制到当前版本。如果此项被禁用,方块将不会丢失。"
},
"valid-btn": "取消关联方块"
}
}
},
"notifications": {
@@ -1064,10 +1108,6 @@
"go-to-mods": "前往 Mod 页",
"not-remind": "不再提醒我"
},
"prevent-for-models-breaks": {
"title": "已损坏的模型",
"desc": "自从Beat Saber引擎更新以来,所有自定义模型的MOD都已损坏,需要更新。它们还没有被更新。"
},
"export-success": {
"title": "导出成功 🎉"
}
@@ -1135,14 +1175,6 @@
"stop-download": "停止下载",
"cancel-download": "取消下载",
"open-file": "打开文件",
"link-playlists": "链接播放列表",
"link-playlist-desc": "链接播放列表允许在所有版本之间共享播放列表。一旦链接,此版本将受益于共享播放列表",
"link-playlist-info": "添加和删除播放列表也将被共享",
"keep-playlists": "保留播放列表",
"keep-playlists-tip": "保留播放列表将把当前版本的播放列表移动到共享播放列表文件夹。否则,它们将丢失",
"unlink-playlists": "取消链接播放列表",
"unlink-playlist-desc": "警告,取消链接播放列表将不再允许此版本使用共享播放列表。",
"unlink-keep-playlists-tip": "保留播放列表将为当前版本创建共享播放列表的副本。否则,此版本将不保留任何播放列表。",
"delete-playlist-ask": "删除播放列表?",
"delete-playlists-ask": "删除播放列表?",
"delete-playlist-desc": "您确定要删除播放列表 \"{playlistTitle}\" 吗?",
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2
View File
@@ -0,0 +1,2 @@
# https://github.com/electron/electron/issues/42510
/usr/bin/chmod 4755 /opt/BSManager/chrome-sandbox
@@ -1,21 +0,0 @@
If you encounter a keyboard shortcut conflict between AMD Software and Oculus Rift, you can either disable or modify the conflicting shortcut.
_Special thanks to_ `𝔽𝕪𝕟𝕟 (fynn07)` _for its contribution with information and screenshots_
### __Follow these steps to disable the shortcut in AMD Software:__
# Step 1 - Access Settings:
- Open AMD Software and click on the gear icon in the top right corner to go to settings.
![image](https://github.com/Zagrios/bs-manager/assets/40648115/2762f59c-f12a-46ba-80fa-9bf79beb64a9)
# Step 2 - Modify Keyboard Shortcuts:
- In the settings menu, select the "Hotkey" tab.
![image](https://github.com/Zagrios/bs-manager/assets/40648115/262d4fcc-529f-4c4c-9b87-e2da21df1b95)
# Step 3 -Disabling Shortcuts:
- Turn off the "Use Hotkeys" option to prevent any conflicts with Oculus Rift.
![image](https://github.com/Zagrios/bs-manager/assets/40648115/756018ad-7de3-469c-9f40-0082be007805)
# Step 3 alt - Modify the Shortcut:
- If you prefer to keep using keyboard shortcuts, consider changing the specific conflicting shortcut (e.g., "Ctrl + Shift + I") to another combination that is less likely to interfere.
️ _**Keep in mind you can't change the full keybind!**_
_**You can only Change the "i" to an different Button!**_
@@ -0,0 +1,60 @@
## Table of Contents
- [With BSManager](#with-bsmanager)
- [Install playlists](#how-to-install-playlists-with-bsmanager)
- [Import playlists](#how-to-import-playlist-with-bsmanager)
- [Manual Installation](#manual-installation)
- [One-Click Installation](#one-click-installation)
## With BSManager
### How to Install Playlists with BSManager
1. Download and install [BSManager](https://www.bsmanager.io) from one of the following sources:
- [GitHub](https://github.com/Zagrios/bs-manager/releases/latest)
- [Official Website](https://www.bsmanager.io)
- [Nexus Mods](https://www.nexusmods.com/beatsaber/mods/18?tab=files)
2. Launch BSManager and select the version of *Beat Saber* where you want to install playlists from the list on the left side of the interface.
3. Go to the `Playlist` section by clicking on the __`Maps`__ tab.
4. Click the __`Add`__ button, then select __`Browse playlist`__ to open the list of online playlists.
5. Use the search bar at the top of the interface to filter playlists or sort the list.
6. Download to install it.
7. Wait for the installation to complete. Once it's finished, you can launch Beat Saber directly from [BSManager](https://www.bsmanager.io) and enjoy your new playlists!
> [!NOTE]
> You can click on a playlist's image to view the maps it contains and download only the maps you want.
### How to Import Playlist with BSManager
1. Download and install [BSManager](https://www.bsmanager.io) from one of the following sources:
- [GitHub](https://github.com/Zagrios/bs-manager/releases/latest)
- [Official Website](https://www.bsmanager.io)
- [Nexus Mods](https://www.nexusmods.com/beatsaber/mods/18?tab=files)
2. Launch BSManager and select the version of *Beat Saber* where you want to install playlists from the list on the left side of the interface.
3. Go to the `playlist` section by clicking on the __`Maps`__ tab.
4. From here, there are two possible methods:
1. Click the __`Add`__ button, then select __`Import a playlist`__ and choose the file to import.
2. Drag and drop your file directly onto the playlist interface in BSManager.
5. Wait for the import to complete. Once finished, you can launch Beat Saber directly from [BSManager](https://www.bsmanager.io) and enjoy your new playlists!
> [!Important]
> The file must be in `.bplist` or `.json` format to be imported.
## Manual Installation
1. Download your preferred custom playlists from trusted sources. Ensure that they are in __`.bplist`__ format.
2. Open [BSManager](https://www.bsmanager.io) and select the version of Beat Saber in which you want to install the playlist.
3. Click on the version options at the top-right corner of the BSM interface, then select __`Open Folder`__.
4. In the folder for the Beat Saber version, locate the __`Playlists`__ folder. If this folder doesn't exist, create it.
5. Copy and paste the downloaded __`.bplist`__ files of your custom playlists into this folder.
6. Launch the game with BSM, navigate to your playlist, click on it, and download it.
> [!WARNING]
> Exercise caution when downloading custom playlists for Beat Saber. Only use reliable sources to avoid any risks to your computer.
## One-Click Installation
1. Launch [BSManager](https://www.bsmanager.io) and make sure that the One-Click installation feature is enabled for playlists.
2. Go to one of the supported websites and search for the playlist you want to install.
3. Once you've found the playlist, click on the __`One-Click`__ or __`Install`__ button on the website.
4. A pop-up window will appear, asking for confirmation. Click on __`Yes`__ to proceed with the installation.
@@ -0,0 +1,55 @@
## Table of Contents
- [With BSManager](#with-bsmanager)
- [Install maps](#how-to-install-maps-with-bsmanager)
- [Import maps](#how-to-import-maps-with-bsmanager)
- [Manual Installation](#manual-installation)
- [One-Click Installation](#one-click-installation)
## With BSManager
### How to Install Maps with BSManager
1. Download and install [BSManager](https://www.bsmanager.io) from one of the following sources:
- [GitHub](https://github.com/Zagrios/bs-manager/releases/latest)
- [Official Website](https://www.bsmanager.io)
- [Nexus Mods](https://www.nexusmods.com/beatsaber/mods/18?tab=files)
2. Launch BSManager and select the version of *Beat Saber* where you want to install maps from the list on the left side of the interface.
3. Go to the `Maps` section by clicking on the __`Maps`__ tab.
4. Click the __`Add`__ button to access the list of online maps.
5. Use the search bar at the top of the interface to filter maps by __`name`__, __`type`__, __`mods`__, __`tags`__, __`notes per second`__, or __`duration`__, and order the list by __`latest`__, __`relevance`__, __`rating`__, or __`curated`__.
6. Download to install it.
7. Wait for the installation to complete. Once it's finished, you can launch Beat Saber directly from [BSManager](https://www.bsmanager.io) to enjoy your new maps!
### How to Import Maps with BSManager
1. Download and install [BSManager](https://www.bsmanager.io) from one of the following sources:
- [GitHub](https://github.com/Zagrios/bs-manager/releases/latest)
- [Official Website](https://www.bsmanager.io)
- [Nexus Mods](https://www.nexusmods.com/beatsaber/mods/18?tab=files)
2. Launch BSManager and select the version of *Beat Saber* where you want to install maps from the list on the left side of the interface.
3. Go to the `Maps` section by clicking on the __`Maps`__ tab.
4. From here, there are two possible methods:
1. Click the __`Add`__ button, then select __`Import maps`__ and choose the .zip file to import.
2. Drag and drop your .zip file directly onto the maps interface in BSManager.
5. Wait for the import to complete. Once finished, you can launch Beat Saber directly from [BSManager](https://www.bsmanager.io) to enjoy your new maps!
> [!Important]
> The file must be in `.zip` format to be imported.
## Manual Installation
1. Find the map you want to install on a site like [BeatSaver](https://beatsaver.com).
2. Download the map to your computer.
3. Open [BSManager](https://www.bsmanager.io) and select the version of Beat Saber to which you want to install the map.
4. Click on the version options at the top-right corner of the interface, then select __`Open Folder`__.
5. Move the downloaded map `.zip` file into the __`CustomLevels`__ folder, which is located at `Beat Saber_Data\CustomLevels`.
6. Right-click the `.zip` file, select __`Extract All`__, then press __`Extract`__ in the popup. You can then delete the `.zip` file.
7. Launch Beat Saber, and the map should now be available to play.
## One-Click Installation
1. Launch [BSManager](https://www.bsmanager.io) and make sure that the One-Click installation feature is enabled for maps.
2. Go to one of the supported websites and search for the map you want to install.
3. Once you've found the map, click on the __`One-Click`__ or __`Install`__ button on the website.
4. A pop-up window will appear, asking for confirmation. Click on __`Yes`__ to proceed with the installation.
@@ -0,0 +1,33 @@
> [!WARNING]
>
> __The models require mods to work properly! Dont forget to download them!__
>
> - For custom sabers, use [CustomSabersLite](https://github.com/qqrz997/CustomSabersLite) or an equivalent mod.
> - For custom avatars, use [Custom Avatars](https://github.com/nicoco007/BeatSaberCustomAvatars) or an equivalent mod.
> - For custom blocks, use [Custom Notes](https://github.com/legoandmars/BeatSaberCustomNotes) or an equivalent mod.
> - For custom platforms, use [Custom Platforms](https://github.com/affederaffe/CustomPlatforms) or an equivalent mod.
## Table of Contents
- [With BSManager](#with-bsmanager)
- [One-Click Installation](#one-click-installation)
## With BSManager
1. Download and install [BSManager](https://www.bsmanager.io) from one of the following sources:
- [GitHub](https://github.com/Zagrios/bs-manager/releases/latest)
- [Official Website](https://www.bsmanager.io)
- [Nexus Mods](https://www.nexusmods.com/beatsaber/mods/18?tab=files)
2. Launch [BSManager](https://www.bsmanager.io) and select the Beat Saber version where you want to install models from the list on the left of the interface.
3. Go to models by clicking on the __`Models`__ tab.
4. Click on the __`Add`__ button to access the list of online models.
5. Find the models that you want to install from the provided list. You can use the search bar at the top of the interface to filter models by __`name`__, __`type`__, and order the list by __`date`__, __`name`__, or __`author`__.
6. Download to install the model.
7. Wait for the installation to complete. Once it's finished, you can launch Beat Saber directly from [BSManager](https://www.bsmanager.io) to enjoy your new models!
## One-Click Installation
1. Launch [BSManager](https://www.bsmanager.io) and make sure that the One-Click installation feature is enabled for models.
2. Go to one of the supported websites and search for the models you want to install.
3. Once you've found the models, click on the __`One-Click`__ or __`Install`__ button on the website.
4. A pop-up window will appear, asking for confirmation. Click on __`Yes`__ to proceed with the installation.
@@ -0,0 +1,61 @@
## Table of Contents
- [With BSManager](#with-bsmanager)
- [Install mods](#how-to-install-mods-with-bsmanager)
- [Import mods](#how-to-import-mods-with-bsmanager)
- [Manual Installation](#manual-installation)
## With BSManager
### How to Install Mods with BSManager
1. Download and install [BSManager](https://www.bsmanager.io) from one of the following sources:
- [GitHub](https://github.com/Zagrios/bs-manager/releases/latest)
- [Nexus Mods](https://www.nexusmods.com/beatsaber/mods/18?tab=files)
- [Official Website](https://www.bsmanager.io)
2. Launch [BSManager](https://www.bsmanager.io) and select the version of Beat Saber that you want to use from the list on the left side of the interface.
3. Go to mods by clicking on the __`Mods`__ tab.
4. Find the mods that you want to install from the provided list. You can use the search bar at the top of the interface to filter mods by name.
5. Check the box next to the name of each mod that you want to install.
6. Click __`Install or Update`__ at the bottom-right corner of the interface.
7. Wait for the installation to complete. Once it's finished, you can launch Beat Saber directly from [BSManager](https://www.bsmanager.io) to enjoy your new mods!
### How to Import Mods with BSManager
1. Download and install [BSManager](https://www.bsmanager.io) from one of the following sources:
- [GitHub](https://github.com/Zagrios/bs-manager/releases/latest)
- [Official Website](https://www.bsmanager.io)
- [Nexus Mods](https://www.nexusmods.com/beatsaber/mods/18?tab=files)
2. Launch BSManager and select the version of *Beat Saber* where you want to install mods from the list on the left side of the interface.
3. Go to the `Mods` tab.
4. From here, there are two possible methods:
1. Click on __`⁝`__ button, then select __`Import mods`__ and choose the .zip or .dll file to import.
2. Drag and drop your .zip or .dll file directly onto the mods interface in BSManager.
5. Wait for the import to complete. Once finished, you can launch Beat Saber directly from [BSManager](https://www.bsmanager.io) to enjoy your new mods!
> [!Important]
> The file must be in `.zip` or `.dll` format to be imported.
## Manual Installation
> [!IMPORTANT]
> This guide assumes your game already has core mods installed
>
> If it doesn't: open [BSManager](https://www.bsmanager.io), select the game version you want to mod, go to the Mods tab, and click __`Install or Update`__. Then, run your game once, go to the main menu, and close it. ️*
1. Open [BSManager](https://www.bsmanager.io) and select the version of Beat Saber you want to install the mod to.
2. Click on the version options button at the top-right corner, then select __`Open Folder`__.
3. Download the desired mod from a trusted source, often found on community GitHub repositories. Search for the mod's name followed by "GitHub" in your search engine.
4. Installing Different Types of Mods:
- __For mods that come as a single `.dll` file:__ If the mod consists of a single __`.dll`__ file, copy this file into the __`Plugins`__ folder in the directory you opened in step 2.
> [!NOTE]
>
> Do __not__ place files in __`Beat Saber_Data\Plugins`__. If you do not see a __`Plugins`__ folder directly in the folder you opened in step 2, make sure you have core mods installed and have run your game at least once after installing mods.
- __For mods that come as a `.zip` file:__ If the mod includes multiple files or folders, you need to maintain the provided folder structure. Double-click the zip file to open it, press __`CTRL+A`__ and then __`CTRL+C`__ to copy all files/folders inside the zip, go to the directory you opened in step 2, and press __`CTRL+V`__ to paste them there. Do __not__ paste them in any subfolder, such as __`Plugins`__ or __`Beat Saber_Data`__. If you are prompted to merge folders or overwrite files, click "Yes."
5. The mod should now be installed. Run Beat Saber to check if the mod functions correctly. If it doesn't, double-check that you:
- Have all required dependencies installed. These are typically listed somewhere on the mod's release page.
- Placed the mod in the correct install folder.
- Downloaded a mod intended for your game version.
@@ -0,0 +1,58 @@
## Table of Contents
- [Introduction](#introduction)
- [Prerequisites](#prerequisites)
- [Steps to Contribute](#steps-to-contribute)
- [1. Create a Fork on GitHub](#1-create-a-fork-on-github)
- [2. Clone Your Fork](#2-clone-your-fork)
- [3. Make Your Changes](#3-make-your-changes)
- [4. Submit a Pull Request](#4-submit-a-pull-request)
## Introduction
Thank you for your interest in improving the wiki! This guide will help you through the process of contributing, whether youre adding new pages, fixing errors, or enhancing existing content.
## Prerequisites
Before contributing, make sure you have:
1. A GitHub account.
2. Basic knowledge of Markdown.
## Steps to Contribute
### 1. Create a Fork on GitHub
To contribute, start by creating a fork of the repository:
1. Go to the [GitHub page of the repository](https://github.com/Zagrios/bs-manager).
2. Click on the __`Fork`__ button in the top-right corner of the page.
3. Once the fork is created, it will appear under your GitHub account.
### 2. Clone Your Fork
Now, clone your fork to your local machine for editing:
```bash
git clone https://github.com/[your-username]/[repository-name].git
cd [repository-name]
```
### 3. Make Your Changes
Make edits, add new pages, or update content as needed. Then commit and push your changes to your fork:
```bash
git add .
git commit -m "Describe your changes here"
git push origin master
```
### 4. Submit a Pull Request
Once your changes are ready:
1. Go to the __[original repository](https://github.com/Zagrios/bs-manager)__ on GitHub.
2. Click the __`Pull Requests`__ tab, then __`New Pull Request`__.
3. Compare changes between your fork and the original repository.
4. Add a clear description of your changes and submit the pull request.
Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

@@ -0,0 +1,46 @@
## Table of Contents
- [How to create a shortcut on Windows](#how-to-create-a-shortcut-on-windows)
- [On desktop](#on-desktop)
- [On taskbar](#on-taskbar)
- [How to create a shortcut on Steam](#how-to-create-a-shortcut-on-steam)
## How to create a shortcut on Windows
### On Desktop
1. Launch [BSManager](https://www.bsmanager.io) and select your version.
2. Click on the gear icon at the top-right corner of the version.
3. Click on the __`Create a Shortcut`__ button.
4. Choose your launch options.
5. Click on __`Create a Shortcut`__. It should now appear on your desktop.
<div align="center">
<img src="../wiki/Guides/Installation-and-updates/Create-a-shortcut/BsmShortcutInterface.png" alt="SeeTxtFile.png" />
</div>
### On Taskbar
1. Open Notepad and drag & drop the version shortcut you need.
2. Grab the version link (e.g., `bsmanager://launch/?version=1.34.2&versionIno=19140298416807704`) - More info [here](#how-to-create-a-shortcut-on-steam).
3. Open a new Notepad window and type the following:
```bat
@echo off
start <version link>
```
4. Save the file with a `.bat` extension.
5. Create a shortcut to this `.bat` file. Edit the shortcut path to: `cmd.exe /C <shortcut path>`.
## How to create a shortcut on Steam
1. Launch [BSManager](https://www.bsmanager.io) and select your version.
2. Click on the gear icon at the top-right corner of the version.
3. Click on the __`Create a Shortcut`__ button.
4. Choose your launch options.
5. Click on __`Create a Shortcut`__. It should now appear on your desktop.
<div align="center">
<img src="../wiki/Guides/Installation-and-updates/Create-a-shortcut/SteamShortcutCheck.png" alt="SeeTxtFile.png" />
</div>
Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

@@ -0,0 +1,70 @@
> [!WARNING]
>
> [BSManager](https://www.bsmanager.io) does not store your login information. It uses the open-source tool [`DepotDownloader`](https://github.com/SteamRE/DepotDownloader) to download versions of Beat Saber.
## Table of Contents
- [Install a Version with Steam](#install-a-version-with-steam)
- [Install a Version with Oculus Store (PCVR)](#install-a-version-with-oculus-store-pcvr)
- [Import a Version](#how-to-import-a-version)
## Install a Version with Steam
1. Download and install [BSManager](https://www.bsmanager.io) from one of the following sources:
- [GitHub](https://github.com/Zagrios/bs-manager/releases/latest)
- [Official Website](https://www.bsmanager.io)
- [Nexus Mods](https://www.nexusmods.com/beatsaber/mods/18?tab=files)
2. Open the __`Add Versions`__ interface and select the version you wish to download.
3. Choose __`Steam`__ as your platform.
4. Enter your Steam credentials (ID and password) or scan the QR code using the Steam app on your phone.
5. Once logged into Steam, the download will start automatically. Please wait for it to complete.
6. When the download is finished, select the downloaded version and click the __`Launch`__ button to verify that the game launches correctly.
<div align="center">
<img src="../wiki/Guides/Installation-and-updates/Install-or-import-a-version/SteamLogin.png" alt="SteamLogin.png" />
</div>
## Install a Version with Oculus Store (PCVR)
> [!IMPORTANT]
>
> - Ensure that Beat Saber is in your __Oculus PCVR__ library to enable downgrading.
> - You must run Beat Saber at least once on your computer before attempting to launch retrograde Oculus versions from [BSManager](https://www.bsmanager.io).
1. Download and install [BSManager](https://www.bsmanager.io) from one of the following sources:
- [GitHub](https://github.com/Zagrios/bs-manager/releases/latest)
- [Official Website](https://www.bsmanager.io)
- [Nexus Mods](https://www.nexusmods.com/beatsaber/mods/18?tab=files)
2. Open the __`Add Versions`__ interface and select the version you wish to download.
3. Choose __`Oculus Store`__ as your platform.
4. Click on __`Connect to Meta`__ or __`Enter my login token manually`__ based on your preferred login method.
### If you selected __`Connect to Meta`__
1. You will be redirected to the Oculus website. Enter your email and follow the instructions to log in.
2. Once logged in, the download will start automatically. Please wait for it to complete.
3. When the download finishes, select the downloaded version and click the __`Launch`__ button to verify that the game launches correctly.
### If you selected __`Enter my login token manually`__
1. Follow [this guide](How-to-obtain-your-Oculus-Token) to obtain your Oculus token.
2. Once the token is entered and validated, the download will start automatically. Please wait for it to complete.
3. When the download finishes, select the downloaded version and click the __`Launch`__ button to verify that the game launches correctly.
<div align="center">
<img src="../wiki/Guides/Installation-and-updates/Install-or-import-a-version/OculusLogin.png" alt="OculusLogin.png" />
<img src="../wiki/Guides/Installation-and-updates/Install-or-import-a-version/OculusLoginToken.png" alt="OculusLoginToken.png" />
</div>
## How to Import a Version
> [!IMPORTANT]
>
> - You will need to download a version of Beat Saber yourself before you can import it.
> - The [BSManager](https://www.bsmanager.io) team provides tutorials like [this one](https://steamcommunity.com/sharedfiles/filedetails/?id=1805934840) to help you download official versions of Beat Saber. However, no team member will offer assistance for cracked versions.
1. Launch [BSManager](https://www.bsmanager.io).
2. Click the gear icon in the top-right corner of the interface.
3. Select the __`Import a Version`__ option.
4. Choose the file containing the version to be imported.
5. Wait a few moments. The imported version should appear alongside the others in the version list.
Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

@@ -0,0 +1,80 @@
## Table of Contents
- [Installation](#installation)
- [Ubuntu, Debian (deb)](#ubuntu-debian-deb)
- [PPA Repository](#ppa-repository)
- [dpkg Install](#dpkg-install)
- [Arch (AUR)](#arch-aur)
- [Universal (flatpak)](#universal-flatpak)
- [Proton Setup](#proton-setup)
## Installation
Go to [Releases](https://github.com/Zagrios/bs-manager/releases) page and go to the latest alpha release (version 1.5.0-alpha.5 or higher). Download the necessary build installer for your distro (see below).
### Ubuntu, Debian (deb)
#### PPA Repository
Refer to [bs-manager-deb](https://github.com/silentrald/bs-manager-deb).
Add the BSManager PPA repository into your system with the following commands.
```bash
curl -fsSL https://raw.githubusercontent.com/silentrald/bs-manager-deb/refs/heads/main/KEY.gpg | sudo gpg --dearmor -o /usr/share/keyrings/bs-manager.gpg
echo "deb [signed-by=/usr/share/keyrings/bs-manager.gpg] https://raw.githubusercontent.com/silentrald/bs-manager-deb/refs/heads/main ./" | sudo tee /etc/apt/sources.list.d/bs-manager.list
sudo apt update
```
Install the `bs-manager` package using `apt`.
```bash
sudo apt install bs-manager
```
#### dpkg install
Download the `.deb` file in the releases and run the following command:
```bash
dpkg -i ./bsmanager.deb
```
**NOTE:** When installed using dpkg, BSManager will not automatically update to the latest version. You have to either:
- Download the latest `.deb` file on the Releases page; or
- Install thru PPA repository to automatically update with `sudo apt update & sudo apt upgrade`.
### Arch (AUR)
Refer to [bs-manager-git](https://aur.archlinux.org/packages/bs-manager-git).
To install AUR packages, you need to install [yay](https://github.com/Jguer/yay).
### Universal (flatpak)
This should work on any linux distribution. You are only required to have `flatpak` installed in your system. If it is not installed, then go to [flatpak](https://flatpak.org/setup/) to look for a guide on how to install it on your distro.
After installing, download the `.flatpak` file in the releases and run the following command:
```bash
flatpak install --user ./bsmanager.flatpak
```
If you are getting errors like packages not existing, run the command below so that it finds the correct packages.
```bash
sudo flatpak remote-add --if-not-exists --system flathub https://flathub.org/repo/flathub.flatpakrepo
# or
flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
```
Flatpak also supports sandboxing which gives the minimal access to your machine. To configure this, you can download [Flatseal](https://flathub.org/apps/com.github.tchx84.Flatseal) which has a GUI to edit your permissions. You can also this with the `flatpak` executable but it will not be discussed here.
## Proton Setup
[Proton](https://github.com/ValveSoftware/Proton) is needed to run the Beat Saber executable under Linux. You need to download this from either from Steam or building it from their GitHub repo.
Once Proton is installed, when you open your BSManager application for the first time, it will ask you to link the _Proton Folder_. The _Proton Folder_ also verifies if the `proton` and `files/bin/wine64` binaries exists. Once set, you should be able to launch the Beat Saber (using `proton`) and install mods (using `files/bin/wine64`). You can still change the _Proton Folder_ in the **settings page** if any new version of Steam Proton is downloaded.
Binary file not shown.

After

Width:  |  Height:  |  Size: 687 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 KiB

@@ -0,0 +1,61 @@
> [!WARNING]
>
> Your token is a confidential piece of information. Possession of this token allows individuals to download applications, send messages, among other actions, under your identity.
>
>However, you might wonder why it is necessary to provide this token to BSManager. The reason is that BSManager requires the token to continue the download with Oculus. Once you've input the token, it is used exclusively to communicate with Oculus servers to verify that you are the rightful owner of the game.
## Table of Contents
- [Step 1 - Install and log into the Oculus Rift app](#step-1---install-and-log-into-the-oculus-rift-app)
- [Step 2 - Open developer tools](#step-2---open-developer-tools)
- [Step 3 - Copy your Token](#step-3---copy-your-token)
# Solution 1 - Using the Oculus app
## Step 1 - Install and log into the Oculus Rift app
1. Download the Oculus Rift app setup from the [Meta website](https://www.oculus.com/rift/setup/).
2. Install the Oculus Rift app on your computer.
> [!NOTE]
>__If you bought Beat Saber from the Quest store, it won't appear in your Rift library by default. To download it with [BSManager](https://www.bsmanager.io), first claim it from its store page.__
## Step 2 - Open developer tools
1. Open the Oculus app.
2. Open the developer tools by pressing `Ctrl` + `Shift` + `i`.
## Step 3 - Copy your Token
In the developer tools:
1. Open the __`Network`__ tab.
2. Filter for __`graph`__.
3. Click on the first request that appears.
4. Open the __`Payload`__ tab.
5. Scroll to the bottom to locate your token. It should start with __`FRL`__.
6. Select the token using your mouse and press `Ctrl` + `C` to copy it.
<div align="center">
<img src="../wiki/Guides/Login/How-to-obtain-your-Oculus-Token/GetYourOculusToken.png" alt="GetYourOculusToken.png" />
</div>
# Solution 2 - Using the Oculus website
## Steps
1. Log in to your Meta account at https://secure.oculus.com
2. Open the developer tools in your web browser:
- Chrome/Edge/Firefox: Press <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>I</kbd> or <kbd>F12</kbd>
- Safari: Press <kbd>Option</kbd>+<kbd>Command</kbd>+<kbd>I</kbd>
3. Go to the "Application" tab
4. Expand "Cookies" in the left sidebar
5. Click on `https://secure.oculus.com`
6. Find the cookie named `oc_ac_at` (value starts with `OC`)
7. Copy the entire `oc_ac_at` cookie value - this is your token
<div align="center">
<img src="../wiki/Guides/Login/How-to-obtain-your-Oculus-Token/GetYourOculusTokenBrowser.png" alt="GetYourOculusTokenBrowser.png" />
</div>
Paste the token into BSManager or other trusted apps to manage your Beat Saber game and mods. Keep it confidential.
+67 -9
View File
@@ -1,14 +1,72 @@
Welcome to the bs-manager wiki! (wip c:)
# Welcome to the BSManager Wiki
to get you oculus token check here : https://github.com/Zagrios/bs-manager/wiki/How-to-obtain-your-Oculus-Token
BSManager is your all-in-one tool designed to simplify and enhance your Beat Saber experience. With BSManager, you can effortlessly manage game versions, mods, maps, and more, ensuring a seamless and enjoyable gameplay journey.
---
## 📚 Guides
This Wiki accepts contributions!
Our comprehensive guides are crafted to assist you in maximizing BSManager's capabilities:
To contribute to the wiki:
### 🛠️ Installation and Updates
- Fork the project
- Add/Edit `.md` files in the `docs/wiki/` folder
- Create a Pull Request
- Once the PR is merged (after review), it will be present in the repository's wiki
Step-by-step instructions to install BSManager on your system and keep it up to date
- [Install BSManager on Linux](install-bsmanager-on-linux)
- [Install or import a version](install-or-import-a-version)
- [Create a shortcut](create-a-shortcut)
### 🔑 Login
Guidance on logging into BSManager to access all features
- [How to obtain your Oculus Token](How-to-obtain-your-Oculus-Token)
### 🎮 Content Management
- __🗺️ Maps__: Learn how to download and organize custom maps for endless entertainment.
- [Install any map](install-any-map)
- [Install all playlists you want](install-all-playlists-you-want)
- __🧩 Mods__: Discover how to install, update, and manage mods to enhance your gameplay.
- [Install mods on your version](install-mods-on-your-version)
- __🖼️ Models__: Find out how to integrate custom models into your Beat Saber experience.
- [Modify models in your Beat Saber](modify-models-in-your-beat-saber)
### 🤝 Contribution
Information on how to contribute to the development and improvement of BSManager
- [Help us update the wiki](help-us-update-the-wiki)
- [Contribute to the project](https://github.com/Zagrios/bs-manager/blob/master/CONTRIBUTING.md)
## 🐞 Troubleshooting
Our troubleshooting section is here to help you resolve common issues quickly and efficiently:
<!-- ### ⚙️ Connection Issues: Solutions for problems related to connecting BSManager to required services. -->
### 💾 Installation Problems
Guidance on fixing errors during setup or version updates
- __🐧Linux__:
- [Missing Icons in Game]([Linux]-Missing-Icons-in-Game)
- [[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)
<!-- ### 🎮 Gameplay Issues: Fixes for issues impacting Beat Saber performance. -->
### 🔍 Debugging Tips
Steps to gather logs and identify specific issues
- [Activate Oculus Sideloading](Activate-Oculus-sideloading)
- [How to find your logs](how-to-find-your-logs)
- [Submitting a bug report](https://github.com/Zagrios/bs-manager/issues/new?assignees=Zagrios&labels=bug&projects=&template=1-bug-report.yaml&title=%5BBUG%5D+%3A+)
***
We are committed to keeping this wiki up to date with the latest information and best practices. Your contributions are welcome; please refer to our [Help us update the wiki](help-us-update-the-wiki) to get started.
For additional support and community interaction, join our [Discord server](https://discord.gg/uSqbHVpKdV).
Thank you for using BSManager!
@@ -1,30 +0,0 @@
### Important
Your token is a confidential piece of information. Possession of this token allows individuals to download applications, send messages, among other actions, under your identity.
However, you might wonder why it is necessary to provide this token to BSManager. The reason is that BSManager requires the token to continue the download with Oculus. Once you've input the token, it is used exclusively to communicate with Oculus servers to verify that you are the rightful owner of the game.
## Step 1 - Install and log into the Oculus Rift app
- Get the Oculus Rift app setup from the [Meta website](https://www.oculus.com/rift/setup/)
- Install the Oculus Rift app
**If you bought Beat Saber from the Quest store, it won't appear in your Rift library by default. To download it with BSManager, first claim it from its store page**
## Step 2 - Open developer tools
- Open Oculus app
- Open the developer tools by pressing <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>i</kbd>.
## Step 3 - Copy your Token
In the developer tools :
- Open the `Network` tab ***(1)***
- Filter for `graph` ***(2)***
- Click on the first request ***(3)***
- Open the `Headers` tab ***(4)***
- Scroll to the bottom to locate your token, it should start with `FRL` ***(5)***
- Select the token using your mouse and press <kbd>Ctrl</kbd> + <kbd>c</kbd> to copy it
![image](https://github.com/Zagrios/bs-manager/assets/40181755/b46be623-cefe-4349-bace-70a4109685a3)
# Known bugs
- [Nothing opens when I press `Ctrl`+`Shift`+`i`.](https://github.com/Zagrios/bs-manager/wiki/Nothing-opens-when-I-press-%60Ctrl%60%E2%80%90%60Shift%60%E2%80%90%60i%60.)
@@ -1,4 +0,0 @@
If nothing opens when you press `Ctrl` + `Shift` + `I`, it's possible that the keyboard shortcut to open the development tools is being used by another application.

Here's a non-exhaustive list of applications that have caused a problem and their suggested solutions:
- [AMD software](https://github.com/Zagrios/bs-manager/wiki/AMD-Sofware-%E2%80%90-Nothing-opens-when-I-press-%60Ctrl%60%E2%80%90%60Shift%60%E2%80%90%60I%60)
@@ -0,0 +1,14 @@
Enabling Oculus sideloading allows games located outside if your Oculus library to be played on your Oculus Quest.
- **Step 1:** Start the regedit application by pressing `Win + R` and typing `regedit` in the dialog box.
- **Step 2:** Navigate to `HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Oculus VR, LLC\Oculus`.
- **Step 3:** Right-click on the right panel and select `New > DWORD (32-bit) Value`.
- **Step 4:** Name the new value `AllowDevSideloaded` and set the value to `1`.
You should end up with something like this:
<div align="center">
<img src="../wiki/Troubleshoots/Debugging-tips/Activate-Oculus-sideloading/enable-oculus-sideloading.png" alt="enable-oculus-sideloading.png" />
</div>
After completing these steps, you should be able to start Beat Saber from BSManager and play it on your Oculus Quest. If you are still having issues, please join our [Discord](https://discord.gg/uSqbHVpKdV) server for further assistance.
Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

@@ -0,0 +1,37 @@
## Summary
- [BSManager Log Files](#bsmanager-log-files)
- [Beat Saber (BSIPA) Log Files](#beat-saber-bsipa-log-files)
- [Player.log (Unity) Log File](#playerlog-unity-log-file)
## BSManager Log Files
1. Launch BSManager and go to __Settings__.
2. Scroll to the bottom of the page.
3. Click on the __`Open Logs`__ button.
4. Right-click on the log file to be sent and select __`Copy`__.
> [!NOTE]
> The requested file is usually the most recent log file, located at the bottom of the list.
5. __`Paste`__ your file in the channel where log files are requested.
<div align="center">
<img src="../wiki/Troubleshoots/Debugging-tips/How-to-find-your-logs/BSMLogs.png" alt="BSMLogs.png" />
</div>
## Beat Saber (BSIPA) Log Files
1. Launch BSManager and select the version with which you are experiencing the problem.
2. Click the version options button at the top-right corner of the interface, then select __`Open Folder`__.
3. Double-click the __`Logs`__ folder to open it.
4. Right-click the log file named __`_latest.log`__ (or just __`_latest`__) and select __`Copy`__.
> [!NOTE]
> This file will usually be at the top of the list.
5. __`Paste`__ the file in the channel where log files are requested using __`Ctrl+V`__.
## Player.log (Unity) Log File
1. Press __`Win+R`__ simultaneously on your keyboard.
2. Type or copy-paste the following path into the window that pops up, then press __Enter__:
`%appdata%\..\LocalLow\Hyperbolic Magnetism\Beat Saber`
3. Right-click the log file named __`Player.log`__ (or just __`Player`__) and select __`Copy`__.
4. __`Paste`__ the file in the channel where log files are requested using __`Ctrl+V`__.
@@ -0,0 +1,4 @@
If nothing opens when you press `Ctrl` + `Shift` + `I`, its possible that the keyboard shortcut to open the developer tools is being used by another application.
Heres a non-exhaustive list of applications that may cause this problem and their suggested solutions:
- [AMD Software](https://github.com/Zagrios/bs-manager/wiki/AMD-Software-%E2%80%90-Nothing-opens-when-I-press-%60Ctrl%60%E2%80%90%60Shift%60%E2%80%90%60I%60)
@@ -0,0 +1,30 @@
If you encounter a keyboard shortcut conflict between AMD Software and Oculus Rift, you can either disable or modify the conflicting shortcut.
_Special thanks to_ `𝔽𝕪𝕟𝕟 (fynn07)` _for their contribution with information and screenshots._
### __Follow these steps to disable or modify the shortcut in AMD Software:__
## Step 1 - Access Settings
1. Open AMD Software and click on the gear icon in the top-right corner to access the settings.
![image](https://github.com/Zagrios/bs-manager/assets/40648115/2762f59c-f12a-46ba-80fa-9bf79beb64a9)
## Step 2 - Modify Keyboard Shortcuts
1. In the settings menu, select the __"Hotkey"__ tab.
![image](https://github.com/Zagrios/bs-manager/assets/40648115/262d4fcc-529f-4c4c-9b87-e2da21df1b95)
## Step 3 - Disable Shortcuts
1. Turn off the __"Use Hotkeys"__ option to prevent any conflicts with Oculus Rift.
![image](https://github.com/Zagrios/bs-manager/assets/40648115/756018ad-7de3-469c-9f40-0082be007805)
## Step 3 (Alternative) - Modify the Shortcut
1. If you prefer to keep using keyboard shortcuts, consider changing the specific conflicting shortcut (e.g., __"Ctrl + Shift + I"__) to another combination that is less likely to interfere.
> __Note:__ You can't change the full keybind!
> You can only modify the __"I"__ to a different key.
@@ -0,0 +1,9 @@
<p align="center">
<img src="../wiki/Troubleshoots/Installation-Problems/Linux/%5BLinux%5D-Missing-Icons-in-Game/linux-missing-icons.png" alt="Linux Missing Icons" width="300"/>
<br>
NOTE: "?" are missing unicode icons
</p>
This is due to [BSML](https://github.com/monkeymanboy/BeatSaberMarkupLanguage) using a missing font (`Segoe UI Symbols`) for unicode emojis.
To fix the issue, you need to get a copy of `seguisym.ttf` from the fonts folder an official copy Windows. Once you have a copy, add the font file to `~/.steam/steam/steamapps/compatdata/620980/pfx/drive_c/windows/Fonts`.
Binary file not shown.

After

Width:  |  Height:  |  Size: 782 KiB

@@ -0,0 +1,5 @@
To change the installation path of the **BSManager** folder, you have to edit the flatpak permissions to destination folder.
- In flatpak or Flatseal, add the destination folder with `:create` permissions.
- In BSM, move the folder to the destination folder.
- [Optional] In flatpak or Flatseal, remove the original folder permissions.
@@ -0,0 +1 @@
Flatpak should have permissions with the steam games folder. By default, the minimum permissions are `~/.steam/steam/steamapps/common:ro` and `~/.steam/steam/steamapps/common:ro`. If you changed the steam installation path, add that path instead into the permissions.
@@ -0,0 +1,7 @@
This is encountered when running the app file or executing the app in the terminal. This is due to a change to Ubuntu 24.04. In order to fix the issue, take a look into the path of "chrome-sandbox" described in the error log and give the correct permissions within the terminal, for example:
```bash
chmod 4755 /opt/BSManager/chrome-sandbox
```
ref: https://github.com/electron/electron/issues/42510
+90
View File
@@ -0,0 +1,90 @@
# 🌐 Navigation
<ul>
<li><a href="Home">Home</a></li>
</ul>
## 📚 Guides
<details>
<summary>🛠️ Installation and Updates</summary>
<ul>
<li><a href="install-bsmanager-on-linux">Install BSManager on Linux</a></li>
<li><a href="install-or-import-a-version">Install or Import a Version</a></li>
<li><a href="create-a-shortcut">Create a Shortcut</a></li>
</ul>
</details>
<details>
<summary>🔑 Login</summary>
<ul>
<li><a href="How-to-obtain-your-Oculus-Token">How to obtain your Oculus Token</a></li>
</ul>
</details>
<details>
<summary>🎮 Content Management</summary>
<ul>
<li>
<details>
<summary>🗺️ Maps</summary>
<ul>
<li><a href="install-any-map">Install Any Map</a></li>
<li><a href="install-all-playlists-you-want">Install All Playlists You Want</a></li>
</ul>
</details>
</li>
<li>
<details>
<summary>🧩 Mods</summary>
<ul>
<li><a href="install-mods-on-your-version">Install Mods on Your Version</a></li>
</ul>
</details>
</li>
<li>
<details>
<summary>🖼️ Models</summary>
<ul>
<li><a href="modify-models-in-your-beat-saber">Modify Models in Your Beat Saber</a></li>
</ul>
</details>
</li>
</ul>
</details>
<details>
<summary>🤝 Contribution</summary>
<ul>
<li><a href="help-us-update-the-wiki">Help Us Update the Wiki</a></li>
<li><a href="https://github.com/Zagrios/bs-manager/blob/master/CONTRIBUTING.md">Contribute to the Project</a></li>
</ul>
</details>
## 🐞 Troubleshooting
<details>
<summary>💾 Installation Problems</summary>
<ul>
<li>
<details>
<summary>🐧 Linux</summary>
<ul>
<li><a href="%5BLinux%5D-Missing-Icons-in-Game">Missing Icons in Game</a></li>
<li><a href="%5BLinux%5D-%5Bdeb%5D-The-SUID-Sandbox-Helper-Binary-Was-Found">[Deb] The SUID Sandbox Helper Binary Was Found</a></li>
<li><a href="%5BLinux%5D-%5BFlatpak%5D-Steam-Beat-Saber-Version-Not-Showing-Proton-Not-Detected">[Flatpak] Steam Beat Saber Version Not Showing / Proton Not Detected</a></li>
<li><a href="%5BLinux%5D-%5BFlatpak%5D-Changing-Installation-Folder">[Flatpak] Changing Installation Folder</a></li>
</ul>
</details>
</li>
</ul>
</details>
<details>
<summary>🔍 Debugging Tips</summary>
<ul>
<li><a href="Activate-Oculus-sideloading">Activate Oculus Sideloading</a></li>
<li><a href="how-to-find-your-logs">How to Find Your Logs</a></li>
<li><a href="https://github.com/Zagrios/bs-manager/issues/new?assignees=Zagrios&labels=bug&projects=&template=1-bug-report.yaml&title=%5BBUG%5D+%3A+">Submitting a Bug Report</a></li>
</ul>
</details>
+103
View File
@@ -0,0 +1,103 @@
const config = {
extraResources: [
"./assets/jsons/bs-versions.json",
"./assets/jsons/patreons.json",
"./assets/proto/song_details_cache_v1.proto"
],
productName: "BSManager",
appId: "io.bsmanager.bsmanager",
asarUnpack: "**\\*.{node,dll}",
files: [
"dist/**/*",
"node_modules",
"package.json"
],
afterSign: ".erb/scripts/notarize.js",
afterPack: ".erb/scripts/after-pack.js",
win: {
signingHashAlgorithms: ["sha256"],
target: [
"nsis",
"nsis-web"
],
icon: "./build/icons/win/favicon.ico",
extraResources: [
"./build/icons/win",
"./assets/scripts/*.exe"
],
},
linux: {
target: [
"deb",
"rpm",
],
icon: "./build/icons/png",
category: "Utility;Game;",
extraResources: [
"./build/icons/png",
"./assets/scripts/DepotDownloader"
],
protocols: {
name: "BSManager",
schemes: [
"bsmanager",
"beatsaver",
"bsplaylist",
"modelsaber",
"web+bsmap",
],
},
},
deb: {
fpm: ["--after-install=build/after-install.sh"],
},
flatpak: {
// Version of org.electronjs.Electron2.BaseApp
baseVersion: "24.08",
// Version of org.freedesktop.Platform
runtimeVersion: "24.08",
finishArgs: [
// Wayland/X11 Rendering
"--socket=wayland",
"--socket=x11",
"--share=ipc",
// Open GL
"--device=dri",
// Audio output
"--socket=pulseaudio",
// Read/write home directory access
"--filesystem=~/BSManager:create", // Default BSManager installation folder
"--filesystem=~/.steam/steam/steamapps:ro", // for the libraryfolders.vdf
"--filesystem=~/.steam/steam/steamapps/common:create", // Steam game folder
"--filesystem=~/.steam/steam/steamapps/common/Beat Saber:create", // For installing mods/maps to original Beat Saber version
"--filesystem=~/Desktop", // allow writing shortcuts to desktop
"--filesystem=~/.steam/steam/userdata", // allow writing steam shortcuts
// Allow BSManager to create the compat folder if it does not exist
"--filesystem=~/.steam/steam/steamapps/compatdata/620980:create",
// Allow communication with network
"--share=network",
// System notifications with libnotify
"--talk-name=org.freedesktop.Notifications",
"--talk-name=org.freedesktop.Flatpak",
]
},
directories: {
app: "release/app",
buildResources: "assets",
output: "release/build",
},
publish: {
provider: "github",
owner: "Zagrios",
},
fileAssociations: [
{
ext: "bplist",
description: "Beat Saber Playlist (BSManager)",
icon: "./assets/bsm_file.ico",
role: "Viewer",
},
],
};
module.exports = config;
+224
View File
@@ -2,6 +2,52 @@
# It is not intended for manual editing.
version = 3
[[package]]
name = "deranged"
version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
dependencies = [
"powerfmt",
]
[[package]]
name = "erased-serde"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d"
dependencies = [
"serde",
"typeid",
]
[[package]]
name = "itoa"
version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
[[package]]
name = "log"
version = "0.4.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d6ea2a48c204030ee31a7d7fc72c93294c92fe87ecb1789881c9543516e1a0d"
dependencies = [
"value-bag",
]
[[package]]
name = "num-conv"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
[[package]]
name = "powerfmt"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
[[package]]
name = "proc-macro2"
version = "1.0.76"
@@ -20,6 +66,12 @@ dependencies = [
"proc-macro2",
]
[[package]]
name = "ryu"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]]
name = "serde"
version = "1.0.195"
@@ -40,13 +92,112 @@ dependencies = [
"syn",
]
[[package]]
name = "serde_fmt"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1d4ddca14104cd60529e8c7f7ba71a2c8acd8f7f5cfcdc2faf97eeb7c3010a4"
dependencies = [
"serde",
]
[[package]]
name = "simplelog"
version = "0.12.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16257adbfaef1ee58b1363bdc0664c9b8e1e30aed86049635fb5f147d065a9c0"
dependencies = [
"log",
"time",
]
[[package]]
name = "start_beat_saber_admin"
version = "0.1.0"
dependencies = [
"log",
"simplelog",
"winres",
]
[[package]]
name = "sval"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6dc0f9830c49db20e73273ffae9b5240f63c42e515af1da1fceefb69fceafd8"
[[package]]
name = "sval_buffer"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "429922f7ad43c0ef8fd7309e14d750e38899e32eb7e8da656ea169dd28ee212f"
dependencies = [
"sval",
"sval_ref",
]
[[package]]
name = "sval_dynamic"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68f16ff5d839396c11a30019b659b0976348f3803db0626f736764c473b50ff4"
dependencies = [
"sval",
]
[[package]]
name = "sval_fmt"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c01c27a80b6151b0557f9ccbe89c11db571dc5f68113690c1e028d7e974bae94"
dependencies = [
"itoa",
"ryu",
"sval",
]
[[package]]
name = "sval_json"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0deef63c70da622b2a8069d8600cf4b05396459e665862e7bdb290fd6cf3f155"
dependencies = [
"itoa",
"ryu",
"sval",
]
[[package]]
name = "sval_nested"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a39ce5976ae1feb814c35d290cf7cf8cd4f045782fe1548d6bc32e21f6156e9f"
dependencies = [
"sval",
"sval_buffer",
"sval_ref",
]
[[package]]
name = "sval_ref"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb7c6ee3751795a728bc9316a092023529ffea1783499afbc5c66f5fabebb1fa"
dependencies = [
"sval",
]
[[package]]
name = "sval_serde"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a5572d0321b68109a343634e3a5d576bf131b82180c6c442dee06349dfc652a"
dependencies = [
"serde",
"sval",
"sval_nested",
]
[[package]]
name = "syn"
version = "2.0.48"
@@ -58,6 +209,37 @@ dependencies = [
"unicode-ident",
]
[[package]]
name = "time"
version = "0.3.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21"
dependencies = [
"deranged",
"itoa",
"num-conv",
"powerfmt",
"serde",
"time-core",
"time-macros",
]
[[package]]
name = "time-core"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de"
dependencies = [
"num-conv",
"time-core",
]
[[package]]
name = "toml"
version = "0.5.11"
@@ -67,12 +249,54 @@ dependencies = [
"serde",
]
[[package]]
name = "typeid"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e"
[[package]]
name = "unicode-ident"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "value-bag"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2"
dependencies = [
"value-bag-serde1",
"value-bag-sval2",
]
[[package]]
name = "value-bag-serde1"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4bb773bd36fd59c7ca6e336c94454d9c66386416734817927ac93d81cb3c5b0b"
dependencies = [
"erased-serde",
"serde",
"serde_fmt",
]
[[package]]
name = "value-bag-sval2"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53a916a702cac43a88694c97657d449775667bcd14b70419441d05b7fea4a83a"
dependencies = [
"sval",
"sval_buffer",
"sval_dynamic",
"sval_fmt",
"sval_json",
"sval_ref",
"sval_serde",
]
[[package]]
name = "winres"
version = "0.1.12"
+5
View File
@@ -4,6 +4,10 @@ version = "0.1.0"
edition = "2021"
build = "build.rs"
[dependencies]
simplelog = { version = "0.12.2", default-features = false }
log = "0.4.24"
[build-dependencies]
winres = "0.1.12"
@@ -11,6 +15,7 @@ winres = "0.1.12"
codegen-units = 1
lto = true
opt-level = "z"
panic = "abort"
[package.metadata.winres]
FileDescription = "Start Beat Saber as Admin"
+2
View File
@@ -0,0 +1,2 @@
[toolchain]
channel = "1.77.0"
+35 -5
View File
@@ -1,5 +1,10 @@
use std::{process::Command, path::Path};
use std::env::current_exe;
use std::fs::File;
use std::path::PathBuf;
use log::{error, info, LevelFilter};
use simplelog::{CombinedLogger, Config, WriteLogger};
const EXECUTABLE_NAME: &str = "Beat Saber.exe";
const AUTORIZED_ARGS: [&str; 8] = [
@@ -14,18 +19,37 @@ const AUTORIZED_ARGS: [&str; 8] = [
];
fn main() {
let default_log_file_path = current_exe().unwrap().with_file_name("bs-admin-start.log");
let args: Vec<String> = std::env::args().collect();
let log_file_path: PathBuf = if let Some(pos) = args.iter().position(|arg| arg == "--log-path") {
if let Some(log_path) = args.get(pos + 1) {
PathBuf::from(log_path)
} else {
default_log_file_path
}
} else {
default_log_file_path
};
CombinedLogger::init(
vec![
WriteLogger::new(LevelFilter::Info, Config::default(), File::create(log_file_path).unwrap()),
]
).unwrap();
let args: Vec<String> = std::env::args().collect();
let executable_path = Path::new(&args[1]);
if executable_path.file_name().unwrap() != EXECUTABLE_NAME {
eprintln!("Executable path is not Beat Saber.exe.");
return;
return error!("Executable path is not Beat Saber.exe.");
}
if !executable_path.exists() || !executable_path.is_file() {
eprintln!("Executable path is not valid.");
return;
return error!("Executable path is not valid.");
}
let mut command = Command::new(executable_path);
@@ -43,5 +67,11 @@ fn main() {
command.env("SteamAppId", "620980");
let _ = command.spawn();
let res = command.spawn();
if let Err(e) = res {
return error!("Failed to start Beat Saber ({}): {}", executable_path.display(), e);
}
info!("Beat Saber started ({})", executable_path.display());
}
@@ -0,0 +1,2 @@
[target.x86_64-pc-windows-msvc]
rustflags = ["-C", "target-feature=+crt-static"]
+390
View File
@@ -0,0 +1,390 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "deranged"
version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
dependencies = [
"powerfmt",
]
[[package]]
name = "erased-serde"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d"
dependencies = [
"serde",
"typeid",
]
[[package]]
name = "itoa"
version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
[[package]]
name = "log"
version = "0.4.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d6ea2a48c204030ee31a7d7fc72c93294c92fe87ecb1789881c9543516e1a0d"
dependencies = [
"value-bag",
]
[[package]]
name = "num-conv"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
[[package]]
name = "oculus-allow-dev-sideloaded"
version = "0.1.0"
dependencies = [
"log",
"simplelog",
"winreg",
"winres",
]
[[package]]
name = "powerfmt"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
[[package]]
name = "proc-macro2"
version = "1.0.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
dependencies = [
"proc-macro2",
]
[[package]]
name = "ryu"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]]
name = "serde"
version = "1.0.217"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.217"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "serde_fmt"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1d4ddca14104cd60529e8c7f7ba71a2c8acd8f7f5cfcdc2faf97eeb7c3010a4"
dependencies = [
"serde",
]
[[package]]
name = "simplelog"
version = "0.12.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16257adbfaef1ee58b1363bdc0664c9b8e1e30aed86049635fb5f147d065a9c0"
dependencies = [
"log",
"time",
]
[[package]]
name = "sval"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6dc0f9830c49db20e73273ffae9b5240f63c42e515af1da1fceefb69fceafd8"
[[package]]
name = "sval_buffer"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "429922f7ad43c0ef8fd7309e14d750e38899e32eb7e8da656ea169dd28ee212f"
dependencies = [
"sval",
"sval_ref",
]
[[package]]
name = "sval_dynamic"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68f16ff5d839396c11a30019b659b0976348f3803db0626f736764c473b50ff4"
dependencies = [
"sval",
]
[[package]]
name = "sval_fmt"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c01c27a80b6151b0557f9ccbe89c11db571dc5f68113690c1e028d7e974bae94"
dependencies = [
"itoa",
"ryu",
"sval",
]
[[package]]
name = "sval_json"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0deef63c70da622b2a8069d8600cf4b05396459e665862e7bdb290fd6cf3f155"
dependencies = [
"itoa",
"ryu",
"sval",
]
[[package]]
name = "sval_nested"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a39ce5976ae1feb814c35d290cf7cf8cd4f045782fe1548d6bc32e21f6156e9f"
dependencies = [
"sval",
"sval_buffer",
"sval_ref",
]
[[package]]
name = "sval_ref"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb7c6ee3751795a728bc9316a092023529ffea1783499afbc5c66f5fabebb1fa"
dependencies = [
"sval",
]
[[package]]
name = "sval_serde"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a5572d0321b68109a343634e3a5d576bf131b82180c6c442dee06349dfc652a"
dependencies = [
"serde",
"sval",
"sval_nested",
]
[[package]]
name = "syn"
version = "2.0.96"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "time"
version = "0.3.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21"
dependencies = [
"deranged",
"itoa",
"num-conv",
"powerfmt",
"serde",
"time-core",
"time-macros",
]
[[package]]
name = "time-core"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de"
dependencies = [
"num-conv",
"time-core",
]
[[package]]
name = "toml"
version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
dependencies = [
"serde",
]
[[package]]
name = "typeid"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e"
[[package]]
name = "unicode-ident"
version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
[[package]]
name = "value-bag"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2"
dependencies = [
"value-bag-serde1",
"value-bag-sval2",
]
[[package]]
name = "value-bag-serde1"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4bb773bd36fd59c7ca6e336c94454d9c66386416734817927ac93d81cb3c5b0b"
dependencies = [
"erased-serde",
"serde",
"serde_fmt",
]
[[package]]
name = "value-bag-sval2"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53a916a702cac43a88694c97657d449775667bcd14b70419441d05b7fea4a83a"
dependencies = [
"sval",
"sval_buffer",
"sval_dynamic",
"sval_fmt",
"sval_json",
"sval_ref",
"sval_serde",
]
[[package]]
name = "windows-sys"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
dependencies = [
"windows-targets",
]
[[package]]
name = "windows-targets"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
]
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]]
name = "windows_aarch64_msvc"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]]
name = "windows_i686_gnu"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
[[package]]
name = "windows_i686_msvc"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]]
name = "windows_x86_64_gnu"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]]
name = "windows_x86_64_msvc"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "winreg"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
dependencies = [
"cfg-if",
"windows-sys",
]
[[package]]
name = "winres"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c"
dependencies = [
"toml",
]
@@ -1,22 +1,24 @@
[package]
name = "oculus_symlink_cleaner"
name = "oculus-allow-dev-sideloaded"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[build-dependencies]
winres = "0.1.12"
[dependencies]
sysinfo = "0.30.6"
winreg = "0.52.0"
simplelog = { version = "0.12.2", default-features = false }
log = "0.4.24"
[package.metadata.winres]
FileDescription = "Enable Sideloaded Apps"
LegalCopyright = "Copyright © 2024 Zagrios"
CompanyName = "Zagrios"
[profile.release]
codegen-units = 1
lto = true
opt-level = "z"
[package.metadata.winres]
FileDescription = "Clean Oculus Symlink after Beat Saber ends"
LegalCopyright = "Copyright © 2024 Zagrios"
CompanyName = "Zagrios"
panic = "abort"
+20
View File
@@ -0,0 +1,20 @@
extern crate winres;
fn main() {
if cfg!(target_os = "windows") {
let mut res = winres::WindowsResource::new();
res.set_manifest(r#"
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
"#);
res.set_icon("./icon.ico");
res.compile().unwrap();
}
}

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

@@ -0,0 +1,2 @@
[toolchain]
channel = "1.77.0"
+48
View File
@@ -0,0 +1,48 @@
use std::env::current_exe;
use std::fs::File;
use std::path::PathBuf;
use simplelog::{CombinedLogger, Config, LevelFilter, WriteLogger};
use winreg::enums::HKEY_LOCAL_MACHINE;
use winreg::RegKey;
use log::{error, info};
const REG_PATH: &str = "SOFTWARE\\Wow6432Node\\Oculus VR, LLC\\Oculus";
fn main() {
let default_log_file_path = current_exe().unwrap().with_file_name("oculus-allow-dev-sideloaded.log");
let args: Vec<String> = std::env::args().collect();
let log_file_path: PathBuf = if let Some(pos) = args.iter().position(|arg| arg == "--log-path") {
if let Some(log_path) = args.get(pos + 1) {
PathBuf::from(log_path)
} else {
default_log_file_path
}
} else {
default_log_file_path
};
CombinedLogger::init(
vec![
WriteLogger::new(LevelFilter::Info, Config::default(), File::create(log_file_path).unwrap()),
]
).unwrap();
let hklm = RegKey::predef(HKEY_LOCAL_MACHINE);
info!("Opening or creating subkey ({})...", REG_PATH);
let (key, _) = match hklm.create_subkey(REG_PATH) {
Ok(res) => res,
Err(err) => return error!("Unable to create subkey ({}) : {}", REG_PATH, err.to_string())
};
info!("Setting value AllowDevSideloaded = 1 in {REG_PATH}...");
let res = key.set_value("AllowDevSideloaded", &1u32);
if let Err(err) = res {
return error!("Unable to set value AllowDevSideloaded = 1 in {REG_PATH} : {}", err.to_string());
}
info!("AllowDevSideloaded = 1 has been successfully set in {REG_PATH}");
}
-2
View File
@@ -1,2 +0,0 @@
[target.x86_64-pc-windows-msvc]
rustflags = ["-C", "target-feature=+crt-static"]
-281
View File
@@ -1,281 +0,0 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "core-foundation-sys"
version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
[[package]]
name = "crossbeam-deque"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
dependencies = [
"crossbeam-epoch",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-epoch"
version = "0.9.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
dependencies = [
"crossbeam-utils",
]
[[package]]
name = "crossbeam-utils"
version = "0.8.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
[[package]]
name = "either"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
[[package]]
name = "libc"
version = "0.2.153"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
[[package]]
name = "ntapi"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
dependencies = [
"winapi",
]
[[package]]
name = "oculus_symlink_cleaner"
version = "0.1.0"
dependencies = [
"sysinfo",
"winres",
]
[[package]]
name = "once_cell"
version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
name = "proc-macro2"
version = "1.0.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
dependencies = [
"proc-macro2",
]
[[package]]
name = "rayon"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
dependencies = [
"either",
"rayon-core",
]
[[package]]
name = "rayon-core"
version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
dependencies = [
"crossbeam-deque",
"crossbeam-utils",
]
[[package]]
name = "serde"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "syn"
version = "2.0.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "sysinfo"
version = "0.30.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6746919caf9f2a85bff759535664c060109f21975c5ac2e8652e60102bd4d196"
dependencies = [
"cfg-if",
"core-foundation-sys",
"libc",
"ntapi",
"once_cell",
"rayon",
"windows",
]
[[package]]
name = "toml"
version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
dependencies = [
"serde",
]
[[package]]
name = "unicode-ident"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
dependencies = [
"windows-core",
"windows-targets",
]
[[package]]
name = "windows-core"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
dependencies = [
"windows-targets",
]
[[package]]
name = "windows-targets"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
]
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
[[package]]
name = "windows_i686_gnu"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
[[package]]
name = "windows_i686_msvc"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
[[package]]
name = "winres"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c"
dependencies = [
"toml",
]
-9
View File
@@ -1,9 +0,0 @@
extern crate winres;
fn main() {
if cfg!(target_os = "windows") {
let mut res = winres::WindowsResource::new();
res.set_icon("./icon.ico");
res.compile().unwrap();
}
}
-78
View File
@@ -1,78 +0,0 @@
use sysinfo::{Pid, ProcessRefreshKind, System};
use std::{env, thread, time::Duration, fs};
use std::ffi::OsStr;
use std::path::Path;
use std::str::FromStr;
const BEAT_SABER_OCULUS_FOLDER_NAME: &str = "hyperbolic-magnetism-beat-saber";
fn main() {
let args: Vec<String> = env::args().collect();
if args.len() != 3 {
eprintln!("Usage: {} <pid> <path_to_directory>", args[0]);
std::process::exit(1);
}
let pid: Pid = Pid::from_str(&args[1]).expect("Invalid pid");
let directory_path = Path::new(&args[2]);
if directory_path.file_name() != Some(OsStr::new(BEAT_SABER_OCULUS_FOLDER_NAME)) {
eprintln!("Directory name is not {}", BEAT_SABER_OCULUS_FOLDER_NAME);
std::process::exit(1);
}
// we want to monitor only processes
let mut system = System::new_with_specifics(sysinfo::RefreshKind::new().with_processes(ProcessRefreshKind::everything()));
loop {
system.refresh_processes();
let process = system.process(pid);
match process {
Some(_) => {
println!("Process {} is still running.", pid);
thread::sleep(Duration::from_secs(2));
},
None => {
println!("Process {} has stopped, deleting directory {:?}", pid, directory_path);
match delete_dir_if_is_symlink(directory_path) {
Ok(_) => {
println!("Directory {:?} deleted successfully.", directory_path);
if let Err(e) = rename_specific_backup_directory(directory_path.parent().unwrap()) {
eprintln!("Failed to rename backup directory: {}", e);
}
},
Err(e) => eprintln!("Failed to delete directory {:?}: {}", directory_path, e),
}
break;
}
}
}
}
fn delete_dir_if_is_symlink(path: &Path) -> Result<(), Box<dyn std::error::Error>>{
match path.symlink_metadata()?.file_type().is_symlink() {
true => {
fs::remove_dir_all(path)?;
Ok(())
},
false => {
eprintln!("Path {:?} is not a symlink.", path);
Err("Path is not a symlink.".into())
}
}
}
fn rename_specific_backup_directory(parent_path: &Path) -> Result<(), Box<dyn std::error::Error>> {
let backup_dir_name = format!("{}.bsmbak", BEAT_SABER_OCULUS_FOLDER_NAME);
let backup_path = parent_path.join(&backup_dir_name);
if backup_path.exists() && backup_path.is_dir() {
let new_path = parent_path.join(BEAT_SABER_OCULUS_FOLDER_NAME);
fs::rename(&backup_path, &new_path)?;
println!("Renamed {:?} to {:?}", backup_path, new_path);
Ok(())
} else {
Err(format!("Backup directory {:?} does not exist or is not a directory.", backup_path).into())
}
}
+19
View File
@@ -0,0 +1,19 @@
import type { Config } from "jest";
const config: Config = {
// testURL: "http://localhost/",
// testEnvironment: "jsdom",
transform: {
"\\.(ts|tsx|js|jsx)$": "ts-jest",
},
moduleNameMapper: {
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/.erb/mocks/fileMock.js",
"\\.(css|less|sass|scss)$": "identity-obj-proxy",
},
moduleFileExtensions: ["js", "jsx", "ts", "tsx", "json"],
moduleDirectories: ["node_modules", "src"],
testPathIgnorePatterns: ["release/app/dist"],
setupFiles: ["./.erb/scripts/check-build-exists.ts"],
};
export default config;
+641 -392
View File
File diff suppressed because it is too large Load Diff
+24 -101
View File
@@ -2,7 +2,7 @@
"name": "bs-manager",
"description": "Manage maps, mods and more for Beat Saber",
"main": "./.erb/dll/main.bundle.dev.js",
"version": "1.5.0-alpha.4",
"version": "1.5.0",
"scripts": {
"build-rust-scripts": "ts-node ./.erb/scripts/build-rust-scripts.js",
"build": "concurrently \"npm run build:main\" \"npm run build:renderer\"",
@@ -13,14 +13,16 @@
"rebuild": "electron-rebuild --parallel --types prod,dev,optional --module-dir release/app",
"prestart": "cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.main.dev.ts",
"lint": "cross-env NODE_ENV=development eslint . --ext .js,.jsx,.ts,.tsx",
"package": "ts-node ./.erb/scripts/clean.js dist && npm run build && electron-builder build --publish never && npm run build:dll",
"package": "ts-node ./.erb/scripts/clean.js dist && npm run build && electron-builder build --publish never --config electron-builder.config.js && npm run build:dll",
"start": "ts-node ./.erb/scripts/check-port-in-use.js && npm run prestart && npm run start:renderer",
"start:main": "concurrently -k \"cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack --watch --config ./.erb/configs/webpack.config.main.dev.ts\" \"electronmon .\"",
"start:preload": "cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.preload.dev.ts",
"start:renderer": "cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack serve --config ./.erb/configs/webpack.config.renderer.dev.ts",
"test": "jest",
"publish": "npm run build && electron-builder -c.win.certificateSha1=2164d6a7d641ecf6ad57852f665a518ca2bf960f --publish always --win --x64",
"publish:linux": "npm run build && electron-builder --publish always --linux --x64"
"test:unit": "jest ./src/__tests__/unit",
"publish": "npm run build && electron-builder -c.win.certificateSha1=206941d969c4fa8a0e04d9427def361e13b02fd0 --config electron-builder.config.js --publish always --win --x64",
"publish:linux": "npm run build && electron-builder --config electron-builder.config.js --publish never --linux --x64",
"publish:flatpak": "npm run build && env DEBUG='@malept/flatpak-bundler' npx electron-builder --config electron-builder.config.js --publish never --linux flatpak"
},
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
@@ -37,61 +39,11 @@
]
},
"build": {
"extraResources": [
"./assets/jsons/bs-versions.json",
"./assets/jsons/patreons.json",
"./assets/proto/song_details_cache_v1.proto"
],
"productName": "BSManager",
"appId": "org.erb.BSManager",
"asarUnpack": "**\\*.{node,dll}",
"files": [
"dist/**/*",
"node_modules",
"package.json"
],
"afterSign": ".erb/scripts/notarize.js",
"afterPack": ".erb/scripts/after-pack.js",
"win": {
"signingHashAlgorithms": ["sha256"],
"target": [
"nsis",
"nsis-web"
],
"icon": "./build/icons/win/favicon.ico",
"extraResources": [
"./build/icons/win",
"./assets/scripts/*.exe"
]
},
"linux": {
"target": [
"AppImage"
],
"icon": "./build/icons/png",
"category": "Utility;Game;",
"extraResources": [
"./build/icons/png",
"./assets/scripts/DepotDownloader"
]
},
"directories": {
"app": "release/app",
"buildResources": "assets",
"output": "release/build"
},
"publish": {
"provider": "github",
"owner": "Zagrios"
},
"fileAssociations": [
{
"ext": "bplist",
"description": "Beat Saber Playlist (BSManager)",
"icon": "./assets/bsm_file.ico",
"role": "Viewer"
}
]
}
},
"repository": {
"type": "git",
@@ -103,7 +55,7 @@
"url": "https://github.com/Zagrios"
},
"contributors": [],
"license": "MIT",
"license": "GPL-3.0-only",
"bugs": {
"url": "https://github.com/Zagrios/bs-manager/issues"
},
@@ -114,34 +66,6 @@
"beat-saber"
],
"homepage": "https://github.com/Zagrios/bs-manager#readme",
"jest": {
"testURL": "http://localhost/",
"testEnvironment": "jsdom",
"transform": {
"\\.(ts|tsx|js|jsx)$": "ts-jest"
},
"moduleNameMapper": {
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/.erb/mocks/fileMock.js",
"\\.(css|less|sass|scss)$": "identity-obj-proxy"
},
"moduleFileExtensions": [
"js",
"jsx",
"ts",
"tsx",
"json"
],
"moduleDirectories": [
"node_modules",
"src"
],
"testPathIgnorePatterns": [
"release/app/dist"
],
"setupFiles": [
"./.erb/scripts/check-build-exists.ts"
]
},
"devDependencies": {
"@electron/fuses": "^1.7.0",
"@electron/notarize": "^2.3.0",
@@ -154,10 +78,10 @@
"@types/color": "^3.0.3",
"@types/crypto-js": "^4.2.1",
"@types/dateformat": "^5.0.0",
"@types/dompurify": "^3.0.5",
"@types/global-agent": "^2.1.3",
"@types/got": "^9.6.12",
"@types/jest": "^29.5.11",
"@types/node": "20.11.15",
"@types/node": "22.8.6",
"@types/node-fetch": "^2.6.3",
"@types/pako": "^2.0.1",
"@types/react": "^18.0.33",
@@ -184,9 +108,9 @@
"css-loader": "^6.10.0",
"css-minimizer-webpack-plugin": "^6.0.0",
"detect-port": "^1.5.1",
"electron": "^32.1.2",
"electron-builder": "^24.13.3",
"electron-devtools-installer": "^3.2.0",
"electron": "^33.3.1",
"electron-builder": "^25.1.8",
"electron-devtools-installer": "^4.0.0",
"electronmon": "^2.0.2",
"eslint": "^8.56.0",
"eslint-config-airbnb-base": "^15.0.0",
@@ -239,27 +163,25 @@
"color": "^4.2.3",
"crypto-js": "^4.2.0",
"dateformat": "^5.0.3",
"dompurify": "^3.0.9",
"dot-prop": "^8.0.2",
"electron-debug": "^3.2.0",
"electron-log": "^4.4.8",
"electron-store": "^8.1.0",
"electron-updater": "^6.3.4",
"electron-updater": "^6.3.9",
"fast-deep-equal": "^3.1.3",
"format-duration": "^3.0.2",
"framer-motion": "^11.2.6",
"fs-extra": "^11.2.0",
"got": "^14.4.2",
"global-agent": "^3.0.0",
"got": "^14.4.5",
"history": "^5.3.0",
"is-elevated": "^4.0.0",
"jszip": "^3.10.1",
"md5-file": "^5.0.0",
"node-abi": "^3.65.0",
"node-fetch": "^3.3.2",
"node-stream-zip": "^1.15.0",
"pako": "^2.1.0",
"protobufjs": "^7.4.0",
"qrcode.react": "^4.0.1",
"qrcode.react": "^4.2.0",
"query-process": "^0.0.3",
"react": "^18.2.0",
"react-beautiful-dnd": "^13.1.1",
@@ -267,21 +189,22 @@
"react-dom": "^18.2.0",
"react-range": "^1.10.0",
"react-router-dom": "^6.24.1",
"react-virtualized-auto-sizer": "^1.0.24",
"react-window": "^1.8.10",
"react-virtualized-auto-sizer": "^1.0.25",
"react-window": "^1.8.11",
"recursive-readdir": "^2.2.3",
"rfdc": "^1.4.1",
"rxjs": "^7.8.1",
"sanitize-filename": "^1.6.3",
"semver": "^7.6.3",
"serialize-error": "^11.0.3",
"serialize-error": "^12.0.0",
"striptags": "^4.0.0-alpha.4",
"tailwind-merge": "^2.5.2",
"tailwind-merge": "^2.6.0",
"tailwindcss-scoped-groups": "^2.0.0",
"tippy.js": "^6.3.7",
"to-ico": "^1.1.5",
"use-double-click": "^1.0.5",
"use-fit-text": "^2.4.0"
"use-fit-text": "^2.4.0",
"yauzl": "^3.2.0"
},
"engines": {
"node": ">=20.0.0"
@@ -321,6 +244,6 @@
"logLevel": "quiet"
},
"volta": {
"node": "20.17.0"
"node": "22.11.0"
}
}
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "bs-manager",
"version": "1.5.0-alpha.4",
"version": "1.5.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "bs-manager",
"version": "1.5.0-alpha.4",
"version": "1.5.0",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "bs-manager",
"version": "1.5.0-alpha.4",
"version": "1.5.0",
"description": "BSManager",
"main": "./dist/main/main.js",
"author": {
-9
View File
@@ -1,9 +0,0 @@
import "@testing-library/jest-dom";
import { render } from "@testing-library/react";
import App from "../renderer/windows/App";
describe("App", () => {
it("should render", () => {
expect(render(<App />)).toBeTruthy();
});
});
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+61
View File
@@ -0,0 +1,61 @@
import { parseEnvString } from "main/helpers/env.helpers";
describe("Test parseEnvString", () => {
it("Empty", () => {
const envVars = parseEnvString("");
expect(envVars).toEqual({});
});
it("Single test; no quotes", () => {
const envString = "HELLO=World!";
const envVars = parseEnvString(envString);
expect(envVars).toEqual({
HELLO: "World!",
});
});
it("Single test; single quotes", () => {
const envString = "SINGLE_QOUTE='Single quote with spaces'";
const envVars = parseEnvString(envString);
expect(envVars).toEqual({
SINGLE_QOUTE: "Single quote with spaces",
});
});
it("Single test; double quotes", () => {
const envString = 'DOUBLE_QOUTE="Some random quote."';
const envVars = parseEnvString(envString);
expect(envVars).toEqual({
DOUBLE_QOUTE: "Some random quote.",
});
});
it("Single test; empty value", () => {
const envString = "EMPTY=";
const envVars = parseEnvString(envString);
expect(envVars).toEqual({
EMPTY: "",
});
});
it("Multiple test; combined", () => {
const envString = `HELLO=World! DOUBLE_QUOTE="Two Words" SINGLE_QUOTE='' EMPTY=`
const envVars = parseEnvString(envString);
expect(envVars).toEqual(expect.objectContaining({
HELLO: "World!",
DOUBLE_QUOTE: "Two Words",
SINGLE_QUOTE: "",
EMPTY: ""
}));
});
it("Key with numbers and lower case", () => {
const envString = "H3ll0=world";
const envVars = parseEnvString(envString);
expect(envVars).toEqual({
H3ll0: "world",
});
});
});
+92
View File
@@ -0,0 +1,92 @@
import { mkdir, pathExistsSync, rm, writeFile } from "fs-extra";
import { getSize } from "main/helpers/fs.helpers";
import path from "path";
const TEST_FOLDER = path.resolve(__dirname, "..", "assets", "fs");
describe("Test fs.helpers getSize", () => {
beforeEach(async () => {
if (pathExistsSync(TEST_FOLDER)) {
await rm(TEST_FOLDER, { recursive: true, force: true });
}
await mkdir(TEST_FOLDER);
});
afterEach(async () => {
await rm(TEST_FOLDER, { recursive: true, force: true });
});
it("should return 0 for empty folder", async () => {
const size = await getSize(TEST_FOLDER);
expect(size).toBe(0);
});
it("should throw error for non-existing folder", async () => {
await expect(getSize(`${TEST_FOLDER}1`)).rejects.toThrow();
});
it("should return the total size of files in the directory", async () => {
const filePath = path.join(TEST_FOLDER, "testFile.bin");
const buffer = Buffer.alloc(10);
await writeFile(filePath, buffer);
const size = await getSize(TEST_FOLDER);
expect(size).toBe(10);
});
it("should include the sizes of all files in the directory", async () => {
const filePath1 = path.join(TEST_FOLDER, "testFile1.bin");
const filePath2 = path.join(TEST_FOLDER, "testFile2.bin");
const buffer = Buffer.alloc(10);
await writeFile(filePath1, buffer);
await writeFile(filePath2, buffer);
const size = await getSize(TEST_FOLDER);
expect(size).toBe(20);
});
it("should include the sizes of files in nested directories", async () => {
const subFolder = path.join(TEST_FOLDER, "subFolder");
const filePath1 = path.join(TEST_FOLDER, "testFile1.bin");
const filePath2 = path.join(subFolder, "testFile2.bin");
const buffer = Buffer.alloc(10);
await mkdir(subFolder);
await writeFile(filePath1, buffer);
await writeFile(filePath2, buffer);
const size = await getSize(TEST_FOLDER);
expect(size).toBe(20);
});
it("should not include files beyond the default depth limit", async () => {
const subFolder = path.join(TEST_FOLDER, "1", "2", "3", "4", "5");
const filePath = path.join(subFolder, "testFile.bin");
const buffer = Buffer.alloc(10);
await mkdir(subFolder, { recursive: true });
await writeFile(filePath, buffer);
const size = await getSize(TEST_FOLDER);
expect(size).toBe(0);
});
it("should include files within the specified depth limit", async () => {
const subFolder = path.join(TEST_FOLDER, "1", "2", "3", "4", "5");
const filePath = path.join(subFolder, "testFile.bin");
const filePath2 = path.join(TEST_FOLDER, "1", "2", "testFile2.bin");
const buffer = Buffer.alloc(10);
await mkdir(subFolder, { recursive: true });
await writeFile(filePath, buffer);
await writeFile(filePath2, buffer);
const size = await getSize(TEST_FOLDER, 6);
expect(size).toBe(20);
});
});
+211
View File
@@ -0,0 +1,211 @@
import {
BsmShellLog,
bsmSpawn,
// bsmExec,
isProcessRunning,
// getProcessId,
} from "main/helpers/os.helpers";
import cp from "child_process";
import crypto from "crypto";
import log from "electron-log";
import { ifDescribe, ifIt } from "__tests__/utils";
import { BS_APP_ID } from "main/constants";
Object.defineProperty(global, "crypto", {
value: {
randomUUID: () => crypto.webcrypto.randomUUID(),
}
});
jest.mock("electron", () => ({
app: { getPath: () => "" },
}));
jest.mock("electron-log", () => ({
info: jest.fn(),
error: jest.fn(),
}));
jest.mock("ps-list", () => (): unknown[] => []);
const IS_WINDOWS = process.platform === "win32";
const IS_LINUX = process.platform === "linux";
describe("Test os.helpers bsmSpawn", () => {
const spawnSpy: jest.SpyInstance = jest.spyOn(cp, "spawn")
.mockImplementation();
const logSpy: jest.SpyInstance = jest.spyOn(log, "info");
const originalContainer = process.env.container;
const BS_ENV = {
SteamAppId: BS_APP_ID,
SteamOverlayGameId: BS_APP_ID,
SteamGameId: BS_APP_ID,
};
beforeAll(() => {
if (IS_LINUX) {
Object.assign(BS_ENV, {
WINEDLLOVERRIDES: "winhttp=n,b",
STEAM_COMPAT_DATA_PATH: "/compatdata",
STEAM_COMPAT_INSTALL_PATH: "/BSInstance",
STEAM_COMPAT_CLIENT_INSTALL_PATH: "/steam",
STEAM_COMPAT_APP_ID: BS_APP_ID,
SteamEnv: "1",
});
}
});
afterAll(() => {
spawnSpy.mockRestore();
});
afterEach(() => {
spawnSpy.mockClear();
logSpy.mockClear();
process.env.container = originalContainer;
});
it("Simple spawn command", () => {
bsmSpawn("cd", {
args: ["folder1", "folder2"],
});
expect(spawnSpy).toHaveBeenCalledTimes(1);
expect(spawnSpy).toHaveBeenCalledWith("cd folder1 folder2", expect.anything());
expect(logSpy).toHaveBeenCalledTimes(0);
});
it("Simple spawn command with logging", () => {
bsmSpawn("mkdir", {
args: ["new_folder"],
log: BsmShellLog.Command,
});
expect(spawnSpy).toHaveBeenCalledTimes(1);
expect(spawnSpy).toHaveBeenCalledWith("mkdir new_folder", expect.anything());
expect(logSpy).toHaveBeenCalledTimes(1);
});
it("Complex spawn command call (Mods install)", () => {
bsmSpawn(`"./BSIPA.exe" "./Beat Saber.exe" -n`, {
log: BsmShellLog.Command,
linux: { prefix: `"./wine64"` },
});
expect(spawnSpy).toHaveBeenCalledTimes(1);
expect(spawnSpy).toHaveBeenCalledWith(
process.platform === "win32"
? `"./BSIPA.exe" "./Beat Saber.exe" -n`
: `"./wine64" "./BSIPA.exe" "./Beat Saber.exe" -n`,
expect.anything()
);
expect(logSpy).toHaveBeenCalledTimes(1);
});
it("Complex spawn command call (BS launch)", () => {
bsmSpawn(`"./Beat Saber.exe"`, {
args: ["--no-yeet", "fpfc"],
options: {
cwd: "/",
detached: true,
env: BS_ENV,
},
log: BsmShellLog.Command,
linux: { prefix: `"./proton" run` },
});
expect(spawnSpy).toHaveBeenCalledTimes(1);
expect(spawnSpy).toHaveBeenCalledWith(
IS_WINDOWS
? `"./Beat Saber.exe" --no-yeet fpfc`
: `"./proton" run "./Beat Saber.exe" --no-yeet fpfc`,
expect.objectContaining({
cwd: "/",
detached: true,
env: BS_ENV,
})
);
expect(logSpy).toHaveBeenCalledTimes(1);
});
ifIt(IS_LINUX)("Complex spawn command call (BS launch flatpak)", () => {
const flatpakEnv = [
"SteamAppId",
"SteamOverlayGameId",
"SteamGameId",
"WINEDLLOVERRIDES",
"STEAM_COMPAT_DATA_PATH",
"STEAM_COMPAT_INSTALL_PATH",
"STEAM_COMPAT_CLIENT_INSTALL_PATH",
"STEAM_COMPAT_APP_ID",
"SteamEnv"
];
const newEnv = {
...BS_ENV,
something: "else",
more: "tests",
};
bsmSpawn(`"./Beat Saber.exe"`, {
args: ["--no-yeet", "fpfc"],
options: {
cwd: "/",
detached: true,
env: newEnv,
},
log: BsmShellLog.Command,
linux: { prefix: `"./proton" run` },
flatpak: {
host: true,
env: flatpakEnv,
},
});
expect(spawnSpy).toHaveBeenCalledTimes(1);
const envArgs = flatpakEnv.map(argName =>
`--env=${argName}="${(BS_ENV as any)[argName]}"`
).join(" ");
expect(spawnSpy).toHaveBeenCalledWith(
`flatpak-spawn --host ${envArgs} "./proton" run "./Beat Saber.exe" --no-yeet fpfc`,
expect.objectContaining({
cwd: "/",
detached: true,
env: newEnv,
})
);
expect(logSpy).toHaveBeenCalledTimes(1);
});
});
ifDescribe(IS_LINUX)("Test os.helpers isProcessRunning", () => {
const logSpy: jest.SpyInstance = jest.spyOn(log, "error");
afterEach(() => {
logSpy.mockClear();
});
it("Process is running", async () => {
// There will always a node process running
const running = await isProcessRunning("node");
expect(running).toBe(true);
// No errors received
expect(logSpy).toHaveBeenCalledTimes(0);
});
it("Process is not running", async () => {
const running = await isProcessRunning(`bs-manager-${crypto.randomUUID()}`);
expect(running).toBe(false);
// Throws because grep couldn't find any process with that name
expect(logSpy).toHaveBeenCalledTimes(1);
});
it("Empty process name", async () => {
const running = await isProcessRunning("");
expect(running).toBe(false);
expect(logSpy).toHaveBeenCalledTimes(0);
})
});
+329
View File
@@ -0,0 +1,329 @@
import path from "path";
import { mkdir, pathExistsSync, readFile, rm } from "fs-extra";
import { BsmZipExtractor } from "main/models/bsm-zip-extractor.class";
const TEST_FOLDER = path.resolve(__dirname, "..", "assets", "zip");
const STANDARD_ZIP = path.join(TEST_FOLDER, "standard.zip");
const WINDOWS_LEGACY_MAP_ZIP = path.join(TEST_FOLDER, "windows_legacy.zip");
const SUBFOLDERS_ZIP = path.join(TEST_FOLDER, "subfolders.zip");
const MANIFEST_ZIP = path.join(TEST_FOLDER, "manifest.zip");
const EMPTY_ZIP = path.join(TEST_FOLDER, "empty.zip");
const UNICODE_ZIP = path.join(TEST_FOLDER, "unicode.zip");
const DESTINATION_FOLDER = path.join(TEST_FOLDER, "out");
describe("Test BsmZipExtractor class", () => {
let zip: BsmZipExtractor;
beforeAll(async () => {
if (pathExistsSync(DESTINATION_FOLDER)) {
await rm(DESTINATION_FOLDER, { recursive: true, force: true });
}
await mkdir(DESTINATION_FOLDER);
});
afterEach(async () => {
if (zip) {
zip.close();
}
if (pathExistsSync(DESTINATION_FOLDER)) {
await rm(DESTINATION_FOLDER, { recursive: true, force: true });
}
await mkdir(DESTINATION_FOLDER);
});
afterAll(async () => {
if (pathExistsSync(DESTINATION_FOLDER)) {
await rm(DESTINATION_FOLDER, { recursive: true, force: true });
}
});
it("Extract standard zip", async () => {
zip = await BsmZipExtractor.fromPath(STANDARD_ZIP);
const res = await zip.extract(DESTINATION_FOLDER);
expect(res.sort()).toEqual([
"file_1.2.txt",
"file_1.3.txt",
"folder_1.1/",
"folder_1.1/file_2.1.txt",
"folder_1.1/file_2.2.txt",
].sort())
for (const file of [
"file_1.2.txt",
"file_1.3.txt",
]) {
expect(pathExistsSync(path.join(DESTINATION_FOLDER, file)))
.toBe(true);
}
const SUBFOLDER_PATH = path.join(DESTINATION_FOLDER, "folder_1.1");
for (const file of [
"file_2.1.txt",
"file_2.2.txt",
]) {
expect(pathExistsSync(path.join(SUBFOLDER_PATH, file)))
.toBe(true);
}
});
it("Extract map zips using back slashes", async () => {
zip = await BsmZipExtractor.fromPath(WINDOWS_LEGACY_MAP_ZIP);
const res = await zip.extract(DESTINATION_FOLDER);
expect(res.sort()).toEqual([
"BPMInfo.dat",
"cover.jpg",
"ExpertLegacy.dat",
"ExpertPlusLawless.dat",
"ExpertPlusLegacy.dat",
"ExpertPlusStandard.dat",
"ExpertStandard.dat",
"Info.dat",
"song.egg",
"pfp/",
"pfp/galaxyCompressed.jpg",
"pfp/gojiCompressed.jpg",
].sort());
// Expect all the files to exists
for (const file of [
"BPMInfo.dat",
"cover.jpg",
"ExpertLegacy.dat",
"ExpertPlusLawless.dat",
"ExpertPlusLegacy.dat",
"ExpertPlusStandard.dat",
"ExpertStandard.dat",
"Info.dat",
"song.egg",
]) {
expect(pathExistsSync(path.join(DESTINATION_FOLDER, file)))
.toBe(true);
}
const SUBFOLDER_PATH = path.join(DESTINATION_FOLDER, "pfp");
for (const file of [
"galaxyCompressed.jpg",
"gojiCompressed.jpg",
]) {
expect(pathExistsSync(path.join(SUBFOLDER_PATH, file)))
.toBe(true);
}
});
it("Read Zip with multiple subfolders", async () => {
const zip = await BsmZipExtractor.fromPath(SUBFOLDERS_ZIP);
const res = await zip.extract(DESTINATION_FOLDER);
expect(res.sort()).toEqual([
"1/",
"1/2/",
"1/2/3/",
"1/2/3/4/",
"1/2/3/4/5.txt",
].sort());
for (const folder of [
"1/",
"1/2/",
"1/2/3/",
"1/2/3/4/",
]) {
expect(pathExistsSync(path.join(DESTINATION_FOLDER, folder)))
.toBe(true);
}
const file = "1/2/3/4/5.txt";
expect(pathExistsSync(path.join(DESTINATION_FOLDER, file)))
.toBe(true);
});
it("Read manifest.json from zip file", async () => {
const zipBuffer = await readFile(MANIFEST_ZIP);
zip = await BsmZipExtractor.fromBuffer(zipBuffer);
const buffer = await (await zip.findEntry(entry => entry.fileName === "manifest.json")).read();
const manifest = JSON.parse(buffer.toString());
expect(manifest).toBeTruthy();
// Check some of the fields if they are correct
expect(manifest.appId).toBe("some-app-id");
expect(manifest.canonicalName).toBe("some-canonical-name");
expect(manifest.isCore).toBe(true);
});
it("Should find an entry using findEntry", async () => {
zip = await BsmZipExtractor.fromPath(STANDARD_ZIP);
const entry = await zip.findEntry(entry => entry.fileName === "file_1.2.txt");
expect(entry).toBeTruthy();
expect(entry.fileName).toBe("file_1.2.txt");
const contentBuffer = await entry.read();
const content = contentBuffer.toString();
expect(content).toContain("This is file 1.2"); // Assurez-vous que le contenu correspond
});
it("Should filter entries using filterEntries", async () => {
zip = await BsmZipExtractor.fromPath(STANDARD_ZIP);
const entries = await zip.filterEntries(entry => !entry.isDirectory && entry.fileName.startsWith("folder_1.1/"));
expect(entries.length).toBe(2);
const fileNames = entries.map(entry => entry.fileName).sort();
expect(fileNames).toEqual([
"folder_1.1/file_2.1.txt",
"folder_1.1/file_2.2.txt",
]);
});
it("Should get an entry by file name using getEntry", async () => {
zip = await BsmZipExtractor.fromPath(STANDARD_ZIP);
const entry = await zip.getEntry("file_1.3.txt");
expect(entry).toBeTruthy();
expect(entry.fileName).toBe("file_1.3.txt");
const contentBuffer = await entry.read();
const content = contentBuffer.toString();
expect(content).toContain("This is file 1.3"); // Assurez-vous que le contenu correspond
});
it("Should extract only specified entries using entriesNames option", async () => {
zip = await BsmZipExtractor.fromPath(STANDARD_ZIP);
const res = await zip.extract(DESTINATION_FOLDER, { entriesNames: ["file_1.2.txt", "folder_1.1/file_2.1.txt"] });
expect(res.sort()).toEqual([
"file_1.2.txt",
"folder_1.1/",
"folder_1.1/file_2.1.txt",
].sort());
for (const file of [
"file_1.2.txt",
"folder_1.1/file_2.1.txt",
]) {
expect(pathExistsSync(path.join(DESTINATION_FOLDER, file)))
.toBe(true);
}
// Vérifiez que les autres fichiers ne sont pas extraits
expect(pathExistsSync(path.join(DESTINATION_FOLDER, "file_1.3.txt")))
.toBe(false);
expect(pathExistsSync(path.join(DESTINATION_FOLDER, "folder_1.1/file_2.2.txt")))
.toBe(false);
});
it("Should not extract any files if abortToken is already aborted", async () => {
zip = await BsmZipExtractor.fromPath(STANDARD_ZIP);
const abortController = new AbortController();
// Abortez avant d'appeler extract
abortController.abort();
const res = await zip.extract(DESTINATION_FOLDER, { abortToken: abortController });
expect(res.length).toBe(0);
// Vérifiez qu'aucun fichier n'a été extrait
expect(pathExistsSync(path.join(DESTINATION_FOLDER, "file_1.2.txt")))
.toBe(false);
});
it("Should throw an error when opening a non-existent zip file", async () => {
await expect(BsmZipExtractor.fromPath("non_existent.zip"))
.rejects
.toThrow();
});
it("Should handle empty zip file correctly", async () => {
zip = await BsmZipExtractor.fromPath(EMPTY_ZIP);
const entries = [];
for await (const entry of zip.entries()) {
entries.push(entry);
}
expect(entries.length).toBe(0);
const res = await zip.extract(DESTINATION_FOLDER);
expect(res.length).toBe(0);
});
it("Should return the same entries on multiple calls to entries()", async () => {
zip = await BsmZipExtractor.fromPath(STANDARD_ZIP);
const entries1 = [];
for await (const entry of zip.entries()) {
entries1.push(entry);
}
expect(entries1.length).toBe(5); // Basé sur le contenu de STANDARD_ZIP
const entries2 = [];
for await (const entry of zip.entries()) {
entries2.push(entry);
}
expect(entries2.length).toBe(5);
expect(entries2.map(e => e.fileName).sort()).toEqual(entries1.map(e => e.fileName).sort());
});
it("Should not be able to read entries after zip is closed", async () => {
zip = await BsmZipExtractor.fromPath(STANDARD_ZIP);
zip.close();
await expect(zip.entries().next()).rejects.toThrow();
});
it("Should handle zip file from buffer", async () => {
const zipBuffer = await readFile(STANDARD_ZIP);
zip = await BsmZipExtractor.fromBuffer(zipBuffer);
const entries = [];
for await (const entry of zip.entries()) {
entries.push(entry.fileName);
}
expect(entries.sort()).toEqual([
"file_1.2.txt",
"file_1.3.txt",
"folder_1.1/",
"folder_1.1/file_2.1.txt",
"folder_1.1/file_2.2.txt",
].sort());
});
it("Should read and extract files with Unicode filenames", async () => {
zip = await BsmZipExtractor.fromPath(UNICODE_ZIP);
const entries = [];
for await (const entry of zip.entries()) {
entries.push(entry);
}
expect(entries.map(e => e.fileName)).toContain("こんにちは.txt"); // "Bonjour" en japonais
const res = await zip.extract(DESTINATION_FOLDER);
expect(res).toContain("こんにちは.txt");
expect(pathExistsSync(path.join(DESTINATION_FOLDER, "こんにちは.txt")))
.toBe(true);
});
it("Should throw an error when reading a corrupted zip file", async () => {
const CORRUPTED_ZIP = path.join(TEST_FOLDER, "corrupted.zip");
await expect(BsmZipExtractor.fromPath(CORRUPTED_ZIP)).rejects.toThrow(/.*[Error: Invalid comment length].*/)
});
});

Some files were not shown because too many files have changed in this diff Show More