diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 961b371f..1749270c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,33 +1,108 @@ -## Contributing +# Contributing to BSManager [code-of-conduct]: CODE_OF_CONDUCT.md [fork]: https://github.com/Zagrios/bs-manager/fork [pr]: https://github.com/Zagrios/bs-manager/compare [style]: https://github.com/basarat/typescript-book/blob/master/docs/styleguide/styleguide.md -Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. +Hello! We’re delighted that you’re interested in contributing to **BSManager**. Your help is essential to maintaining and improving this project. -Please note that this project is released with a [Contributor Code of Conduct][code-of-conduct]. By participating in this project you agree to abide by its terms. +> [!NOTE] +> This project is released with a [Contributor Code of Conduct][code-of-conduct]. By participating, you agree to abide by its terms. -## Issues and PRs +--- -If you have suggestions for how this project could be improved, or want to report a bug, open an issue! We'd love all and any contributions. If you have questions, too, we'd love to hear them. +## Opening Issues -We'd also love PRs. If you're thinking of a large PR, we advise opening up an issue first to talk about it, though! Look at the links below if you're not sure how to open a PR. +- **Reporting Bugs** + If you find a bug or any unexpected behavior, feel free to open an issue. Be sure to include steps to reproduce it, relevant logs, versions, and any other pertinent details. +- **Suggesting Enhancements** + Have an idea for improving BSManager? We welcome all suggestions—open an issue to discuss your proposal. -## Submitting a pull request +> [!TIP] +> Before opening a new issue, please check if there’s already an existing one for the same topic to avoid duplicates. -1. [Fork][fork] and clone the repository. -1. Install the correct NodeJS version (highly recommend installing [Volta](https://volta.sh/) for that). -1. Configure and install the dependencies: `npm install`. -1. Create a new branch following naming convention: `git checkout -b (feature|bugfix|hotfix|chore)/(short-description)(/issue-id)`. -1. Make your change, test, and make sure BSManager work fine. -1. Push to your fork and [submit a pull request][pr]. -1. Pat your self on the back and wait for your pull request to be reviewed and merged. +--- -Here are a few things you can do that will increase the likelihood of your pull request being accepted: +## Submitting Pull Requests -- Follow the [style guide][style] which is using standard. -- Keep your changes as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests. +### Before You Begin -Work in Progress pull requests are also welcome to get feedback early on, or if there is something blocked you. +1. **[Fork the repository][fork]** and **clone** your fork locally. +2. **Install the required Node.js version** (we recommend using [Volta](https://volta.sh/) to manage Node versions). +3. **Install project dependencies**: + ```bash + npm install + ``` + +### Create a Dedicated Branch + +Use a clear naming convention for your branch: + +```bash +git checkout -b (feature|bugfix|hotfix|chore)/(short-description)(/issue-id) +``` + +> [!NOTE] +> Exemple : `git checkout -b feature/update-docs/42` + +### Develop and Test + +> [!TIP] +> - Follow the [style guide][style] which is using standard. +> - Keep your changes as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests. + +- Make the necessary changes on your new branch. +- Test your changes manually to ensure everything is working correctly. +- Verify that your updates do not introduce regressions or break existing functionality. + +### Open a Pull Request + +1. **Push** your branch to your fork. +2. Visit the main **BSManager** repository and click “Compare & pull request” or use [this link][pr]. +3. Provide a **clear description** of your changes (the context, what problem it solves, etc.). +4. **Submit** your pull request. A maintainer will review it and may ask for adjustments or clarifications. + +--- + +## Useful Commands + +### Development + +```bash +npm start +``` + +> Runs the application in development mode. + +### Packaging + +```bash +npm run package +``` + +> Packages the application using Electron Builder. + +```bash +npm run build && electron-builder --config electron-builder.config.js --publish never --x64 --linux +``` + +> Package for Linux distros (deb, rpm, pacman) + +```bash +npm run publish +``` + +> Publishes the application (primarily for Windows). + +```bash +npm run publish:flatpak +``` + +> Build a Flatpak package + +## Need Help? + +If you have any questions or need further assistance, feel free to **open an issue** or reach out via our [discord](https://discord.gg/uSqbHVpKdV). We appreciate any and all contributions you make to BSManager! + +Thank you for your interest in making BSManager better! diff --git a/assets/jsons/bs-versions.json b/assets/jsons/bs-versions.json index 9de46cb6..db1aeb23 100644 --- a/assets/jsons/bs-versions.json +++ b/assets/jsons/bs-versions.json @@ -827,6 +827,8 @@ "BSVersion": "1.40.2", "BSManifest": "5496832903170665287", "OculusBinaryId": "8626990240734012", + "ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/510697606000673692", + "ReleaseImg": "https://clan.fastly.steamstatic.com/images/32055887/04ad25256ffc2686f4ea19830e70df6b2752f728.png", "ReleaseDate": "1738951837", "year": "2025" } diff --git a/assets/jsons/translations/de.json b/assets/jsons/translations/de.json index 5c5089b2..9baa74c0 100644 --- a/assets/jsons/translations/de.json +++ b/assets/jsons/translations/de.json @@ -251,6 +251,8 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", + "tl-PH": "Filipino", "translated": { "en-EN": "Englisch, Vereinigtes Königreich", "en-US": "Englisch, USA", @@ -263,7 +265,9 @@ "zh-CN": "Vereinfachtes Chinesisch", "zh-TW": "Traditionelles Chinesisch", "ja-JP": "Japanisch", - "ko-KR": "Koreanisch" + "ko-KR": "Koreanisch", + "uk-UA": "Ukrainisch", + "tl-PH": "Filipino" } } }, @@ -952,7 +956,7 @@ "maps": { "map-filter-panel": { "duration": "Länge", - "nps" : "Noten pro Sekunde", + "nps": "Noten pro Sekunde", "njs": "Notensprunggeschwindigkeit", "tags": "Stichwörter", "specificities": "Allgemein", @@ -1033,11 +1037,11 @@ "by": "Von {songAutor}", "mapped-by": "Gemapped von", "delete": "Löschen", - "preview" : "Kartenvorschau", - "bsr-code" : "BSR Code", - "download" : "Karte herunterladen", - "downloading" :"Karte wird heruntergeladen", - "cancel-download" : "Download abbrechen", + "preview": "Kartenvorschau", + "bsr-code": "BSR Code", + "download": "Karte herunterladen", + "downloading": "Karte wird heruntergeladen", + "cancel-download": "Download abbrechen", "hightlight-difficulty": "Schwierigkeit hervorheben" } }, diff --git a/assets/jsons/translations/en.json b/assets/jsons/translations/en.json index 5621ed3b..6d912f49 100644 --- a/assets/jsons/translations/en.json +++ b/assets/jsons/translations/en.json @@ -251,6 +251,8 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", + "tl-PH": "Filipino", "translated": { "en-EN": "English, United Kingdom", "en-US": "English, USA", @@ -263,7 +265,9 @@ "zh-CN": "Chinese (Simplified)", "zh-TW": "Chinese (Traditional)", "ja-JP": "Japanese", - "ko-KR": "Korean" + "ko-KR": "Korean", + "uk-UA": "Ukrainian", + "tl-PH": "Filipino" } } }, @@ -831,7 +835,7 @@ "desc-plural": "{nb} duplicate maps have been found. Are you sure you want to delete them?" } }, - "link-contents":{ + "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.", @@ -840,7 +844,7 @@ "i-need-help": "I need help", "valid-btn": "Link {contentType}" }, - "unlink-contents":{ + "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.", @@ -1276,57 +1280,8 @@ } }, "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"] } } diff --git a/assets/jsons/translations/es.json b/assets/jsons/translations/es.json index c22986f2..7a045c3a 100644 --- a/assets/jsons/translations/es.json +++ b/assets/jsons/translations/es.json @@ -251,6 +251,8 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", + "tl-PH": "Filipino", "translated": { "en-EN": "Inglés, Reino Unido", "en-US": "Inglés, Estados Unidos", @@ -263,7 +265,9 @@ "zh-CN": "Chino simplificado", "zh-TW": "Chino tradicional", "ja-JP": "Japonés", - "ko-KR": "Coreano" + "ko-KR": "Coreano", + "uk-UA": "Ucraniano", + "tl-PH": "Filipino" } } }, @@ -1276,57 +1280,8 @@ } }, "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"] } } diff --git a/assets/jsons/translations/fr.json b/assets/jsons/translations/fr.json index 2ff64ce0..1e9d4811 100644 --- a/assets/jsons/translations/fr.json +++ b/assets/jsons/translations/fr.json @@ -251,6 +251,8 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", + "tl-PH": "Filipino", "translated": { "en-EN": "Anglais, Royaume-Uni", "en-US": "Anglais, États-Unis", @@ -263,7 +265,9 @@ "zh-CN": "Chinois simplifié", "zh-TW": "Chinois traditionnel", "ja-JP": "Japonais", - "ko-KR": "Coréen" + "ko-KR": "Coréen", + "uk-UA": "Ukrainien", + "tl-PH": "Philippin" } } }, @@ -670,7 +674,6 @@ "title": "L'ajout du dossier partagé a échoué", "msg": "Vous ne pouvez pas ajouter \"{folder}\" aux dossiers partagés." } - }, "create-launch-shortcut": { "success": { @@ -953,7 +956,7 @@ "maps": { "map-filter-panel": { "duration": "Durée", - "nps" : "Notes Par Seconde", + "nps": "Notes Par Seconde", "njs": "Vitesse de saut des notes", "tags": "tags", "specificities": "général", @@ -1034,12 +1037,12 @@ "by": "Par {songAutor}", "mapped-by": "mappée par", "delete": "Supprimer", - "preview" : "Aperçu de la carte", - "bsr-code" : "Code BSR", - "download" : "Télécharger la carte", - "downloading" :"Téléchargement de la carte", - "cancel-download" : "Annuler le téléchargement", - "hightlight-difficulty" : "Surligner la difficulté" + "preview": "Aperçu de la carte", + "bsr-code": "Code BSR", + "download": "Télécharger la carte", + "downloading": "Téléchargement de la carte", + "cancel-download": "Annuler le téléchargement", + "hightlight-difficulty": "Surligner la difficulté" } }, "models": { @@ -1216,15 +1219,15 @@ "no-playlists-found": "Aucune playlists trouvées", "error-occur-while-loading-playlists": "Une erreur est survenue lors du chargement des playlists", "error-occur-while-loading-playlist": "Une erreur est survenue lors du chargement de la playlist", - "loading-maps":"Chargement des maps...", - "no-maps-found-for-playlist":"Aucune map trouvée pour cette playlist", - "playlist-contain-no-maps":"La playlist ne contient aucune map", - "no-map-installed-for-playlist":"Aucune map installée pour cette playlist", - "playlist-is-waiting-to-download":"La playlist est en attente de téléchargment", + "loading-maps": "Chargement des maps...", + "no-maps-found-for-playlist": "Aucune map trouvée pour cette playlist", + "playlist-contain-no-maps": "La playlist ne contient aucune map", + "no-map-installed-for-playlist": "Aucune map installée pour cette playlist", + "playlist-is-waiting-to-download": "La playlist est en attente de téléchargment", "download-maps": "Télécharger les maps", "download-missing-maps": "Télécharger les maps manquantes", - "playlist-is-downloading":"La playlist est en cours de téléchargement", - "some-playlist-maps-are-missing":"Certaines maps de cette playlist sont manquantes", + "playlist-is-downloading": "La playlist est en cours de téléchargement", + "some-playlist-maps-are-missing": "Certaines maps de cette playlist sont manquantes", "create-a-playlist": "Créer une playlist", "synchronize-playlists": "Synchroniser les playlists", "export-playlists": "Exporter les playlists", @@ -1275,7 +1278,6 @@ "CANNOT_PARSE_PLAYLIST": "Les playlists ne sont pas lisibles", "unknown": "Aucune playlist n'a pu être importée" } - }, "dateformat": { "dayNames": ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"], diff --git a/assets/jsons/translations/it.json b/assets/jsons/translations/it.json index e1b437e1..09d175eb 100644 --- a/assets/jsons/translations/it.json +++ b/assets/jsons/translations/it.json @@ -251,6 +251,8 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", + "tl-PH": "Filipino", "translated": { "en-EN": "Inglese, Regno Unito", "en-US": "Inglese, Stati Uniti d'America", @@ -263,7 +265,9 @@ "zh-CN": "Cinese (Semplificato)", "zh-TW": "Cinese (Tradizionale)", "ja-JP": "Giapponese", - "ko-KR": "Coreano" + "ko-KR": "Coreano", + "uk-UA": "Ucraino", + "tl-PH": "Filippino" } } }, @@ -831,7 +835,7 @@ "desc-plural": "Sono state trovate {nb} mappe duplicate. Sei sicuro di volerle eliminare?" } }, - "link-contents":{ + "link-contents": { "title": "Collega {contentType}", "p-1": "Collegare {contentType} consente di condividere {contentType} tra tutte le versioni con questa funzione attiva. Quando collegate, questa versione avrà il beneficio della condivisione di {contentType}.", "p-2": "Per usufruire della funzione di collegamento, tutti i tuoi {itemsHtml} saranno spostati nella cartella {sharedHtml}. Successivamente, un collegamento simbolico che punta alla cartella condivisa {contentType} sostituirà la tua cartella originale {contentType}.", @@ -840,7 +844,7 @@ "i-need-help": "Mi serve aiuto", "valid-btn": "Collega {contentType}" }, - "unlink-contents":{ + "unlink-contents": { "title": "Scollega {contentType}", "p-1": "Attenzione, scollegare {contentType} disabiliterà l'uso di {contentType} condivisi per questa versione, fino a quando non verrà riabilitato.", "p-2": "Per scollegare le tue mappe, il collegamento simbolico che punta alla {sharedHtml} verrà rimosso. Dopodiché, tutte le mappe nella cartella condivisa verranno copiate nella cartella {itemsHtml} della tua versione di Beat Saber.", @@ -889,65 +893,65 @@ "connect-to-meta": { "title": "Connettiti a Meta", "body": { - "token-needed": "Il tuo token di connessione Meta è necessario per scaricare Beat Saber.", - "need-cookie-enabled": "Accedendo a Meta, si aprirà una finestra di login e potrai quindi avviare il processo di login. Assicurati di accettare i cookie, altrimenti potremmo non essere in grado di recuperare il tuo token per avviare il download.", - "enter-token-manually": "Inserisci manualmente il mio token di login", - "enter-token-manually-tooltip": "Questo ti permetterà di inserire il tuo token di accesso senza passare per il login di Meta." + "token-needed": "Il tuo token di connessione Meta è necessario per scaricare Beat Saber.", + "need-cookie-enabled": "Accedendo a Meta, si aprirà una finestra di login e potrai quindi avviare il processo di login. Assicurati di accettare i cookie, altrimenti potremmo non essere in grado di recuperare il tuo token per avviare il download.", + "enter-token-manually": "Inserisci manualmente il mio token di login", + "enter-token-manually-tooltip": "Questo ti permetterà di inserire il tuo token di accesso senza passare per il login di Meta." + }, + "stay": "Ricordami", + "connect-to-meta": "Connettiti a Meta" }, - "stay": "Ricordami", - "connect-to-meta": "Connettiti a Meta" - }, "enable-oculus-sideloaded-apps": { - "title": "Abilita Sideloading", - "info-1": "Per avviare Beat Saber, è necessario abilitare la possibilità di eseguire app sideloaded. BSManager richiederà i diritti di amministratore per abilitare automaticamente questa funzione.", - "info-2": "La funzione di sideloading consente di avviare giochi situati al di fuori della cartella della libreria Oculus.", - "info-3": "Dopo che il sideloading è stato attivato, la funzione rimarrà attiva e non ti verrà più chiesto di abilitarla.", - "i-want-to-do-it-myself": "Voglio farlo da solo", - "understood": "Ho capito" - }, - "enter-meta-token": { - "title": "Token Oculus", - "body": { - "info-enter-token": "Per scaricare Beat Saber, è richiesto il tuo token di accesso Oculus.", - "how-obtain-token": "Come posso ottenere il mio token Oculus?", - "oculus-token": "Token Oculus", - "token-is-invalid": "Il token non è valido.", - "save-my-token": "Salva il mio token", - "have-token-saved": "Ho già un token salvato", - "save-token-info": "Questo salverà il tuo token per un uso più facile. Dovrai creare una password per criptare il tuo token a scopo di archiviazione. Se dimentichi la tua password, dovrai semplicemente fornire di nuovo il tuo token.", - "password": "Password", - "password-too-short": "Password troppo corta", - "info-enter-password": "Per scaricare Beat Saber, è richiesto il tuo token di accesso Oculus. Inserisci la password usata per salvare il tuo token Oculus.", - "info-disabled-btn-password": "Il token decriptato con la password fornita non è valido. Assicurati che la password sia la stessa usata per salvare il token.", - "enter-oculus-token": "Inserisci un token Oculus" + "title": "Abilita Sideloading", + "info-1": "Per avviare Beat Saber, è necessario abilitare la possibilità di eseguire app sideloaded. BSManager richiederà i diritti di amministratore per abilitare automaticamente questa funzione.", + "info-2": "La funzione di sideloading consente di avviare giochi situati al di fuori della cartella della libreria Oculus.", + "info-3": "Dopo che il sideloading è stato attivato, la funzione rimarrà attiva e non ti verrà più chiesto di abilitarla.", + "i-want-to-do-it-myself": "Voglio farlo da solo", + "understood": "Ho capito" }, - "valid-btn": "Valida" - }, - "launch-as-admin": { - "title": "Permessi di Amministratore", - "body": { - "info": "Steam è stato rilevato come in esecuzione con permessi di amministratore. Per comunicare con Steam, Beat Saber deve essere avviato anche come amministratore. Altrimenti, Beat Saber potrebbe riscontrare problemi e chiudersi dopo l'avvio.", - "info-2": "Avviare Beat Saber in modalità amministratore darà anche diritti di amministratore alle mod installate. Pertanto, è consigliato riavviare Steam senza permessi di amministratore.", - "info-3": "Si sconsiglia di dare diritti di amministratore a Steam, poiché questo influisce sui giochi e le mod installate, presentando un rischio per la sicurezza." + "enter-meta-token": { + "title": "Token Oculus", + "body": { + "info-enter-token": "Per scaricare Beat Saber, è richiesto il tuo token di accesso Oculus.", + "how-obtain-token": "Come posso ottenere il mio token Oculus?", + "oculus-token": "Token Oculus", + "token-is-invalid": "Il token non è valido.", + "save-my-token": "Salva il mio token", + "have-token-saved": "Ho già un token salvato", + "save-token-info": "Questo salverà il tuo token per un uso più facile. Dovrai creare una password per criptare il tuo token a scopo di archiviazione. Se dimentichi la tua password, dovrai semplicemente fornire di nuovo il tuo token.", + "password": "Password", + "password-too-short": "Password troppo corta", + "info-enter-password": "Per scaricare Beat Saber, è richiesto il tuo token di accesso Oculus. Inserisci la password usata per salvare il tuo token Oculus.", + "info-disabled-btn-password": "Il token decriptato con la password fornita non è valido. Assicurati che la password sia la stessa usata per salvare il token.", + "enter-oculus-token": "Inserisci un token Oculus" + }, + "valid-btn": "Valida" }, - "launch-as-admin": "Avvia come Amministratore", - "not-remind-me": "Non ricordarmelo" - }, - "ask-install-path": { - "title": "Cartella di installazione", - "choose-folder-description": "Scegli la cartella che conterrà tutti i contenuti scaricati da BSManager. (versioni, mod, mappe, playlist, ecc.)", - "default": "Predefinito", - "default-tooltip": "Predefinito nella tua cartella home" - }, - "choose-proton-folder": { - "title": "Cartella di Proton", - "proton-folder-description": "Su Linux, BSManager richiede Proton per funzionare. Scegli la cartella di installazione di Proton per continuare.", - "proton-folder-placeholder": "Cartella di installazione di Proton", - "where-is-proton-installed": "Dove è installato Proton?" - }, - "bs-version-outdated": { - "body": "La versione {outdatedVersion} è obsoleta, e alcune mod o funzioni potrebbero non funzionare più come previsto. Per favore scarica l'ultima versione raccomandata ({recommendedVersion}) di Beat Saber per godere delle ultime funzioni e bugfix." - } + "launch-as-admin": { + "title": "Permessi di Amministratore", + "body": { + "info": "Steam è stato rilevato come in esecuzione con permessi di amministratore. Per comunicare con Steam, Beat Saber deve essere avviato anche come amministratore. Altrimenti, Beat Saber potrebbe riscontrare problemi e chiudersi dopo l'avvio.", + "info-2": "Avviare Beat Saber in modalità amministratore darà anche diritti di amministratore alle mod installate. Pertanto, è consigliato riavviare Steam senza permessi di amministratore.", + "info-3": "Si sconsiglia di dare diritti di amministratore a Steam, poiché questo influisce sui giochi e le mod installate, presentando un rischio per la sicurezza." + }, + "launch-as-admin": "Avvia come Amministratore", + "not-remind-me": "Non ricordarmelo" + }, + "ask-install-path": { + "title": "Cartella di installazione", + "choose-folder-description": "Scegli la cartella che conterrà tutti i contenuti scaricati da BSManager. (versioni, mod, mappe, playlist, ecc.)", + "default": "Predefinito", + "default-tooltip": "Predefinito nella tua cartella home" + }, + "choose-proton-folder": { + "title": "Cartella di Proton", + "proton-folder-description": "Su Linux, BSManager richiede Proton per funzionare. Scegli la cartella di installazione di Proton per continuare.", + "proton-folder-placeholder": "Cartella di installazione di Proton", + "where-is-proton-installed": "Dove è installato Proton?" + }, + "bs-version-outdated": { + "body": "La versione {outdatedVersion} è obsoleta, e alcune mod o funzioni potrebbero non funzionare più come previsto. Per favore scarica l'ultima versione raccomandata ({recommendedVersion}) di Beat Saber per godere delle ultime funzioni e bugfix." + } }, "maps": { "map-filter-panel": { @@ -1277,57 +1281,8 @@ } }, "dateformat": { - "dayNames": [ - "Dom", - "Lun", - "Mar", - "Mer", - "Gio", - "Ven", - "Sab", - "Domenica", - "Lunedì", - "Martedì", - "Mercoledì", - "Giovedì", - "Venerdì", - "Sabato" - ], - "monthNames": [ - "Gen", - "Feb", - "Mar", - "Apr", - "Mag", - "Giu", - "Lug", - "Ago", - "Set", - "Ott", - "Nov", - "Dic", - "Gennaio", - "Febbraio", - "Marzo", - "Aprile", - "Maggio", - "Giugno", - "Luglio", - "Augosto", - "Settembre", - "Ottobre", - "Novembre", - "Dicembre" - ], - "timeNames": [ - "a", - "p", - "am", - "pm", - "A", - "P", - "AM", - "PM" - ] + "dayNames": ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"], + "monthNames": ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic", "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Augosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], + "timeNames": ["a", "p", "am", "pm", "A", "P", "AM", "PM"] } } diff --git a/assets/jsons/translations/ja.json b/assets/jsons/translations/ja.json index ae3e4aea..49c13446 100644 --- a/assets/jsons/translations/ja.json +++ b/assets/jsons/translations/ja.json @@ -251,6 +251,8 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", + "tl-PH": "Filipino", "translated": { "en-EN": "イギリス英語", "en-US": "アメリカ英語", @@ -263,7 +265,9 @@ "zh-CN": "簡体字中国", "zh-TW": "繁体字中国", "ja-JP": "日本語", - "ko-KR": "韓国語" + "ko-KR": "韓国語", + "uk-UA": "ウクライナ語", + "tl-PH": "フィリピン人" } } }, @@ -952,7 +956,7 @@ "maps": { "map-filter-panel": { "duration": "尺", - "nps" : "秒間ノート数", + "nps": "秒間ノート数", "njs": "ノートジャンプ速度", "tags": "タグ", "specificities": "一般", @@ -1033,11 +1037,11 @@ "by": "By {songAutor}", "mapped-by": "作成者 ", "delete": "削除", - "preview" : "マッププレビュー", - "bsr-code" : "BSRコード", - "download" : "マップをダウンロード", - "downloading" :"マップをダウンロード中", - "cancel-download" : "ダウンロードをキャンセル", + "preview": "マッププレビュー", + "bsr-code": "BSRコード", + "download": "マップをダウンロード", + "downloading": "マップをダウンロード中", + "cancel-download": "ダウンロードをキャンセル", "hightlight-difficulty": "難易度をハイライト" } }, diff --git a/assets/jsons/translations/ko.json b/assets/jsons/translations/ko.json index 0fb49f0e..91054296 100644 --- a/assets/jsons/translations/ko.json +++ b/assets/jsons/translations/ko.json @@ -167,7 +167,6 @@ "dont-remind-me": "다시는 알리지 않기", "update": "업데이트" } - }, "drop-zone": { "text": "모드를 가져오기", @@ -252,6 +251,8 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", + "tl-PH": "Filipino", "translated": { "en-EN": "영어(영국)", "en-US": "영어(미국)", @@ -264,7 +265,9 @@ "zh-CN": "중국어 (간체)", "zh-TW": "중국어 (번체)", "ja-JP": "일본어", - "ko-KR": "한국어" + "ko-KR": "한국어", + "uk-UA": "우크라이나어", + "tl-PH": "필리핀인" } } }, @@ -1271,57 +1274,8 @@ } }, "dateformat": { - "dayNames": [ - "일", - "월", - "화", - "수", - "목", - "금", - "토", - "일요일", - "월요일", - "화요일", - "수요일", - "목요일", - "금요일", - "토요일" - ], - "monthNames": [ - "1월", - "2월", - "3월", - "4월", - "5월", - "6월", - "7월", - "8월", - "9월", - "10월", - "11월", - "12월", - "1월", - "2월", - "3월", - "4월", - "5월", - "6월", - "7월", - "8월", - "9월", - "10월", - "11월", - "12월" - ], - "timeNames": [ - "오전", - "오후", - "오전", - "오후", - "오전", - "오후", - "오전", - "오후" - ] + "dayNames": ["일", "월", "화", "수", "목", "금", "토", "일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"], + "monthNames": ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월", "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], + "timeNames": ["오전", "오후", "오전", "오후", "오전", "오후", "오전", "오후"] } } diff --git a/assets/jsons/translations/pt-br.json b/assets/jsons/translations/pt-br.json index 72be85fe..9ded8bce 100644 --- a/assets/jsons/translations/pt-br.json +++ b/assets/jsons/translations/pt-br.json @@ -251,6 +251,8 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", + "tl-PH": "Filipino", "translated": { "en-EN": "Inglês, Reino Unido", "en-US": "Inglês, Estados Unidos", @@ -263,7 +265,9 @@ "zh-CN": "Chinês (Simplificado)", "zh-TW": "Chinês (Tradicional)", "ja-JP": "Japonês", - "ko-KR": "Coreano" + "ko-KR": "Coreano", + "uk-UA": "Ucraniano", + "tl-PH": "Filipino" } } }, @@ -831,7 +835,7 @@ "desc-plural": "{nb} mapas duplicados foram encontrados. Tem certeza de que deseja excluí-los?" } }, - "link-contents":{ + "link-contents": { "title": "Vincular {contentType}", "p-1": "Vincular {contentType} permite compartilhar {contentType} entre todas as suas versões que possuam essa função habilitada. Uma vez vinculados, essa versão irá se beneficiar dos {contentType} compartilhados.", "p-2": "Para que possa aproveitar a função de vinculação, todos os seus {itemsHtml} serão movidos para a pasta {sharedHtml}. Depois disso, um link simbólico apontando para a pasta compartilhada {contentType} irá substituir sua pasta original {contentType}.", @@ -840,7 +844,7 @@ "i-need-help": "Eu preciso de ajuda", "valid-btn": "Link {contentType}" }, - "unlink-contents":{ + "unlink-contents": { "title": "Desvincular {contentType}", "p-1": "Cuidado! Desvincular {contentType} irá desabilitar o compartilhamento de {contentType} para essa versão, até que seja habilitado novamente.", "p-2": "Para que possa desvincular seus mapas, o link simbólico criado anteriomente para {sharedHtml} será removido. Depois disso, todos os mapas na pasta compartilhada serão copiados para a pasta {itemsHtml} da sua versão do Beat Saber.", @@ -1276,57 +1280,8 @@ } }, "dateformat": { - "dayNames": [ - "Dom", - "Seg", - "Ter", - "Qua", - "Qui", - "Sex", - "Sab", - "Domingo", - "Segunda", - "Terça", - "Quarta", - "Quinta", - "Sexta", - "Sábado" - ], - "monthNames": [ - "Jan", - "Fev", - "Mar", - "Abr", - "Maio", - "Jun", - "Jul", - "Ago", - "Set", - "Out", - "Nov", - "Dez", - "Janeiro", - "Fevereiro", - "Março", - "Abril", - "Maio", - "Junho", - "Julho", - "Agosto", - "Setembro", - "Outubro", - "Novembro", - "Dezembro" - ], - "timeNames": [ - "a", - "p", - "am", - "pm", - "A", - "P", - "AM", - "PM" - ] + "dayNames": ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab", "Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"], + "monthNames": ["Jan", "Fev", "Mar", "Abr", "Maio", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez", "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], + "timeNames": ["a", "p", "am", "pm", "A", "P", "AM", "PM"] } } diff --git a/assets/jsons/translations/ru.json b/assets/jsons/translations/ru.json index 4067733b..d44a5f6e 100644 --- a/assets/jsons/translations/ru.json +++ b/assets/jsons/translations/ru.json @@ -251,6 +251,8 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", + "tl-PH": "Filipino", "translated": { "en-EN": "Английский, Великобритания", "en-US": "Английский, США", @@ -263,7 +265,9 @@ "zh-CN": "Китайский (упрощенный)", "zh-TW": "Китайский (традиционный)", "ja-JP": "Японский", - "ko-KR": "Корейский" + "ko-KR": "Корейский", + "uk-UA": "Украинский", + "tl-PH": "Филиппинец" } } }, @@ -951,7 +955,7 @@ "maps": { "map-filter-panel": { "duration": "Длительность", - "nps" : "Нот в Секунду", + "nps": "Нот в Секунду", "njs": "Скорость прыжка нот", "tags": "тэги", "specificities": "основное", @@ -1032,11 +1036,11 @@ "by": "От {songAutor}", "mapped-by": "автор карты ", "delete": "Удалить", - "preview" : "Предпросмотр карты", - "bsr-code" : "Код BSR", - "download" : "Скачать карту", - "downloading" :"Загрузка карты", - "cancel-download" : "Отменить загрузку", + "preview": "Предпросмотр карты", + "bsr-code": "Код BSR", + "download": "Скачать карту", + "downloading": "Загрузка карты", + "cancel-download": "Отменить загрузку", "hightlight-difficulty": "Выделить сложность" } }, diff --git a/assets/jsons/translations/tl.json b/assets/jsons/translations/tl.json new file mode 100644 index 00000000..4a99478f --- /dev/null +++ b/assets/jsons/translations/tl.json @@ -0,0 +1,1335 @@ +{ + "misc": { + "download": "I-download", + "add": "Magdagdag", + "verify": "I-verify", + "launch": "I-launch", + "mods": "Mods", + "maps": "Maps", + "playlists": "Playlists", + "models": "Models", + "avatars": "Avatars", + "sabers": "Sabers", + "platforms": "Platforms", + "blocks": "Blocks", + "cancel": "Kanselahin", + "delete": "Tanggalin", + "accept": "Tanggapin", + "refuse": "Tanggihan", + "apply": "I-apply", + "copy": "Kopyahin", + "copied": "Nakopya na!", + "confirm": "Kumpirmahin", + "choose-folder": "Pumili ng folder", + "unknown": "May hindi alam na error na nangyari ¯\\_(ツ)_/¯", + "warning": "Babala", + "continue": "Magpatuloy", + "shared": "Ibinahagi", + "pin": "I-pin", + "unpin": "I-unpin" + }, + "generic": { + "env": { + "parse": "Hindi maayos na na-parse ang string ng env var." + } + }, + "title-bar": { + "outdated": "lipas na" + }, + "nav-bar": { + "add-version": "Magdagdag ng bersyon", + "settings": "Settings", + "shared": { + "text": "Shared", + "tooltip": "Shared contents" + } + }, + "pages": { + "version-viewer": { + "launch-mods": { + "oculus": "Oculus Mode", + "oculus-description": "Kung ginagamit mo ang Beat Saber via Steam, pinapayagan mo itong gamitin ang VR composer ng Oculus upang iwasan ang pagbukas ng SteamVR, para sa posibleng pagbuti ng performance. Hindi ito kinakailangan upang gamitin ang Oculus headsets.", + "desktop": "FPFC Mode", + "desktop-description": "Ang First Person Flying Controller mode ay pwede mong gamitin ang WASD at mouse upang mag-navigate sa menu ng laro. Pinapadali nito ang pagsusuri, dahil hindi mo na kailangang isuot ang headset!", + "debug": "Debug Mode", + "debug-description": "I-enable ang output log window para sa IPA. Ipapakita nito ang debug console na ginagamit ng mga mod.", + "outdated-tippy": "Ang bersyon na ito ay lipas na, at maaaring hindi na gumana ang ilang mods o features tulad ng inaasahan. Mas mainam na gumamit ng inirerekomendang bersyon ({recommendedVersion}) ng Beat Saber upang magamit ang mga pinakabagong features at pag-aayos ng bug.", + "advanced-launch": { + "button": "Launch options", + "placeholder": "Launch options hal: KEY=VALUE %command% fpfc" + }, + "skipsteam": "I-skip ang Steam", + "skipsteam-description": "Pinipigilan mo ang Steam na awtomatikong magbukas kasama ng Beat Saber, i-enable ito kung gumagamit ka ng ibang VR runtime tulad ng WiVRn o Monado na maaaring magdulot ng problema sa SteamVR.", + "map-editor": "Map Editor", + "map-editor-description": "Simulan ang opisyal na Beat Saber map editor imbis na ang laro.", + "proton-logs": "Proton Logs", + "proton-logs-description": "I-enable ang pag-record ng proton logs para sa Beat Saber install na ito sa \"{versionPath}\"." + }, + "maps": { + "search-bar": { + "search-placeholder": "Maghanap ng mapa", + "filters-btn": "Filters", + "dropdown": { + "export-maps": "I-export ang mga maps", + "delete-maps": "Tanggalin ang mga mapa", + "delete-duplicate-maps": "Tanggalin ang mga na-double" + } + }, + "tabs": { + "maps": { + "actions": { + "drop-down": { + "browse-maps": "Mag-browse ng mga mapa", + "import-maps": "Mag-import ng mga map" + }, + "link-maps": { + "tooltips": { + "link": "I-link ang mga mapa", + "unlink": "I-unlink ang mga mapa" + } + } + }, + "empty-maps": { + "text": "Walang mapa", + "button": "I-download ang mga mapa" + }, + "drop-zone": { + "text": "I-import ang iyong mga mapa", + "subtext": "I-drop ang iyong mga zip file dito upang i-import ang iyong mga mapa" + }, + "sort": { + "name": "Pangalan", + "song-author": "Awtor ng Kanta", + "map-author": "Awtor ng Mapa", + "bpm": "BPM", + "duration": "Haba", + "likes": "Likes", + "date-uploaded": "Petsa ng Pagka-upload" + } + }, + "playlists": { + "drop-down": { + "browse-playlists": "Mag-browse ng mga playlist", + "create-a-playlist": "Gumawa ng playlist", + "import-playlists": "Mag-import ng mga playlist" + }, + "drop-zone": { + "text": "I-import ang iyong mga playlist", + "subtext": "I-drop ang iyong mga \".bplist\" o \".json\" na mga file dito upang i-import ang mga ito" + }, + "sort": { + "title": "Pamagat", + "author": "Awtor", + "number-of-maps": "Bilang ng mga Mapa", + "duration": "Haba", + "notes-per-second": "NPS" + } + } + } + }, + "mods": { + "loading-mods": "Naglo-load ng mga mod...", + "no-internet": "Walang internet", + "mods-not-available": "Walang mod na available pa para sa bersyon na ito ng Beat Saber", + "status": { + "no-wineprefix": "Hindi mahanap ang WINEPREFIX path ng BSManager. Pakilunsad muna ang Beat Saber sa BSManager.", + "unknown": "May naganap na hindi kilalang error ¯\\_(ツ)_/¯" + }, + "buttons": { + "more-infos": "Higit pang impormasyon", + "install-or-update": "I-install o i-update", + "reinstall-all": "I-reinstall ang lahat" + }, + "mods-grid": { + "header-bar": { + "name": "Pangalan", + "installed": "Naka-install", + "latest": "Pinakabago", + "description": "Deskripsyon", + "dropdown": { + "import-mods": "I-import ang mga mod", + "uninstall-all": "I-uninstall ang lahat", + "unselect-all": "I-unselect and lahat" + } + } + }, + "notifications": { + "all-mods-already-installed": { + "title": "Naka-install na ang mga mod", + "description": "Ang lahat ng napiling mod ay naka-install na" + }, + "outdated-mods": { + "title": "Lipas na Mod", + "title-plural": "Lipas ng mga Mod", + "description": "Ang {name} mod ay lipas na. Gusto mo bang i-update ito?", + "description-plural": "Ang bersyon na ito ay may {nb} lipas na mga mod. Gusto mo bang i-update ang mga ito?", + "dont-remind-me": "Huwag akong paalalahanan", + "update": "I-update" + } + }, + "drop-zone": { + "text": "I-import ang iyong mga mod", + "subtext": "I-drop ang iyong mga \"zip\" or \"dll\" na mga file dito upang i-import ang mga ito" + } + }, + "dropdown": { + "open-folder": "Buksan ang folder", + "verify-files": "I-verify ang mga file", + "clone": "I-clone", + "edit": "I-edit", + "uninstall": "I-uninstall", + "create-shortcut": "Gumawa ng shortcut", + "shared-folders": "Shared Folders" + } + }, + "available-versions": { + "title": "Mag-download ng bersyon", + "steam-release": "Release page", + "dropdown": { + "refresh": "I-refresh ang mga bersyon", + "import-version": "Mag-import ng bersyon" + }, + "recommended": "inirerekomenda", + "recommended-tooltip": "Pinakamaayos na bersyon para i-mod" + }, + "settings": { + "steam-and-oculus": { + "title": "Steam & Oculus", + "description": "Ang pag-log out ay magpapahintulot sa iyong magpalit ng account sa susunod na pag-download ng Beat Saber.", + "logout": "Mag-log out", + "logout-success": "Nakapag-logout na sa app", + "download-platform": { + "title": "Default na Platform", + "desc": "Pumili ng default na platform na gagamitin upang mag-download ng mga bersyon ng Beat Saber.", + "always-ask": "Laging magtanong" + } + }, + "appearance": { + "title": "Itsura", + "description": "Pumili ng dalawang pangunahing kulay ng BSManager.", + "reset": "I-reset", + "sub-title": "Tema", + "themes": { + "dark": "Dark", + "light": "Light", + "os": "I-sync sa computer" + } + }, + "installation-folder": { + "title": "Installation folder", + "description": "Palitan ang folder na maglalaman ng lahat ng nilalamang ida-download ng BSManager." + }, + "proton-folder": { + "title": "Proton folder", + "description": "Palitan ang folder sa Proton path. (hal. Proton - Experimental)", + "errors": { + "title": "Hindi na-set ang proton folder ng maayos", + "invalid-folder": "Mali ang value ng Proton folder path" + } + }, + "additional-content": { + "title": "Additional content", + "description": "Additional content na nagpapahintulot sa iyong i-customize ang Beat Saber!", + "deep-links": { + "sub-title": "OneClick installations" + } + }, + "language": { + "title": "Lengguwahe", + "description": "Pumili ng lengguwahe.", + "languages": { + "en-EN": "English, UK", + "en-US": "English, US", + "fr-FR": "Français", + "es-ES": "Español", + "it-IT": "Italiano", + "de-DE": "Deutsch", + "pt-BR": "Português (Brasil)", + "ru-RU": "Русский", + "zh-CN": "简体中文", + "zh-TW": "正體中文", + "ja-JP": "日本語", + "ko-KR": "한국어", + "uk-UA": "Українська", + "tl-PH": "Filipino", + "translated": { + "en-EN": "Ingles, Inglatera", + "en-US": "Ingles, USA", + "fr-FR": "Pranses", + "es-ES": "Espanyol", + "it-IT": "Italyano", + "de-DE": "Aleman", + "pt-BR": "Portuges (Brazil)", + "ru-RU": "Ruso", + "zh-CN": "Intsik (Simple)", + "zh-TW": "Intsik (Trandisyunal)", + "ja-JP": "Hapon", + "ko-KR": "Koreano", + "uk-UA": "Ukranyano", + "tl-PH": "Filipino" + } + } + }, + "patreon": { + "title": "Supportahan ang BSManager 💖", + "description": "Suportahan ang proyekto at tulungan kami na magbigay ng patuloy na mga pagdagdag ng feature sa BSManager.", + "buttons": { + "support": "Supportahan ang BSManager 🥰", + "supporters": "Mga Supporters 👀" + }, + "view": { + "no-supporters": "Walang pang supporter", + "sponsors": "Mga Sponsors", + "supporters": "Mga Supporters" + } + }, + "discord": { + "description": "Sumali sa komunidad ng BSManager sa pamamagitan ng pagsunod sa amin sa aming mga social media!" + }, + "contribution": { + "description": "Magmungkahi ng mga bagong feature o mag-ulat ng bug upang matulungan ang pagpapabuti ng BSManager!", + "buttons": { + "request-features": "Mag-request ng feature", + "report-bug": "Mag-ulat ng bug", + "open-logs": "Buksan ang mga logs" + } + }, + "advanced": { + "title": "Advanced", + "description": "Mga advanced na setting para sa BSManager.", + "hardware-acceleration": { + "title": "Hardware Acceleration", + "description": "I-enable ang Hardware Acceleration upang gamitin ang iyong GPU at mapabuti ang performance ng BSManager. I-off ito kung nagiging mabagal ang app.", + "modal": { + "title": "Kailangang i-restart", + "body": "Ang pagbabago ng setting ng hardware acceleration ay isasara at ire-relaunch ang BSManager. Sigurado ka bang gusto mong gawin ito?", + "confirm-btn": "Oo, sigurado ako" + }, + "error-notification": { + "message": "Nagkaroon ng error, hindi ma-disable ang hardware acceleration." + } + }, + "use-symlinks": { + "title": "Gumamit ng Symlinks", + "description": "Gumamit ng Symlinks sa halip na Junctions upang mag-link ng mga folder. I-on lamang ito kung talagang kailangan mo ito.", + "modal": { + "title": "Symlink Permissions", + "body": "Kapag gumagawa ng symlinks, kakailanganin ng BSManager ng mga pribilehiyo ng administrator o naka-enable na developer mode sa iyong sistema. Sigurado ka bang gusto mong magpatuloy?", + "confirm-btn": "Oo, sigurado ako" + }, + "error-notification": { + "message": "Nagkaroon ng error, hindi ma-bago ang setting ng symlink." + } + }, + "use-system-proxy": { + "title": "Gumamit ng system proxy", + "description": "Gagawin ng BSManager ang mga network request sa pamamagitan ng iyong system proxy.", + "error-notification": { + "message": "Nagkaroon ng error, hindi ma-bago ang setting ng system proxy." + } + } + } + } + }, + "notifications": { + "types": { + "error": "🚨 Error", + "warning": "⚠️ Babala", + "success": "🎉 Success" + }, + "common": { + "msg": { + "error-occurred": "Nagkaroon ng error" + } + }, + "shared": { + "errors": { + "titles": { + "operation-running": "Tumatakbo ang operasyon", + "no-internet": "Walang internet", + "file-not-supported": "Hindi suportado ang file" + }, + "msg": { + "operation-running": "Maghintay na matapos ang kasalukuyang operasyon, pagkatapos ay subukan muli.", + "no-internet": "I-check ang iyong koneksyon at subukan muli..", + "file-not-supported": "Tanging {types} na mga file lamang ang suportado." + } + } + }, + "bs-download": { + "success": { + "titles": { + "download-success": "Kumpleto and pag-download", + "verification-finished": "Kumpleto and beripikasyon" + } + }, + "steam-download": { + "warnings": { + "msg": { + "ManifestChecksum": "Ang naunang na-download na manifest ay hindi tumutugma sa bago 🤔", + "ConnectionTimeout": "Mukhang mabagal ang iyong koneksyon sa internet 🥶", + "ConnectionLost": "Nawala ang koneksyon, subukan muli...", + "ConnectionError": "Hindi makakonekta sa Steam, subukan muli...", + "Unknown": "May nangyaring kakaiba 🤔 Mukhang mabagal ang iyong koneksyon." + } + }, + "errors": { + "msg": { + "401": "Mukhang hindi tayo pinapayagan ng Steam na mag-download ng Beat Saber 😢", + "404": "Hindi makakonek sa mga server ng Steam.", + "ExeNotFoundWindows": "Nawawala ang \"DepotDownloader.exe\". Pakisuri kung ang executable na ito ay naka-quarantine ng iyong anti-virus.", + "ExeNotFoundLinux": "\"Nawawala ang \"DepotDownloader\" na executable.", + "Password": "Maling password.", + "InvalidCredentials": "Maling login credentials, hindi aprubadong koneksyon, o sobrang daming pag-subok mag-login.", + "NoManifest": "Walang manifest na natagpuan", + "DirectoryCreate": "Hindi magawang mag-install ng mga kinakailangang folder.", + "NotAvailableApp": "Sinusubukan mo bang mag-download ng Beat Saber kahit wala ka nito? 🤣", + "DepotNotFound": "Hindi magawang i-download ang Beat Saber 😥 subukan muli maya-maya 😕", + "NotCompleted": "Hindi nakumpleto ang pag-download ¯\\_(ツ)_/¯", + "InvalidManifest": "Hindi magawang i-download ang Beat Saber 😥 subukan muli maya-maya 😕", + "NoValidKey": "Hindi magawang i-download ang Beat Saber 😥 subukan muli maya-maya 😕", + "NoManifestCode": "Hindi magawang i-download ang Beat Saber 😥 subukan muli maya-maya 😕", + "Unknown": "May error na nangyari ¯\\_(ツ)_/¯", + "NoServer": "Hindi makakonek sa mga server ng Steam.", + "NotAllowed": "Mukhang hindi ka pinapayagang i-download ang Beat Saber 🥱", + "ConnectionTimeout": "Hindi makakonekta sa Steam 😕", + "SteamLib": "Kung nakakaranas ka ng error na ito, i-report ang bug sa GitHub kasama ang mga logs, pls.", + "ConnectionError": "Hindi makakonekta sa Steam matapos ang 10 tries 🤯", + "LicenceError": "Hindi makuha ang listahan ng mga lisensya.", + "RateLimitExceeded": "Masyado ka nang maraming beses kumonek, maghintay ng kaunti at subukan muli mamaya.", + "TokenRejected": "Ang iyong login token ay tinanggihan 😕 Paki subukan muli.", + "AccessDenied": "Ang pag-access sa Steam ay tinanggihan." + } + } + }, + "oculus-download": { + "errors": { + "msg": { + "DOWNLOAD_MANIFEST_FAILED": "Hindi magawang i-download ang manifest para sa bersyong ito; maaaring hindi wasto ang iyong login token.", + "MANIFEST_FILE_NOT_FOUND": "Hindi mahanap ang manifest para sa bersyong ito.", + "PARSE_MANIFEST_FILE_FAILED": "Nagkaroon ng error habang binabasa ang manifest.", + "ALREADY_DOWNLOADING": "May kasalukuyang dina-download na bersyon.", + "UNABLE_TO_GET_MANIFEST": "Hindi magawang makuha ang manifest na kailangan para sa pag-download.", + "VERIFY_INTEGRITY_FAILED": "Nagkaroon ng error habang nirere-verify ang file.", + "SOME_FILES_FAILED_TO_DOWNLOAD": "May mga file na hindi nagawang i-download.", + "META_LOGIN_TIMED_OUT": "Matagal ang pagkuha ng login token.", + "META_LOGIN_WINDOW_CLOSED_BY_USER": "Isinara ng user ang Meta login window.", + "NO_META_AUTH_TOKEN": "Hindi magawang kunin ang Meta login token na kailangan para sa pag-download.", + "UNKNOWN_ERROR": "May error na nangyari." + } + } + } + }, + "bs-import-version": { + "success": { + "start-import": { + "title": "Nagsimula ang import 👌", + "desc": "Maaaring tumagal ng ilang minuto ang import depende sa iyong configuration." + }, + "imported": { + "title": "Na-import ang bersyon 🎉" + } + }, + "errors": { + "import-error": { + "desc": "Suriin kung ang napiling folder ay installation ng Beat Saber." + } + } + }, + "settings": { + "move-folder": { + "success": { + "titles": { + "transfer-started": "Nagsimula ang transfer", + "transfer-finished": "Kumpleto ang transfer" + }, + "descs": { + "transfer-started": "Nagsimula na ang transfer at maaaring tumagal ng ilang minuto depende sa iyong configuration." + } + }, + "errors": { + "titles": { + "transfer-failed": "Hindi natapos ang transfer 😕" + }, + "descs": { + "COPY_TO_SUBPATH": "Ang destination folder ay hindi maaaring maging subfolder ng source folder.", + "restore-linked-folders": "Nagkaroon ng error habang nire-restore ang mga shared folders. Maaari mo pa ring mano-manong i-restore ang mga ito sa pamamagitan ng 'Shared Folders' na menu sa versions page." + } + } + }, + "steam": { + "success": { + "titles": { + "logout": "Naka-disconnect mula sa Steam." + } + } + }, + "additional-content": { + "deep-link": { + "select-all": "Piliin lahat", + "activation": { + "success": { + "title": "Na-activate ang OneClick!", + "description": "Na-activate na ang OneClick na installation." + }, + "error": { + "description": "Hindi magawang i-activate ang OneClick na installation." + } + }, + "deactivation": { + "success": { + "title": "Na-deactivate ang OneClick!", + "description": "Na-deactivate na ang OneClick na installation." + }, + "error": { + "description": "May error na nangyari." + } + }, + "check-all-enabled": { + "title": "I-disable ang OneClick", + "description": "Isa o higit pang mga OneClick na installation ang naka-disable. Pumunta sa settings upang i-enable ito.", + "actions": { + "settings": "Settings", + "not-remind": "Huwag akong paalalahanan" + } + } + } + } + }, + "bs-launch": { + "success": { + "titles": { + "BS_LAUNCHING": "Nila-launch...🚀", + "STEAM_LAUNCHING": "Nila-launch ang Steam!", + "SKIPPING_STEAM_LAUNCH": "Iniwasang i-launch ang Steam" + }, + "msg": { + "BS_LAUNCHING": "Huwag kalimutan mag-warm up 😉", + "STEAM_LAUNCHING": "Awtomatikong ni-launch ang Beat Saber pagkatapos ng Steam.", + "SKIPPING_STEAM_LAUNCH": "Sana alam mo ang ginagawa mo :)" + } + }, + "errors": { + "titles": { + "UNKNOWN_ERROR": "Hindi magawang i-launch", + "STEAM_NOT_RUNNING": "Hindi tumatakbo ang Steam", + "OCULUS_NOT_RUNNING": "Hindi tumatakbo ang Oculus", + "BS_ALREADY_RUNNING": "Ang Beat Saber ay tumatakbo na", + "EXE_NOT_FINDED": "Nawawalang mga file", + "PROTON_NOT_SET": "Walang naka-set na Proton folder", + "PROTON_NOT_FOUND": "Hindi nahanap ang Proton binary", + "EXIT": "Biglaang paghinto", + "OCULUS_LIB_NOT_FOUND": "Hindi nahanap ang Oculus library", + "ORIGINAL_OCULUS_NOT_INSTALLED": "Hindi nahanap ang orihinal na bersyon ng Oculus" + }, + "msg": { + "UNKNOWN_ERROR": "May error na nangyari.", + "STEAM_NOT_RUNNING": "Dapat tumakbo ang Steam upang i-launch ng BeatSaber.", + "OCULUS_NOT_RUNNING": "Dapat tumakbo ang Oculus upang i-launch ng BeatSaber.", + "BS_ALREADY_RUNNING": "Isara ang BeatSaber bago ito muling i-launch.", + "EXE_NOT_FINDED": "Mukhang nawawala ang ilang mga file, subukang i-verify ang mga file.", + "EXIT": "Biglaang huminto ang BeatSaber, subukang i-check ang mga file.", + "OCULUS_LIB_NOT_FOUND": "Suriin kung ang Oculus application ay tamang naka-install, at na ang mga libraries ay tamang naka-define sa Oculus.", + "PROTON_NOT_SET": "I-set ang Proton path sa settings.", + "PROTON_NOT_FOUND": "I-set ang Proton path sa settings.", + "ORIGINAL_OCULUS_NOT_INSTALLED": "Dapat naka-install ang Beat Saber mula sa Oculus app bago ito buksan." + }, + "actions": { + "STEAM_NOT_RUNNING": "I-launch ang Steam" + } + } + }, + "steam": { + "steam-launching": { + "title": "Nila-launch ang Steam!", + "description": "Awtomatikong i-launch ang Beat Saber pagkatapos ng Steam." + } + }, + "custom-version": { + "errors": { + "titles": { + "CantEditSteam": "Hindi magawang i-edit", + "CantRename": "Imposible ang pagpapalit ng pangalan", + "VersionAlreadExist": "Nakuha na ang pangalan na ito ng ibang bersyon", + "CantClone": "Imposible ang pag-clone", + "UnknownError": "May error na nangyari" + }, + "msg": { + "CantEditSteam": "Hindi mo maaaring i-edit ang Steam version. Maaari mo itong i-clone." + } + }, + "success": { + "titles": { + "CloningFinished": "Tapos na ang pag-clone 🎉" + } + } + }, + "mods": { + "install-mods": { + "titles": { + "success": "Na-install ang mga Mod 🎉", + "warning": "Na-install ang mga Mod 🤔" + }, + "msg": { + "success": "Lahat ng mod ay na-install na.", + "warning": "Isa o higit pang mga mod ang hindi na-install.", + "errors": { + "no-mods": "Walang mod na i-install.", + "cannot-install-bsipa": "Hindi na-install ang BSIPA 😨" + } + } + }, + "uninstall-mod": { + "titles": { + "success": "Na-uninstall ang mod 🎉" + }, + "msg": { + "errors": { + "no-mods": "Walang mod na naka-install 😑" + } + } + }, + "uninstall-all-mods": { + "titles": { + "success": "Na-uninstall ang mga mod 🎉" + }, + "msg": { + "success": "Lahat ng mod ay na-uninstall na.", + "errors": { + "no-mods": "Walang mod na naka-install sa bersyong ito 😑", + "no-wineprefix": "Hindi mahanap ang WINEPREFIX path ng BSManager. Pakilunsad muna ang Beat Saber sa BSManager." + } + } + }, + "import-mod": { + "titles": { + "success": "Natapos ang pag-import ng mga mod", + "error": "Nagkaroon ng error habang ini-import ang mga mod" + }, + "msgs": { + "success": "Matagumpay na na-import ang mga mod.", + "some-success": "Ang ilang mod ay na-import ng maayos.", + "no-dlls": "Ang mga file ay walang \"dll\" na mga file." + } + } + }, + "maps": { + "one-click-install": { + "success": "Tapos na ang pag-install ng mapa", + "error": "Nagkaroon ng error habang ini-install ang mapa" + }, + "no-duplicates-maps": { + "title": "Walang Na-dobleng Mapa", + "msg": "Walang mapang tinanggal" + }, + "duplicates-maps-deleted": { + "title": "Tinanggal ang mga na-dobleng Mapa", + "msg": "Tinanggal ang mga na-dobleng mapa" + }, + "import-map": { + "titles": { + "success": "Natapos ang pag-import ng mga mapa", + "error": "Nagkaroon ng error habang ini-import ang mga mapa" + }, + "msgs": { + "success": "Na-import ng maayos ang mga mapa.", + "some-success": "Ang ilang mapa ay na-import ng maayos.", + "only-accept-zip": "zip files lang ang sinusuportahan.", + "invalid-zip": "Ang zip file(s) ay walang laman na mga mapa.", + "unknown": "May error na nangyari." + } + } + }, + "playlists": { + "one-click-install": { + "success": "Tapos na ang pag-install ng playlist", + "error": "Nagkaroon ng error habang ini-install ang playlist" + } + }, + "models": { + "one-click-install": { + "success": "Tapos na ang pag-install ng model", + "error": "Nagkaroon ng error habang ini-install ang model" + } + }, + "shared-folder": { + "info": { + "userdata-backup-created": { + "title": "Nagawa ang backup", + "msg": "Ang pag-share ng 'UserData' folder ay maaaring magdulot ng mga error, kung magkaroon ng problema, alisin ang pagkakabit ng folder upang maibalik ang backup." + } + }, + "linking-error": { + "title": "Nag-error habang nili-link ang folder", + "msg": { + "EPERM": "Walang permiso ang BSManager upang i-link ang folder.", + "EACCES": "Walang permiso ang BSManager upang i-link ang folder.", + "ENOSPC": "Puno na ang disk, magtanggal ng ilang files at subukang muli.", + "LinkingNotSupported": "Hindi sinusuportahan ang folder linking sa file system na ito.", + "UNKNOWN_ERROR": "May error na nangyari habang nili-link ang folder." + } + }, + "adding-error": { + "title": "Hindi idagdag ang shared folder", + "msg": "Hindi mo maaaring idagdag ang \"{folder}\" sa shared folders." + } + }, + "create-launch-shortcut": { + "success": { + "title": "Nagawa ang Shortcut", + "msg": "Ang shortcut ay nagawa na sa desktop.", + "msg-steam": "Ang shortcut ay nagawa na sa Steam library." + }, + "error": { + "msg": "Nagkaroon ng error habang ginagawa ang shortcut." + } + }, + "bs-version-oudated": { + "title": "Bersyon Lipas na", + "msg": "Ang bersyon ng Beat Saber na ito ay lipas na, gamitin ang inirerekomendang bersyon upang tamasahin ang mga pinakabagong features at bug fixes.", + "actions": { + "do-not-remind": "Huwag akong paalalahanan", + "ok": "Ok" + } + } + }, + "modals": { + "misc": { + "remember-my-choice": "Tandaan ang aking pinili" + }, + "choose-store": { + "title": "Anong platform?", + "body": "Piliin ang platform na nais mong pagkunan ng Beat Saber.", + "set-in-settings": "I-set ang default platform sa settings" + }, + "guard": { + "title": "Steam Guard", + "inputs": { + "guard-code": { + "label": "Guard Code", + "placeholder": "Ilagay ang iyong Guard code" + } + }, + "buttons": { + "submit": "Mag-login" + } + }, + "steam-login": { + "title": "Steam Login", + "inputs": { + "username": { + "label": "Mag-sign in gamit ang account name", + "placeholder": "Ilagay ang iyong account name" + }, + "password": { + "label": "Password", + "placeholder": "Ilagay ang iyong password", + "max-length-warning": "Ang password ay lumampas sa 64 na karakter! Kung ang password ay hindi wasto, subukang ilagay lamang ang unang 64 na karakter nito." + }, + "qr": { + "label": "O gamit ang QR code", + "note": { + "use-the": "Gamitin ang ", + "steam-mobile-app": "Steam Mobile App", + "to-connect-with-qr": "para mag-sign in gamit ang QR code." + } + }, + "stay": "Tandaan ako" + }, + "why-credentials": "Bakit kinakailangan ang aking mga kredensyal?", + "need-help-to-connect": "Kailangan ko ng tulong para ma-access ang aking account!", + "buttons": { + "submit": "Mag-sign in" + } + }, + "steam-auth-approve": { + "title": "Naghihintay ng kumpirmasyon", + "protected-by-mobile-auth": "Ang account ay protektado ng mobile authenticator.", + "use-steam-app-to-approve": "Gamitin ang Steam mobile app upang kumpirmahin ang koneksyon...", + "not-access-to-steam-app": "Wala akong access sa Steam mobile app" + }, + "steam-credentials": { + "title": "Steam Credentials", + "p-1": "Ang iyong Steam credentials ay kinakailangan lamang upang i-download ang mga bersyon ng Beat Saber, ginagamit namin ang DepotDownloader para gawin ito na nangangailangan ng iyong Steam credentials upang tiyakin na ikaw ay may-ari ng laro sa iyong library bago ka payagang kunin ang mga game files, ang iyong credentials ay hindi iniimbak o sine-save at ipinapasa nang direkta sa DepotDownloader. Gayunpaman, kung ayaw mong gawin ito, maaari mong sundan ang tutorial na ito: ", + "p-2": "Pagkatapos, maaari mong i-click ang gear icon sa kanang itaas na sulok at piliin ang \"Import a version\", saka mo maaaring piliin ang folder kung saan na-download ang Beat Saber. (Kung sinundan mo ang tutorial, mayroon kang tamang lokasyon)" + }, + "bs-import-version": { + "title": "Mag-import ng bersyon", + "description": "Mag-i-import ng bersyon ng Beat Saber para gamitin sa BSManager. Kokopyahin nito ang napiling Beat Saber installation folder sa BSManager versions folder.", + "oculus-version": "Oculus Version", + "oculus-version-tooltip": "Tiyakin kung ito ay isang Oculus version", + "buttons": { + "submit": "Mag-import ng bersyon" + } + }, + "bs-uninstall": { + "title": "I-uninstall", + "description": "Sigurado ka bang nais mong i-uninstall ang Beat Saber {version}? Kailangan mo itong i-download muli upang laruin ito.", + "buttons": { + "submit": "I-uninstall" + } + }, + "install-folder": { + "title": "Installation folder", + "description": "Ang pagpapalit ng default na installation folder ay magreresulta sa paglilipat ng lahat ng naka-install na data sa bagong folder.", + "buttons": { + "submit": "Piliin ang folder" + } + }, + "edit-version": { + "title": "I-edit ang bersyon", + "buttons": { + "submit": "I-edit" + } + }, + "clone-version": { + "title": "I-clone ang bersyon", + "description": "Ang pag-clone ng bersyon ay nagpapahintulot sa iyo na paghiwalayin ang mga karagdagang nilalaman ng Beat Saber sa pagitan ng dalawang bersyon.", + "inputs": { + "name": { + "label": "Pangalan", + "placeholder": "Pangalan ng bersyon" + }, + "color": { + "label": "Kulay" + } + }, + "buttons": { + "submit": "I-clone" + } + }, + "uninstall-mod": { + "title": "I-uninstall", + "description": "Sigurado ka bang nais mong i-uninstall ang {mod}? Maaaring magdulot ito ng mga problema sa iba pang naka-install na mods.", + "description-bsipa": "Sigurado ka bang nais mong i-uninstall ang BSIPA? Pagkatapos nito, hindi na gagana ang lahat ng naka-install na mods." + }, + "uninstall-all-mods": { + "title": "I-uninstall ang mga mods", + "description": "Sigurado ka bang nais mong i-uninstall ang lahat ng mods mula sa bersyon {version}? Hindi na ito maaaring ibalik." + }, + "maps-actions": { + "delete-maps": { + "title": { + "single": "Tanggalin ang map na ito?", + "multiple": "Tanggalin ang mga map?" + }, + "desc": { + "single": "Sigurado ka bang nais mong tanggalin ang map na {name}?", + "multiple": "Sigurado ka bang nais mong tanggalin ang lahat ng {nb} na map?" + }, + "info": { + "desc": { + "single": "Ang map na ito ay bahagi ng mga shared maps", + "multiple": "Ang mga map na ito ay bahagi ng mga shared maps" + }, + "title": { + "single": "Ang map na ito ay tatanggalin din mula sa mga bersyon na gumagamit ng shared maps", + "multiple": "Ang mga map na ito ay tatanggalin din mula sa mga bersyon na gumagamit ng shared maps" + } + } + }, + "delete-duplicate-maps": { + "title": "Tanggalin ang mga map?", + "desc": "Ang map na \"{map}\" lamang ang duplicate. Sigurado ka bang nais mong tanggalin ito?", + "desc-plural": "{nb} duplicate na map ang natagpuan. Sigurado ka bang nais mong tanggalin ang mga ito?" + } + }, + "link-contents": { + "title": "I-link ang {contentType}", + "p-1": "Ang pag-link ng {contentType} ay nagpapahintulot sa pagbabahagi ng {contentType} sa lahat ng bersyon na may naka-enable na feature na ito. Kapag naka-link, ang bersyon na ito ay makikinabang mula sa shared na {contentType}.", + "p-2": "Upang magamit ang linking feature, ang lahat ng iyong {itemsHtml} ay ililipat sa {sharedHtml} na folder. Pagkatapos nito, ang isang symbolic link na tumuturo sa shared na {contentType} folder ay papalit sa iyong orihinal na {contentType} folder.", + "warning": "Pakitandaan na anumang pagbabago na makakaapekto sa {contentType} ay makakaapekto rin sa lahat ng bersyon na may naka-enable na feature na ito.", + "what-is-a-symbolic-link": "Ano ang symbolic link?", + "i-need-help": "Kailangan ko ng tulong", + "valid-btn": "I-link ang {contentType}" + }, + "unlink-contents": { + "title": "I-unlink ang {contentType}", + "p-1": "Mag-ingat, ang pag-unlink ng {contentType} ay magdi-disable ng paggamit ng shared {contentType} para sa bersyon na ito, hanggang ito ay muling ma-enable.", + "p-2": "Upang i-unlink ang iyong mga maps, aalisin ang symbolic link na tumuturo sa {sharedHtml}. Pagkatapos nito, ang lahat ng maps sa shared folder ay kokopyahin sa {itemsHtml} folder ng iyong Beat Saber version.", + "do-not-copy-contents": "Huwag i-copy ang {contentType}", + "do-not-copy-contents-tip": "Kung naka-enable, ang {contentType} sa shared folder ay hindi kokopyahin sa iyong Beat Saber version. Bilang resulta, walang {contentType} ang matitira sa iyong Beat Saber version pagkatapos ng unlink.", + "valid-btn": "I-unlink ang {contentType}" + }, + "download-maps": { + "search-btn": "Maghanap", + "loading-maps": "Naglo-load ng mga map...", + "no-maps-found": "Walang nahanap na map", + "no-internet": "Walang internet" + }, + "mods-disclaimer": { + "title": "Paunawa", + "p-1": "Sa pagpili na gumamit ng mods, nauunawaan mo na:", + "li-1": "Maaaring makaranas ka ng mga problema na hindi umiiral sa vanilla na laro. 99.9% ng mga bug, crash, at lag ay dulot ng mga mods.", + "li-2": "Ang mga mods ay maaaring masira ng mga update at ito ay normal - maging matiisin at magalang kapag ito ay nangyari, dahil ang mga modder ay mga boluntaryo na may totoong buhay.", + "li-3": "Hindi layunin ng Beat Games na sirain ang mga mods. Nais nilang magtrabaho sa codebase at minsan ito ay nakakabasag ng mga mods, ngunit hindi nila layunin na puksain ang mga mods.", + "p-2": "Huwag atakihin ang mga developer ng laro para sa mga isyu na may kinalaman sa mods, at ganoon din ang mga modder at developer ng laro ay dalawang magkahiwalay na grupo. Huwag maging bastos, ok?" + }, + "shared-folders": { + "title": "Mga Shared Folder", + "description": "I-link ang mga Beat Saber folder upang i-synchronize ang kanilang nilalaman sa mga shared folder sa iba pang bersyon. Tandaan na ang pagtanggal ng nilalaman ay ibabahagi rin.", + "buttons": { + "add-folder": "Magdagdag ng Folder", + "link-folder": "I-link ang Folder", + "unlink-folder": "I-unlink ang Folder", + "link-all": "I-link lahat", + "remove-from-the-list": "Alisin mula sa listahan" + } + }, + "adding-shared-folder": { + "title": "Pagdaragdag ng Shared Folder", + "description": "Maaaring makaranas ka ng mga isyu kapag nililink ang \"{folder}\" na folder. Sigurado ka bang nais mong idagdag ito?" + }, + "create-launch-shortcut": { + "title": "Gumawa ng Shortcut", + "desc": "Ang paggawa ng shortcut ay magpapahintulot sa iyo na simulan ang Beat Saber gamit ang mga napiling opsyon nang hindi dumadaan sa BSManager.", + "launch-options": "Mga Opsyon sa Pag-launch", + "advanced-launch": "Advanced na Pag-launch", + "valid-btn": "Gumawa ng shortcut", + "create-steam-shortcut": "Gumawa ng Steam shortcut", + "steam-shortcut-tippy": "Kung naka-enable, sa halip na gumawa ng shortcut sa desktop, ito ay gagawin sa Steam." + }, + "connect-to-meta": { + "title": "Mag-connect sa Meta", + "body": { + "token-needed": "Kinakailangan ang iyong Meta connection token upang ma-download ang Beat Saber.", + "need-cookie-enabled": "Sa pag-login sa Meta, isang login window ang magbubukas at maaari mong simulan ang proseso ng pag-login. Siguraduhin na tanggapin ang cookies, kung hindi, maaaring hindi namin makuha ang iyong token upang simulan ang pag-download.", + "enter-token-manually": "I-enter ang aking login token manu-mano", + "enter-token-manually-tooltip": "Papayagan ka nitong i-enter ang iyong login token nang hindi dumadaan sa Meta login." + }, + "stay": "Tandaan ako", + "connect-to-meta": "Mag-connect sa Meta" + }, + "enable-oculus-sideloaded-apps": { + "title": "I-enable ang Sideloading", + "info-1": "Upang ilunsad ang Beat Saber, ang kakayahang magpatakbo ng sideloaded apps ay kailangang ma-enable. Hihilingin ng BSManager ang administrator rights upang awtomatikong i-enable ang feature na ito.", + "info-2": "Ang sideloaded apps feature ay nagpapahintulot sa paglulunsad ng mga laro na nasa labas ng iyong Oculus library folder.", + "info-3": "Matapos i-activate ang sideloading, mananatili ang feature na ito at hindi ka na hihilingin na i-enable ito muli.", + "i-want-to-do-it-myself": "Nais kong gawin ito mag-isa", + "understood": "Naiintindihan" + }, + "enter-meta-token": { + "title": "Oculus Token", + "body": { + "info-enter-token": "Upang ma-download ang Beat Saber, kinakailangan ang iyong Oculus login token.", + "how-obtain-token": "Paano ko makukuha ang aking Oculus Token?", + "oculus-token": "Oculus Token", + "token-is-invalid": "Ang Token ay hindi wasto.", + "save-my-token": "I-save ang aking token", + "have-token-saved": "Mayroon na akong na-save na token", + "save-token-info": "Ise-save nito ang iyong token para sa mas madaliang paggamit muli. Kakailanganin mong gumawa ng password upang i-encrypt ang iyong token para sa storage purposes. Kung makalimutan mo ang iyong password, kailangan mo lang ibigay muli ang iyong token.", + "password": "Password", + "password-too-short": "Masyadong maikli ang password", + "info-enter-password": "Upang ma-download ang Beat Saber, kinakailangan ang iyong Oculus login token. I-enter ang password na ginamit upang i-save ang iyong Oculus token.", + "info-disabled-btn-password": "Ang token na de-crypt gamit ang ibinigay na password ay hindi wasto. Siguraduhin na ang password ay pareho ng ginamit upang i-save ang token.", + "enter-oculus-token": "I-enter ang Oculus token" + }, + "valid-btn": "I-validate" + }, + "launch-as-admin": { + "title": "Mga Pahintulot ng Administrator", + "body": { + "info": "Nadetect na ang Steam ay tumatakbo gamit ang administrator permissions. Upang makipag-ugnayan sa Steam, kailangang ilunsad ang Beat Saber bilang administrator. Kung hindi, maaaring makaranas ng mga problema ang Beat Saber at magsara pagkatapos ilunsad.", + "info-2": "Ang paglulunsad ng Beat Saber sa administrator mode ay magbibigay din ng administrator rights sa mga naka-install na mods. Kaya't inirerekomenda na i-restart ang Steam nang walang administrator permissions.", + "info-3": "Tandaan na hindi inirerekomenda na bigyan ng administrator rights ang Steam, dahil nakakaapekto ito sa mga naka-install na laro at mods, na nagdudulot ng panganib sa seguridad." + }, + "launch-as-admin": "I-launch bilang Administrator", + "not-remind-me": "Huwag na akong paalalahanan" + }, + "ask-install-path": { + "title": "Installation Folder", + "choose-folder-description": "Piliin ang folder na maglalaman ng lahat ng content na ida-download ng BSManager. (mga bersyon, mods, maps, playlists, atbp.)", + "default": "Default", + "default-tooltip": "Naka-default sa iyong home folder" + }, + "choose-proton-folder": { + "title": "Proton Folder", + "proton-folder-description": "Sa Linux, kailangan ng BSManager ang Proton upang gumana. Piliin ang folder ng Proton installation upang magpatuloy.", + "proton-folder-placeholder": "Proton installation folder", + "where-is-proton-installed": "Saan naka-install ang Proton?" + }, + "bs-version-outdated": { + "body": "Ang bersyon na {outdatedVersion} ay lipas na, at ang ilang mods o features ay maaaring hindi na gumana ng tama. Mangyaring i-download ang pinakabagong inirerekomendang bersyon ({recommendedVersion}) ng Beat Saber upang tamasahin ang mga pinakabagong tampok at mga pag-aayos ng bug." + } + }, + "maps": { + "map-filter-panel": { + "duration": "Haba", + "nps": "Notes Per Second", + "njs": "Note Jump Speed", + "tags": "tags", + "specificities": "general", + "requirements": "requirements", + "exclude": "exclude", + "leaderboard": "leaderboard" + }, + "map-types": { + "accuracy": "accuracy", + "balanced": "balanced", + "challenge": "challenge", + "dance-style": "dance", + "fitness": "fitness", + "speed": "speed", + "tech": "tech" + }, + "map-styles": { + "dance": "dance", + "swing": "swing", + "nightcore": "nightcore", + "folk-acoustic": "folk & acoustic", + "kids-family": "kids & family", + "ambient": "ambient", + "funk-disco": "funk & disco", + "jazz": "jazz", + "soul": "soul", + "speedcore": "speedcore", + "punk": "punk", + "rb": "r&b", + "holiday": "holiday", + "vocaloid": "vocaloid", + "j-rock": "j-rock", + "trance": "trance", + "drum-and-bass": "drum & bass", + "comedy-meme": "comedy & meme", + "instrumental": "instrumental", + "hardcore": "hardcore", + "k-pop": "k-pop", + "indie": "indie", + "techno": "techno", + "house": "house", + "video-game-soundtrack": "video game", + "tv-movie-soundtrack": "TV & film", + "alternative": "alternative", + "dubstep": "dubstep", + "metal": "metal", + "anime": "anime", + "hip-hop-rap": "hip hop & rap", + "j-pop": "j-pop", + "rock": "rock", + "pop": "pop", + "electronic": "electronic", + "classical-orchestral": "Classical & Orchestral" + }, + "map-specificities": { + "automapper": "AI", + "curated": "curated", + "verified": "verified", + "fullSpread": "full spread" + }, + "map-leaderboard": { + "All": "All", + "Ranked": "Ranked", + "BeatLeader": "BeatLeader", + "ScoreSaber": "ScoreSaber" + }, + "map-excludes": { + "installed": "installed" + }, + "difficulties": { + "Easy": "easy", + "Normal": "normal", + "Hard": "hard", + "Expert": "expert", + "ExpertPlus": "expert+" + }, + "map-item": { + "by": "Ni {songAutor}", + "mapped-by": "minap ni", + "delete": "Tanggalin", + "preview": "I-preview ang mapa", + "bsr-code": "BSR code", + "download": "I-download ang mapa", + "downloading": "I-download ang mapa", + "cancel-download": "Kanselahin ang pag-download", + "hightlight-difficulty": "I-highlight ang hirap" + } + }, + "models": { + "types": { + "singular": { + "avatar": "avatar", + "saber": "saber", + "platform": "platform", + "bloq": "block" + }, + "plural": { + "avatar": "avatars", + "saber": "sabers", + "platform": "platforms", + "bloq": "blocks" + } + }, + "sorts": { + "name": "Pangalan", + "date": "Petsa", + "author": "Awtor" + }, + "panel": { + "actions": { + "search": "Maghanap ng modelo", + "drop-down": { + "delete": "Tanggalin ang mga modelo", + "export": "I-export ang mga modelo" + }, + "link-models": "I-link ang mga modelo", + "unlink-models": "I-unlink ang mga modelo" + }, + "grid": { + "loading": "Naglo-load ng mga modelo...", + "no-models": "Walang mga modelo", + "download-models": "I-download ang mga modelo" + } + }, + "modals": { + "delete-model": { + "title": "Tanggalin ang modelo", + "desc": "Sigurado ka bang nais mong tanggalin ang modelo na {modelName}?", + "linked-annotation": "Ang modelong ito ay aalisin mula sa lahat ng naka-link na bersyon." + }, + "delete-models": { + "title": "Tanggalin ang mga modelo", + "desc": "Sigurado ka bang nais mong tanggalin ang {nb} mga modelo?", + "linked-annotation": "Ang mga modelong ito ay aalisin mula sa lahat ng naka-link na bersyon." + }, + "download-models": { + "search-btn": "Maghanap", + "search-placeholder": "Maghanap ng modelo", + "search-tips": { + "header": { + "tag": "Tag", + "desc": "Deskripsyon" + }, + "author-desc": "Ipakita lamang ang mga modelo mula sa tinukoy na may-akda.", + "hash-desc": "Ipakita lamang ang mga modelo na may tinukoy na hash.", + "tag-desc": "Ipakita lamang ang mga modelo na may tinukoy na tag.", + "name-desc": "Ipakita lamang ang mga modelo na may tinukoy na pangalan.", + "discordid-desc": "Ipakita lamang ang mga modelo mula sa tinukoy na Discord na user.", + "status-desc": "Ipakita lamang ang mga modelo na may tinukoy na status. (profile lamang, at para lamang sa may-akda)" + }, + "no-models": "Walang mga modelo na natagpuan.", + "no-internet": "Walang koneksyon sa internet.", + "error-occurred": "Nagkaroon ng error, subukang muli mamaya." + } + }, + "notifications": { + "prevent-for-mods": { + "title": "Kinakailangang mga mod", + "desc": "Siguraduhin na na-install mo ang kinakailangang mga mod upang magamit ang mga modelo sa Beat Saber", + "go-to-mods": "Pumunta sa mga mod", + "not-remind": "Huwag ako paalalahanan" + }, + "export-success": { + "title": "Matagumpay na pag-export 🎉" + } + } + }, + "beat-saver": { + "maps-sorts": { + "Latest": "Latest", + "Relevance": "Relevance", + "Rating": "Rating", + "Curated": "Curated" + } + }, + "auto-update": { + "checking": "Nagre-refresh ng mga update", + "downloading": "Nagi-download ng mga update" + }, + "bs-shortcut-launch": { + "beat-saber-launching": "Ipinapalabas ang Beat Saber", + "launching": "Pinapalabas", + "open-bsmanager": "Buksan ang BSManager", + "status-text": { + "init": "Ini-initialize...", + "success": { + "BS_LAUNCHING": "Ipinapalabas ang Beat Saber...", + "STEAM_LAUNCHING": "Ipinapalabas ang Steam...", + "STEAM_LAUNCHED": "Matagumpay na na-launch ang Steam!", + "UNABLE_TO_LAUNCH_STEAM": "Hindi ma-launch ang Steam, pinipilit na mag-launch ng Beat Saber..." + } + } + }, + "drop-zone": { + "or-browse-files": "O mag-browse ng mga file" + }, + "playlist": { + "error-playlist-creation-title": "Error sa paggawa ng Playlist", + "error-playlist-creation-desc": "Nagkaroon ng error habang ginagawa ang playlist.", + "playlist-created-title": "Nagawa ang playlist", + "playlist-created-desc": "Nagawa ang playlist. Maaari mo nang isynchronize ang mga mapa nito!", + "download-playlist": "I-download ang Playlist", + "synchronize-playlist": "I-synchronize ang Playlist", + "synchronize-maps": "I-synchronize ang mga Mapa", + "error-playlists-synchronization-title": "Error sa Pag-synchronize ng Playlist", + "error-playlists-synchronization-desc": "Nagkaroon ng error habang nagsasynchronize ng mga playlist.", + "playlists-synchronized-title": "Matagumpay na na-synchronize ang Playlist!", + "playlists-synchronized-desc": "Ang mga playlist at kanilang mga mapa ay na-download.", + "playlists-export-error-title": "Error sa Pag-export ng Playlist", + "playlists-export-error-desc": "Nagkaroon ng error habang ine-export ang mga playlist.", + "playlists-exported-title": "Matagumpay na na-export ang Playlist!", + "playlists-exported-desc": "Ang mga playlist ay matagumpay na na-export.", + "playlists-with-maps-exported-desc": "Ang mga playlist at kanilang mga mapa ay matagumpay na na-export.", + "playlist-delete-error-title": "Error sa Pag-delete ng Playlist", + "playlist-delete-error-desc": "Nagkaroon ng error habang dinidelete ang playlist.", + "playlists-deleted-title": "Matagumpay na na-delete ang Playlist!", + "playlists-deleted-desc": "Ang mga playlist ay matagumpay na na-delete.", + "edit-playlist": "I-edit ang Playlist", + "playlist-edit-error-title": "Error sa Pag-edit ng Playlist", + "playlist-edit-error-desc": "Nagkaroon ng error habang ine-edit ang playlist.", + "playlist-edited-title": "Matagumpay na na-edit ang Playlist!", + "playlist-edited-desc": "Ang playlist ay matagumpay na na-edit. Maaari mo nang isynchronize ang mga mapa nito!", + "playlists-loading": "Naglo-load ng mga Playlist...", + "no-playlists": "Walang Playlist", + "download-playlists": "I-download ang mga Playlist", + "created-by": "Nilika ni", + "stop-download": "Itigil ang Pag-download", + "cancel-download": "I-cancel ang Pag-download", + "open-file": "Buksan ang File", + "delete-playlist-ask": "I-delete ang Playlist?", + "delete-playlists-ask": "I-delete ang mga Playlist?", + "delete-playlist-desc": "Sigurado ka bang gusto mong i-delete ang playlist na \"{playlistTitle}\"?", + "delete-playlists-desc": "Sigurado ka bang gusto mong i-delete ang {nb} mga playlist?", + "delete-maps": "I-delete ang mga Mapa", + "delete-playlist-maps-tip": "Kung pinili, ang lahat ng mapa sa playlist ay madi-delete", + "delete-playlists-maps-tip": "Kung pinili, ang lahat ng mapa sa mga playlist ay madi-delete", + "export-playlist-ask": "I-export ang Playlist?", + "export-playlists-ask": "I-export ang mga Playlist?", + "export-playlist-desc": "Sigurado ka bang gusto mong i-export ang playlist na \"{playlistTitle}\"?", + "export-playlists-desc": "Sigurado ka bang gusto mong i-export ang {nb} mga playlist?", + "export-maps": "I-export ang mga Mapa", + "export-playlist-maps-tip": "Kung pinili, ang lahat ng mapa sa playlist ay ie-export din", + "export-playlists-maps-tip": "Kung pinili, ang lahat ng mapa sa mga playlist ay ie-export din", + "export": "I-export", + "need-clone-title": "Babala", + "need-clone-desc-1": "Ang playlist na ito ay na-download mula sa isang panlabas na site at naglalaman ng isang synchronization link.", + "need-clone-desc-2": "Upang maiwasan ang pagkawala ng mga pagbabago mo sa synchronization, ang playlist ay ika-duplicate at aalisin ang synchronization link.", + "need-clone-desc-3": "Maaari mong, kung nais mo, i-delete ang orihinal na playlist.", + "understood": "Naiintindihan ko", + "synchronize-playlist-ask": "I-synchronize ang Playlist?", + "synchronize-playlists-ask": "I-synchronize ang mga Playlist?", + "synchronize-playlist-desc": "Sigurado ka bang gusto mong i-synchronize ang playlist na \"{playlistTitle}\"?", + "synchronize-playlists-desc": "Sigurado ka bang gusto mong i-synchronize ang {nb} mga playlist?", + "synchronize-playlist-tip": "Ang aksyon na ito ay nag-a-update ng mga playlist at nagda-download ng nawawalang mga mapa; maaaring tumagal ng ilang minuto.", + "synchronize": "I-synchronize", + "curated": "Inirerekomenda", + "verified-mapper": "Verified na Mapa", + "empty-playlists": "Walang laman na mga Playlist", + "search-playlist": "Maghanap ng Playlist", + "no-playlists-found": "Walang nahanap na Playlist", + "error-occur-while-loading-playlists": "Nagkaroon ng error habang naglo-load ng mga Playlist", + "error-occur-while-loading-playlist": "Nagkaroon ng error habang naglo-load ng Playlist", + "loading-maps": "Naglo-load ng mga Mapa...", + "no-maps-found-for-playlist": "Walang nahanap na mapa para sa playlist na ito", + "playlist-contain-no-maps": "Walang laman ang playlist ng mapa", + "no-map-installed-for-playlist": "Walang naka-install na mapa para sa playlist na ito", + "playlist-is-waiting-to-download": "Ang playlist ay naghihintay upang i-download", + "download-maps": "I-download ang mga Mapa", + "download-missing-maps": "I-download ang nawawalang mga Mapa", + "playlist-is-downloading": "Ang playlist ay ine-download", + "some-playlist-maps-are-missing": "May ilang mapa sa playlist na nawawala", + "create-a-playlist": "Lumikha ng Playlist", + "synchronize-playlists": "I-synchronize ang mga Playlist", + "export-playlists": "I-export ang mga Playlist", + "delete-playlists": "I-delete ang mga Playlist", + "choose-image": "Pumili ng Imahe", + "title": "Pamagat", + "playlist-title": "Pamagat ng Playlist", + "description": "Paglalarawan", + "playlist-description": "Paglalarawan ng Playlist", + "author": "May-akda", + "playlist-author": "May-akda ng Playlist", + "save": "I-save", + "loading": "Naglo-load...", + "installed": "Naka-install", + "no-map-found": "Walang nahanap na mapa", + "edit-playlist-shortcuts": "Hold Shift o Ctrl upang pumili ng maraming mapa", + "add-to-playlist": "Idagdag sa Playlist", + "remove-from-playlist": "Alisin mula sa Playlist", + "playlist-is-empty": "Ang playlist ay walang laman", + "continue": "Magpatuloy", + "nb-maps": "Bilang ng mga mapa", + "nb-mappers": "Bilang ng mga mappers", + "duration": "Tagal", + "nps": "Mga Tala bawat Segundo", + "date-picker": { + "start-date-end-date": "Petsa ng Simula — Petsa ng Pagtatapos", + "all": "Lahat", + "last-24h": "Huling 24 Oras", + "last-week": "Huling Linggo", + "last-month": "Huling Buwan", + "3-last-month": "Huling 3 Buwan" + }, + "playlists-imported": "Matagumpay na na-import ang mga Playlist", + "all-playlists-have-been-successfully-imported": "Lahat ng playlist ay matagumpay na na-import", + "no-playlist-found": "Walang nahanap na Playlist", + "no-playlist-found-in-selected-files": "Walang nahanap na Playlist sa mga napiling file", + "some-playlists-not-imported": "May ilang playlist na hindi na-import", + "some-playlists-have-been-imported": { + "INVALID_SOURCE": "May ilang playlist na hindi natagpuan", + "INVALID_PLAYLIST_FILE": "May ilang playlist na hindi wasto", + "CANNOT_PARSE_PLAYLIST": "May ilang playlist na hindi mabasa", + "unknown": "May ilang playlist na hindi na-import" + }, + "no-playlists-imported": "Walang na-import na Playlist", + "no-playlists-imported-errors": { + "INVALID_SOURCE": "Hindi natagpuan ang mga Playlist", + "INVALID_PLAYLIST_FILE": "Hindi wasto ang mga Playlist", + "CANNOT_PARSE_PLAYLIST": "Hindi mabasa ang mga Playlist", + "unknown": "Walang na-import na Playlist" + } + }, + "dateformat": { + "dayNames": [ + "Lin", + "Lun", + "Mar", + "Miy", + "Huw", + "Biy", + "Sab", + "Linggo", + "Lunes", + "Martes", + "Miyerkules", + "Huwebes", + "Biyernes", + "Sabado" + ], + "monthNames": [ + "Ene", + "Peb", + "Mar", + "Abr", + "May", + "Hun", + "Hul", + "Ago", + "Set", + "Okt", + "Nob", + "Dis", + "Enero", + "Pebrero", + "Marso", + "Abril", + "Mayo", + "Hunyo", + "Hulyo", + "Agosto", + "Setyembre", + "Oktubre", + "Nobyembre", + "Disyembre" + ], + "timeNames": [ + "a", + "p", + "am", + "pm", + "A", + "P", + "AM", + "PM" + ] + } +} diff --git a/assets/jsons/translations/uk.json b/assets/jsons/translations/uk.json new file mode 100644 index 00000000..1c69a75e --- /dev/null +++ b/assets/jsons/translations/uk.json @@ -0,0 +1,1281 @@ +{ + "misc": { + "download": "Завантажити", + "add": "Додати", + "verify": "Перевірити", + "launch": "Запустити", + "mods": "Моди", + "maps": "Карти", + "playlists": "Плейлисти", + "models": "Моделі", + "avatars": "Аватари", + "sabers": "Шпаги", + "platforms": "Платформи", + "blocks": "Блоки", + "cancel": "Скасувати", + "delete": "Видалити", + "accept": "Прийняти", + "refuse": "Відмовитись", + "apply": "Застосувати", + "copy": "Скопіювати", + "copied": "Скопійовано!", + "confirm": "Підтвердити", + "choose-folder": "Змінити папку", + "unknown": "Невідома помилка ¯\\_(ツ)_/¯", + "warning": "Увага", + "continue": "Продовжити", + "shared": "Спільне", + "pin": "Закріпити", + "unpin": "Відкріпити" + }, + "generic": { + "env": { + "parse": "Не вдалося розібрати рядок змінної оточення" + } + }, + "title-bar": { + "outdated": "застарілий" + }, + "nav-bar": { + "add-version": "Додати версію", + "settings": "Налаштування", + "shared": { + "text": "Спільне", + "tooltip": "Спільний контент" + } + }, + "pages": { + "version-viewer": { + "launch-mods": { + "oculus": "Режим Oculus", + "oculus-description": "Якщо ви використовуєте Beat Saber через Steam, це дозволяє використовувати Oculus VR в обхід SteamVR, для потенційного приросту продуктивності. Це не обов'язково для Oculus.", + "desktop": "Режим FPFC", + "desktop-description": "Режим літаючих контролерів від першого лиця дозволяє використовувати меню за допомогою WASD і мишки. Це облегшує тестування модів, так як гра запускається без використання шолому VR!", + "debug": "Режим відладки", + "debug-description": "Включає вікно логів для IPA. У вікні будуть відображатись логи модів.", + "outdated-tippy": "Ця версія застаріла і деякі моди і/або функції можуть працювати некоректно. Рекомендуємо використовувати версію ({recommendedVersion}), щоб скористатися останніми функціями і виправленнями.", + "advanced-launch": { + "button": "Параметри запуску", + "placeholder": "Параметри запуску, наприклад: KEY=VALUE %command% fpfc" + }, + "skipsteam": "Пропустити Steam", + "skipsteam-description": "Запобігає автоматичному відкриттю Steam. Увімкніть це, якщо ви використовуєте інше серидовище VR (WiVRn/Monado), з яким Steam праює некоректно.", + "map-editor": "Редактор карт", + "map-editor-description": "Запускає офіційний редактор карт Beat Saber замість гри.", + "proton-logs": "Протонний журнал", + "proton-logs-description": "Увімкнути запис журналів протонів для цієї установки Beat Saber до \"{versionPath}\"." + }, + "maps": { + "search-bar": { + "search-placeholder": "Пошук серед карт", + "filters-btn": "Фільтри", + "dropdown": { + "export-maps": "Експорт карт", + "delete-maps": "Видалити карти", + "delete-duplicate-maps": "Видалити дублікати" + } + }, + "tabs": { + "maps": { + "actions": { + "drop-down": { + "browse-maps": "Перегляд карт", + "import-maps": "Імпорт карт" + }, + "link-maps": { + "tooltips": { + "link": "З'єднати карти", + "unlink": "Роз'єднати карти" + } + } + }, + "empty-maps": { + "text": "Карт немає", + "button": "Завантажити карти" + }, + "drop-zone": { + "text": "Імпортувати свої карти", + "subtext": "Пересуньте свої zip-файли сюди, щоб імпортувати карти" + }, + "sort": { + "name": "Назва", + "song-author": "Автор пісні", + "map-author": "Автор карти", + "bpm": "BPM", + "duration": "Довжина", + "likes": "Лайки", + "date-uploaded": "Дата завантаження" + } + }, + "playlists": { + "drop-down": { + "browse-playlists": "Переглянути плейлист", + "create-a-playlist": "Створити плейлист", + "import-playlists": "Імпортувати плейлист" + }, + "drop-zone": { + "text": "Імпортуйте свої плейлисти", + "subtext": "Скиньте свої \".bplist\" або \".json\" файли сюди, щоб імпортувати їх" + }, + "sort": { + "title": "Назва", + "author": "Автор", + "number-of-maps": "Кількість карт", + "duration": "Довжина", + "notes-per-second": "NPS" + } + } + } + }, + "mods": { + "loading-mods": "Завантаження модів...", + "no-internet": "Немає інтернету", + "mods-not-available": "Для цієї версії Beat Saber поки що немає модів", + "status": { + "no-wineprefix": "Не вдалося знайти шлях до WINEPREFIX BSManager. Будь ласка, спочатку запустіть Beat Saber у BSManager.", + "unknown": "Сталася невідома помилка ¯\\_(ツ)_/¯" + }, + "buttons": { + "more-infos": "Більше інформації", + "install-or-update": "Встановити або оновити", + "reinstall-all": "Перевстановити всі" + }, + "mods-grid": { + "header-bar": { + "name": "Назва", + "installed": "Встановлено", + "latest": "Остання", + "description": "Опис", + "dropdown": { + "import-mods": "Імпортувати моди", + "uninstall-all": "Видалити всі", + "unselect-all": "Зняти виділення з всіх" + } + } + }, + "notifications": { + "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": { + "open-folder": "Відкрити папку", + "verify-files": "Перевірити файли", + "clone": "Клонувати", + "edit": "Змінити", + "uninstall": "Видалити", + "create-shortcut": "Створити ярлик", + "shared-folders": "Спільні папки" + } + }, + "available-versions": { + "title": "Завантажити версію", + "steam-release": "Сторінка релізу", + "dropdown": { + "refresh": "Оновити версії", + "import-version": "Імпортувати версію" + }, + "recommended": "рекомендована", + "recommended-tooltip": "Найбільш модифікована версія" + }, + "settings": { + "steam-and-oculus": { + "title": "Steam & Oculus", + "description": "Вийшовши з системи, ви зможете змінити обліковий запис під час наступного завантаження Beat Saber.", + "logout": "Вийти", + "logout-success": "Успішний вихід з системи", + "download-platform": { + "title": "Платформа за замовчуванням", + "desc": "Виберіть платформу за замовчуванням, яку ви хочете використовувати для завантаження версій Beat Saber.", + "always-ask": "Завжди запитувати" + } + }, + "appearance": { + "title": "Зовнішній вигляд", + "description": "Виберіть два основні кольори BSManager.", + "reset": "Скинути", + "sub-title": "Тема", + "themes": { + "dark": "Темна", + "light": "Світла", + "os": "Синхронізувати з комп'ютером" + } + }, + "installation-folder": { + "title": "Тека встановлення", + "description": "Змініть теку, яка міститиме весь контент, завантажений BSManager." + }, + "proton-folder": { + "title": "Тека Proton", + "description": "Змініть теку на шлях до Proton. (напр. Proton - Experimental)", + "errors": { + "title": "Не вдалося встановити теку Proton", + "invalid-folder": "Некоректний шлях до Proton" + } + }, + "additional-content": { + "title": "Додатковий контент", + "description": "Додатковий контент, що дозволяє налаштувати Beat Saber!", + "deep-links": { + "sub-title": "OneClick-встановлення" + } + }, + "language": { + "title": "Мова", + "description": "Виберіть мову.", + "languages": { + "en-EN": "English, UK", + "en-US": "English, US", + "fr-FR": "Français", + "es-ES": "Español", + "it-IT": "Italiano", + "de-DE": "Deutsch", + "pt-BR": "Português (Brasil)", + "ru-RU": "Русский", + "zh-CN": "简体中文", + "zh-TW": "正體中文", + "ja-JP": "日本語", + "ko-KR": "한국어", + "uk-UA": "Українська", + "tl-PH": "Filipino", + "translated": { + "en-EN": "Англійська, Велика Британія", + "en-US": "Англійська, США", + "fr-FR": "Французька", + "es-ES": "Іспанська", + "it-IT": "Італійська", + "de-DE": "Німецька", + "pt-BR": "Португальська (Бразилія)", + "ru-RU": "Російська", + "zh-CN": "Китайська (спрощена)", + "zh-TW": "Китайська (традиційна)", + "ja-JP": "Японська", + "ko-KR": "Корейська", + "uk-UA": "Українська", + "tl-PH": "філіппінська" + } + } + }, + "patreon": { + "title": "Підтримайте BSManager 💖", + "description": "Підтримайте проєкт і допоможіть нам продовжувати вдосконалювати BSManager.", + "buttons": { + "support": "Підтримати BSManager 🥰", + "supporters": "Підписники 👀" + }, + "view": { + "no-supporters": "Ще немає підписників", + "sponsors": "Спонсори", + "supporters": "Підписники" + } + }, + "discord": { + "description": "Приєднуйтесь до спільноти BSManager, підписавшись на наші соціальні мережі!" + }, + "contribution": { + "description": "Запропонуйте нові функції або повідомте про помилку, щоб допомогти покращити BSManager!", + "buttons": { + "request-features": "Запропонувати нову функцію", + "report-bug": "Повідомити про помилку", + "open-logs": "Відкрити логи" + } + }, + "advanced": { + "title": "Додатково", + "description": "Додаткові налаштування для BSManager.", + "hardware-acceleration": { + "title": "Апаратне прискорення", + "description": "Увімкніть апаратне прискорення, щоб використовувати ваш GPU та покращити продуктивність BSManager. Вимкніть цю опцію, якщо у вас спостерігаються просідання кадрів.", + "modal": { + "title": "Потрібен перезапуск", + "body": "Зміна налаштувань апаратного прискорення призведе до виходу та повторного запуску BSManager. Ви впевнені, що хочете це зробити?", + "confirm-btn": "Так, я впевнений" + }, + "error-notification": { + "message": "Сталася помилка, неможливо вимкнути апаратне прискорення." + } + }, + "use-symlinks": { + "title": "Використовувати символьні посилання", + "description": "Використовувати символьні посилання замість з'єднань для прив’язки папок. Увімкніть цю опцію лише за необхідності.", + "modal": { + "title": "Дозволи для символьних посилань", + "body": "Для створення символьних посилань BSManager потребуватиме прав адміністратора або увімкненого режиму розробника у вашій системі. Ви впевнені, що хочете продовжити?", + "confirm-btn": "Так, я впевнений" + }, + "error-notification": { + "message": "Сталася помилка, неможливо змінити налаштування символьних посилань." + } + }, + "use-system-proxy": { + "title": "Використовувати системний проксі", + "description": "BSManager виконуватиме мережеві запити через ваш системний проксі.", + "error-notification": { + "message": "Сталася помилка, неможливо змінити налаштування системного проксі." + } + } + } + } + }, + "notifications": { + "types": { + "error": "🚨 Помилка", + "warning": "⚠️ Попередження", + "success": "🎉 Успіх" + }, + "common": { + "msg": { + "error-occurred": "Сталася помилка" + } + }, + "shared": { + "errors": { + "titles": { + "operation-running": "Операція виконується", + "no-internet": "Немає інтернету", + "file-not-supported": "Файл не підтримується" + }, + "msg": { + "operation-running": "Дочекайтеся завершення поточної операції, а потім спробуйте ще раз.", + "no-internet": "Перевірте підключення до мережі та спробуйте ще раз.", + "file-not-supported": "Підтримуються лише файли {types}." + } + } + }, + "bs-download": { + "success": { + "titles": { + "download-success": "Завантаження завершено", + "verification-finished": "Перевірка завершена" + } + }, + "steam-download": { + "warnings": { + "msg": { + "ManifestChecksum": "Раніше завантажений маніфест не збігається з новим 🤔", + "ConnectionTimeout": "Ваше інтернет-з'єднання нестабільне 🥶", + "ConnectionLost": "З'єднання втрачено, спробуйте ще раз...", + "ConnectionError": "Не вдалося підключитися до Steam, спробуйте ще раз...", + "Unknown": "Сталося щось дивне 🤔 Ймовірно, ваше з'єднання нестабільне." + } + }, + "errors": { + "msg": { + "401": "Steam не дозволяє нам завантажити Beat Saber 😢", + "404": "Не вдалося зв'язатися з серверами Steam.", + "ExeNotFoundWindows": "\"DepotDownloader.exe\" відсутній. Переконайтеся, що ваш антивірус не помістив файл у карантин.", + "ExeNotFoundLinux": "Виконуваний файл \"DepotDownloader\" відсутній.", + "Password": "Неправильний пароль.", + "InvalidCredentials": "Недійсні облікові дані, несанкціоноване підключення або забагато спроб входу.", + "NoManifest": "Маніфест не знайдено.", + "DirectoryCreate": "Не вдалося створити необхідні папки.", + "NotAvailableApp": "Ви намагаєтеся завантажити Beat Saber, не маючи його у бібліотеці? 🤣", + "DepotNotFound": "Не вдалося завантажити Beat Saber 😥 Спробуйте пізніше 😕", + "NotCompleted": "Завантаження не було завершено ¯\\_(ツ)_/¯", + "InvalidManifest": "Не вдалося завантажити Beat Saber 😥 Спробуйте пізніше 😕", + "NoValidKey": "Не вдалося завантажити Beat Saber 😥 Спробуйте пізніше 😕", + "NoManifestCode": "Не вдалося завантажити Beat Saber 😥 Спробуйте пізніше 😕", + "Unknown": "Сталася невідома помилка ¯\\_(ツ)_/¯", + "NoServer": "Не вдалося зв'язатися з серверами Steam.", + "NotAllowed": "Схоже, що вам не дозволено завантажувати Beat Saber 🥱", + "ConnectionTimeout": "Не вдалося підключитися до Steam 😕", + "SteamLib": "Якщо у вас з'явилася ця помилка, повідомте про баг на GitHub разом із логами.", + "ConnectionError": "Не вдалося підключитися до Steam після 10 спроб 🤯", + "LicenceError": "Не вдалося отримати список ліцензій.", + "RateLimitExceeded": "Забагато спроб, зачекайте і спробуйте ще раз пізніше.", + "TokenRejected": "Ваш токен входу відхилено 😕 Будь ласка, спробуйте ще раз.", + "AccessDenied": "Доступ до Steam було відхилено." + } + } + }, + "oculus-download": { + "errors": { + "msg": { + "DOWNLOAD_MANIFEST_FAILED": "Не вдалося завантажити маніфест для цієї версії; ваш токен входу може бути недійсним.", + "MANIFEST_FILE_NOT_FOUND": "Не вдалося знайти маніфест для цієї версії.", + "PARSE_MANIFEST_FILE_FAILED": "Сталася помилка під час читання маніфесту.", + "ALREADY_DOWNLOADING": "Версія вже завантажується.", + "UNABLE_TO_GET_MANIFEST": "Не вдалося отримати маніфест, необхідний для завантаження.", + "VERIFY_INTEGRITY_FAILED": "Сталася помилка під час перевірки цілісності файлів.", + "SOME_FILES_FAILED_TO_DOWNLOAD": "Деякі файли не вдалося завантажити.", + "META_LOGIN_TIMED_OUT": "Токен входу занадто довго отримувався.", + "META_LOGIN_WINDOW_CLOSED_BY_USER": "Вікно входу в Meta було закрите користувачем.", + "NO_META_AUTH_TOKEN": "Не вдалося отримати токен входу Meta, необхідний для завантаження.", + "UNKNOWN_ERROR": "Сталася невідома помилка." + } + } + } + }, + "bs-import-version": { + "success": { + "start-import": { + "title": "Імпорт триває 👌", + "desc": "Імпорт може зайняти кілька хвилин залежно від вашої конфігурації." + }, + "imported": { + "title": "Версія імпортована 🎉" + } + }, + "errors": { + "import-error": { + "desc": "Переконайтеся, що вибрана папка є встановленою версією Beat Saber." + } + } + }, + "settings": { + "move-folder": { + "success": { + "titles": { + "transfer-started": "Передача триває", + "transfer-finished": "Передача завершена" + }, + "descs": { + "transfer-started": "Передача розпочалася і може зайняти кілька хвилин залежно від вашої конфігурації." + } + }, + "errors": { + "titles": { + "transfer-failed": "Передача не вдалася 😕" + }, + "descs": { + "COPY_TO_SUBPATH": "Цільова папка не може бути підпапкою вихідної папки.", + "restore-linked-folders": "Сталася помилка під час відновлення спільних папок. Ви все ще можете відновити їх вручну через меню 'Спільні папки' на сторінці версій." + } + } + }, + "steam": { + "success": { + "titles": { + "logout": "Відключено від Steam." + } + } + }, + "additional-content": { + "deep-link": { + "select-all": "Вибрати все", + "activation": { + "success": { + "title": "OneClick активовано!", + "description": "OneClick-встановлення активовано." + }, + "error": { + "description": "Не вдалося активувати OneClick-встановлення." + } + }, + "deactivation": { + "success": { + "title": "OneClick деактивовано!", + "description": "OneClick-встановлення деактивовано." + }, + "error": { + "description": "Сталася невідома помилка." + } + }, + "check-all-enabled": { + "title": "OneClick вимкнено", + "description": "Одна або більше OneClick-встановлень вимкнено. Перейдіть до налаштувань, щоб увімкнути їх.", + "actions": { + "settings": "Налаштування", + "not-remind": "Не нагадувати" + } + } + } + } + }, + "bs-launch": { + "success": { + "titles": { + "BS_LAUNCHING": "Запускається...🚀", + "STEAM_LAUNCHING": "Steam запускається!", + "SKIPPING_STEAM_LAUNCH": "Пропуск запуску Steam" + }, + "msg": { + "BS_LAUNCHING": "Не забудьте розім'ятися 😉", + "STEAM_LAUNCHING": "Beat Saber запуститься автоматично після Steam.", + "SKIPPING_STEAM_LAUNCH": "Сподіваюся, ви знаєте, що робите :)" + } + }, + "errors": { + "titles": { + "UNKNOWN_ERROR": "Неможливо запустити", + "STEAM_NOT_RUNNING": "Steam не запущено", + "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 не знайдено", + "ORIGINAL_OCULUS_NOT_INSTALLED": "Оригінальну версію Oculus не знайдено" + }, + "msg": { + "UNKNOWN_ERROR": "Сталася невідома помилка.", + "STEAM_NOT_RUNNING": "Для запуску BeatSaber має бути запущений Steam.", + "OCULUS_NOT_RUNNING": "Для запуску BeatSaber має бути запущений Oculus.", + "BS_ALREADY_RUNNING": "Закрийте BeatSaber перед повторним запуском.", + "EXE_NOT_FINDED": "Схоже, деякі файли відсутні, спробуйте перевірити файли.", + "EXIT": "BeatSaber раптово зупинився, спробуйте перевірити файли.", + "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" + } + } + }, + "steam": { + "steam-launching": { + "title": "Steam запускається!", + "description": "Beat Saber запуститься автоматично після Steam." + } + }, + "custom-version": { + "errors": { + "titles": { + "CantEditSteam": "Неможливо редагувати", + "CantRename": "Перейменування неможливе", + "VersionAlreadExist": "Ця версія вже існує", + "CantClone": "Клонування неможливе", + "UnknownError": "Сталася невідома помилка" + }, + "msg": { + "CantEditSteam": "Ви не можете редагувати версію Steam. Але ви можете її клонувати." + } + }, + "success": { + "titles": { + "CloningFinished": "Клонування завершено 🎉" + } + } + }, + "mods": { + "install-mods": { + "titles": { + "success": "Моди встановлено 🎉", + "warning": "Моди встановлено 🤔" + }, + "msg": { + "success": "Усі моди були встановлені.", + "warning": "Один або кілька модів не вдалося встановити.", + "errors": { + "no-mods": "Немає модів для встановлення.", + "cannot-install-bsipa": "Не вдалося встановити BSIPA 😨" + } + } + }, + "uninstall-mod": { + "titles": { + "success": "Мод видалено 🎉" + }, + "msg": { + "errors": { + "no-mods": "Цей мод не встановлено 😑" + } + } + }, + "uninstall-all-mods": { + "titles": { + "success": "Моди видалено 🎉" + }, + "msg": { + "success": "Усі моди були видалені.", + "errors": { + "no-mods": "У цій версії не встановлено жодних модів 😑", + "no-wineprefix": "Не вдалося знайти шлях до WINEPREFIX BSManager. Будь ласка, спочатку запустіть Beat Saber у BSManager." + } + } + }, + "import-mod": { + "titles": { + "success": "Імпорт модів завершено", + "error": "Сталася помилка під час імпорту модів" + }, + "msgs": { + "success": "Моди успішно імпортовано.", + "some-success": "Деякі моди були успішно імпортовані.", + "no-dlls": "Файл(и) не містять жодних файлів \"dll\"." + } + } + }, + "maps": { + "one-click-install": { + "success": "Встановлення карти завершено", + "error": "Сталася помилка під час встановлення карти" + }, + "no-duplicates-maps": { + "title": "Немає дублікатів", + "msg": "Жодних карт не було видалено" + }, + "duplicates-maps-deleted": { + "title": "Дублікати видалено", + "msg": "Дублікати були видалені" + }, + "import-map": { + "titles": { + "success": "Імпорт карт завершено", + "error": "Сталася помилка під час імпорту карт" + }, + "msgs": { + "success": "Карти успішно імпортовано.", + "some-success": "Деякі карти були успішно імпортовані.", + "only-accept-zip": "Підтримуються лише zip-файли.", + "invalid-zip": "Zip-файл(и) не містять жодних карт.", + "unknown": "Сталася невідома помилка." + } + } + }, + "playlists": { + "one-click-install": { + "success": "Встановлення плейлиста завершено", + "error": "Сталася помилка під час встановлення плейлиста" + } + }, + "models": { + "one-click-install": { + "success": "Встановлення моделі завершено", + "error": "Сталася помилка під час встановлення моделі" + } + }, + "shared-folder": { + "info": { + "userdata-backup-created": { + "title": "Резервну копію створено", + "msg": "Спільний доступ до папки 'UserData' може спричинити помилки, у разі виникнення проблем від'єднайте папку, щоб відновити резервну копію" + } + }, + "linking-error": { + "title": "Помилка під час прив'язки папки", + "msg": { + "EPERM": "BSManager не має необхідних дозволів для прив'язки папки.", + "EACCES": "BSManager не має необхідних дозволів для прив'язки папки.", + "ENOSPC": "Диск заповнений, звільніть місце та спробуйте знову.", + "LinkingNotSupported": "Прив'язка папок не підтримується на цій файловій системі.", + "UNKNOWN_ERROR": "Сталася невідома помилка під час прив'язки папки." + } + }, + "adding-error": { + "title": "Не вдалося додати спільну папку", + "msg": "Ви не можете додати \"{folder}\" до спільних папок." + } + }, + "create-launch-shortcut": { + "success": { + "title": "Ярлик створено", + "msg": "Ярлик було створено на робочому столі.", + "msg-steam": "Ярлик було створено в бібліотеці Steam." + }, + "error": { + "msg": "Сталася помилка під час створення ярлика." + } + }, + "bs-version-oudated": { + "title": "Версія застаріла", + "msg": "Ця версія Beat Saber застаріла, використовуйте рекомендовану версію, щоб насолоджуватися останніми функціями та виправленнями помилок", + "actions": { + "do-not-remind": "Не нагадувати", + "ok": "Гаразд" + } + } + }, + "modals": { + "misc": { + "remember-my-choice": "Запам'ятати мій вибір" + }, + "choose-store": { + "title": "Яка платформа?", + "body": "Виберіть платформу, з якої ви бажаєте завантажити Beat Saber.", + "set-in-settings": "Встановіть платформу за замовчуванням у налаштуваннях" + }, + "guard": { + "title": "Steam Guard", + "inputs": { + "guard-code": { + "label": "Код Guard", + "placeholder": "Введіть ваш код Guard" + } + }, + "buttons": { + "submit": "Увійти" + } + }, + "steam-login": { + "title": "Вхід у Steam", + "inputs": { + "username": { + "label": "Увійти з іменем облікового запису", + "placeholder": "Введіть ім'я облікового запису" + }, + "password": { + "label": "Пароль", + "placeholder": "Введіть ваш пароль", + "max-length-warning": "Пароль перевищує 64 символи! Якщо пароль недійсний, спробуйте ввести лише перші 64 символи." + }, + "qr": { + "label": "Або за допомогою QR-коду", + "note": { + "use-the": "Використовуйте ", + "steam-mobile-app": "мобільний додаток Steam", + "to-connect-with-qr": "для входу через QR-код." + } + }, + "stay": "Запам'ятати мене" + }, + "why-credentials": "Чому потрібні мої облікові дані?", + "need-help-to-connect": "Мені потрібна допомога для доступу до мого облікового запису!", + "buttons": { + "submit": "Увійти" + } + }, + "steam-auth-approve": { + "title": "Очікування підтвердження", + "protected-by-mobile-auth": "Обліковий запис захищено мобільним автентифікатором.", + "use-steam-app-to-approve": "Використовуйте мобільний додаток Steam для підтвердження з'єднання...", + "not-access-to-steam-app": "У мене немає доступу до мобільного додатку Steam" + }, + "steam-credentials": { + "title": "Облікові дані Steam", + "p-1": "Ваші облікові дані Steam потрібні лише для завантаження версій Beat Saber. Ми використовуємо DepotDownloader, якому потрібні ваші облікові дані Steam для перевірки наявності гри у вашій бібліотеці перед тим, як дозволити вам отримати файли гри. Ваші облікові дані не зберігаються і передаються безпосередньо до DepotDownloader. Однак, якщо ви не хочете цього робити, ви можете натомість скористатися цим посібником: ", + "p-2": "Після цього ви можете натиснути на значок шестерні у верхньому правому куті та вибрати \"Імпортувати версію\", потім ви можете вибрати папку, куди було завантажено Beat Saber. (Якщо ви слідували посібнику, у вас буде правильне розташування)" + }, + "bs-import-version": { + "title": "Імпортувати версію", + "description": "Імпортує версію Beat Saber для використання з BSManager. Це скопіює вибрану папку встановлення Beat Saber до папки версій BSManager.", + "oculus-version": "Версія Oculus", + "oculus-version-tooltip": "Відмітьте, якщо це версія Oculus", + "buttons": { + "submit": "Імпортувати версію" + } + }, + "bs-uninstall": { + "title": "Видалення", + "description": "Ви впевнені, що хочете видалити Beat Saber {version}? Вам доведеться завантажити його знову, щоб грати.", + "buttons": { + "submit": "Видалити" + } + }, + "install-folder": { + "title": "Папка встановлення", + "description": "Зміна папки встановлення за замовчуванням призведе до переміщення всіх встановлених даних до нової папки.", + "buttons": { + "submit": "Вибрати папку" + } + }, + "edit-version": { + "title": "Редагувати версію", + "buttons": { + "submit": "Редагувати" + } + }, + "clone-version": { + "title": "Клонувати версію", + "description": "Клонування версії дозволяє розділити додатковий вміст Beat Saber між двома версіями.", + "inputs": { + "name": { + "label": "Назва", + "placeholder": "Назва версії" + }, + "color": { + "label": "Колір" + } + }, + "buttons": { + "submit": "Клонувати" + } + }, + "uninstall-mod": { + "title": "Видалення", + "description": "Ви впевнені, що хочете видалити {mod}? Це може призвести до неправильної роботи інших встановлених модів.", + "description-bsipa": "Ви впевнені, що хочете видалити BSIPA? Після цього всі встановлені моди перестануть працювати." + }, + "uninstall-all-mods": { + "title": "Видалення модів", + "description": "Ви впевнені, що хочете видалити всі моди з версії {version}? Цю операцію неможливо скасувати." + }, + "maps-actions": { + "delete-maps": { + "title": { + "single": "Видалити цю карту?", + "multiple": "Видалити карти?" + }, + "desc": { + "single": "Ви впевнені, що хочете видалити карту {name}?", + "multiple": "Ви впевнені, що хочете видалити {nb} карт(-и)?" + }, + "info": { + "desc": { + "single": "Ця карта є частиною спільних карт", + "multiple": "Ці карти є частиною спільних карт" + }, + "title": { + "single": "Ця карта також буде видалена з версій, що використовують спільні карти", + "multiple": "Ці карти також будуть видалені з версій, що використовують спільні карти" + } + } + } + }, + "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": "Для відв'язки ваших карт символічне посилання, що вказує на {sharedHtml}, буде видалено. Після цього всі карти зі спільної папки будуть скопійовані до папки {itemsHtml} вашої версії Beat Saber.", + "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": "Завантаження карт...", + "no-maps-found": "Карт не знайдено", + "no-internet": "Немає інтернету" + }, + "mods-disclaimer": { + "title": "Застереження", + "p-1": "Вибираючи використання модів, ви розумієте, що:", + "li-1": "Ви можете зіткнутися з проблемами, яких немає у оригінальній грі. 99.9% помилок, збоїв і затримок спричинені модами.", + "li-2": "Моди можуть перестати працювати після оновлень, і це нормально - будьте терплячі та поважайте це, оскільки модери є добровольцями з власним життям.", + "li-3": "Beat Games не намагаються навмисно зламати моди. Вони працюють над кодовою базою, і іноді це ламає моди, але вони не прагнуть знищити моди.", + "p-2": "Не нападайте на розробників гри через проблеми, пов'язані з модами, і навпаки - модери та розробники гри є двома окремими групами. Просто не будьте грубими, добре?" + }, + "shared-folders": { + "title": "Спільні папки", + "description": "Прив'яжіть папки Beat Saber для синхронізації їхнього вмісту зі спільними папками в інших версіях. Зауважте, що видалення вмісту також буде спільним.", + "buttons": { + "add-folder": "Додати папку", + "link-folder": "Прив'язати папку", + "unlink-folder": "Відв'язати папку", + "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": "Створити ярлик", + "create-steam-shortcut": "Створити ярлик Steam", + "steam-shortcut-tippy": "Якщо ввімкнено, замість створення ярлика на робочому столі, його буде створено в Steam." + }, + "connect-to-meta": { + "title": "Підключення до Meta", + "body": { + "token-needed": "Для завантаження Beat Saber потрібен ваш токен підключення Meta.", + "need-cookie-enabled": "При вході в Meta відкриється вікно входу, і ви зможете розпочати процес входу. Будь ласка, прийміть куки, інакше ми не зможемо отримати ваш токен для початку завантаження.", + "enter-token-manually": "Ввести мій токен входу вручну", + "enter-token-manually-tooltip": "Це дозволить вам ввести ваш токен входу без проходження входу через Meta." + }, + "stay": "Запам'ятати мене", + "connect-to-meta": "Підключитися до Meta" + }, + "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", + "body": { + "info-enter-token": "Для завантаження Beat Saber потрібен ваш токен входу Oculus.", + "how-obtain-token": "Як отримати мій токен Oculus?", + "oculus-token": "Токен Oculus", + "token-is-invalid": "Токен недійсний.", + "save-my-token": "Зберегти мій токен", + "have-token-saved": "У мене вже є збережений токен", + "save-token-info": "Це збереже ваш токен для легшого повторного використання. Вам потрібно буде створити пароль для шифрування вашого токена для цілей зберігання. Якщо ви коли-небудь забудете пароль, вам просто потрібно буде надати токен знову.", + "password": "Пароль", + "password-too-short": "Пароль занадто короткий", + "info-enter-password": "Для завантаження Beat Saber потрібен ваш токен входу Oculus. Введіть пароль, використаний для збереження вашого токена Oculus.", + "info-disabled-btn-password": "Токен, розшифрований із наданим паролем, недійсний. Переконайтеся, що пароль такий самий, як той, що використовувався для збереження токена.", + "enter-oculus-token": "Введіть токен Oculus" + }, + "valid-btn": "Підтвердити" + }, + "launch-as-admin": { + "title": "Права адміністратора", + "body": { + "info": "Виявлено, що Steam працює з правами адміністратора. Для зв'язку зі Steam, Beat Saber також потрібно запустити як адміністратор. Інакше Beat Saber може зіткнутися з проблемами і закритися після запуску.", + "info-2": "Запуск Beat Saber в режимі адміністратора також надасть права адміністратора встановленим модам. Тому рекомендується перезапустити Steam без прав адміністратора.", + "info-3": "Зауважте, що не рекомендується надавати права адміністратора Steam, оскільки це впливає на встановлені ігри та моди, створюючи ризик безпеки." + }, + "launch-as-admin": "Запустити як адміністратор", + "not-remind-me": "Не нагадувати мені" + }, + "ask-install-path": { + "title": "Папка встановлення", + "choose-folder-description": "Виберіть папку, яка міститиме весь вміст, завантажений BSManager. (версії, моди, карти, плейлисти тощо)", + "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": { + "map-filter-panel": { + "duration": "Тривалість", + "nps": "Нот за секунду", + "njs": "Швидкість стрибка нот", + "tags": "теги", + "specificities": "загальне", + "requirements": "вимоги", + "exclude": "виключити", + "leaderboard": "таблиця лідерів" + }, + "map-types": { + "accuracy": "точність", + "balanced": "збалансовані", + "challenge": "виклик", + "dance-style": "танець", + "fitness": "фітнес", + "speed": "швидкість", + "tech": "техніка" + }, + "map-styles": { + "dance": "танцювальні", + "swing": "свінг", + "nightcore": "найткор", + "folk-acoustic": "фолк і акустика", + "kids-family": "для дітей і сім'ї", + "ambient": "ембієнт", + "funk-disco": "фанк і диско", + "jazz": "джаз", + "soul": "соул", + "speedcore": "спідкор", + "punk": "панк", + "rb": "r&b", + "holiday": "святкові", + "vocaloid": "вокалоїд", + "j-rock": "j-rock", + "trance": "транс", + "drum-and-bass": "драм-н-бейс", + "comedy-meme": "комедія і меми", + "instrumental": "інструментальні", + "hardcore": "хардкор", + "k-pop": "k-pop", + "indie": "інді", + "techno": "техно", + "house": "хаус", + "video-game-soundtrack": "відеоігри", + "tv-movie-soundtrack": "ТБ і фільми", + "alternative": "альтернатива", + "dubstep": "дабстеп", + "metal": "метал", + "anime": "аніме", + "hip-hop-rap": "хіп-хоп і реп", + "j-pop": "j-pop", + "rock": "рок", + "pop": "поп", + "electronic": "електронна", + "classical-orchestral": "Класична і оркестрова" + }, + "map-specificities": { + "automapper": "ШІ", + "curated": "куровані", + "verified": "перевірені", + "fullSpread": "повний набір" + }, + "map-leaderboard": { + "All": "Всі", + "Ranked": "Ранговані", + "BeatLeader": "BeatLeader", + "ScoreSaber": "ScoreSaber" + }, + "map-excludes": { + "installed": "встановлені" + }, + "difficulties": { + "Easy": "легкий", + "Normal": "нормальний", + "Hard": "складний", + "Expert": "експерт", + "ExpertPlus": "експерт+" + }, + "map-item": { + "by": "Від {songAutor}", + "mapped-by": "автор карти", + "delete": "Видалити", + "preview": "Попередній перегляд карти", + "bsr-code": "BSR код", + "download": "Завантажити карту", + "downloading": "Завантаження карти", + "cancel-download": "Скасувати завантаження", + "hightlight-difficulty": "Виділити складність" + } + }, + "models": { + "types": { + "singular": { + "avatar": "аватар", + "saber": "шпага", + "platform": "платформа", + "bloq": "блок" + }, + "plural": { + "avatar": "аватари", + "saber": "шпаги", + "platform": "платформи", + "bloq": "блоки" + } + }, + "sorts": { + "name": "Ім'я", + "date": "Дата", + "author": "Автор" + }, + "panel": { + "actions": { + "search": "Пошук завантажених моделей", + "drop-down": { + "delete": "Видалити моделі", + "export": "Експортувати моделі" + }, + "link-models": "Зв'язати моделі", + "unlink-models": "Відв'язати моделі" + }, + "grid": { + "loading": "Завантаження моделей...", + "no-models": "Немає моделей", + "download-models": "Завантажити моделі" + } + }, + "modals": { + "delete-model": { + "title": "Видалити модель", + "desc": "Ви впевнені, що хочете видалити модель {modelName}?", + "linked-annotation": "Цю модель буде видалено з усіх пов'язаних версій." + }, + "delete-models": { + "title": "Видалити моделі", + "desc": "Ви впевнені, що хочете видалити {nb} модел(-і/-ей)?", + "linked-annotation": "Ці моделі буде видалено з усіх пов'язаних версій." + }, + "download-models": { + "search-btn": "Пошук", + "search-placeholder": "Пошук моделі", + "search-tips": { + "header": { + "tag": "Тег", + "desc": "Опис" + }, + "author-desc": "Показати лише моделі від вказаного автора.", + "hash-desc": "Показати лише моделі з вказаним хешем.", + "tag-desc": "Показати лише моделі з вказаним тегом.", + "name-desc": "Показати лише моделі з вказаною назвою.", + "discordid-desc": "Показати лише моделі від вказаного користувача Discord.", + "status-desc": "Показати лише моделі з вказаним статусом. (тільки для профілю і лише для автора)" + }, + "no-models": "Моделей не знайдено.", + "no-internet": "Немає підключення до інтернету.", + "error-occurred": "Сталася помилка, спробуйте пізніше." + } + }, + "notifications": { + "prevent-for-mods": { + "title": "Необхідні моди", + "desc": "Переконайтеся, що ви встановили необхідні моди для використання моделей у Beat Saber", + "go-to-mods": "Перейти до модів", + "not-remind": "Не нагадувати" + }, + "export-success": { + "title": "Експорт завершено 🎉" + } + } + }, + "beat-saver": { + "maps-sorts": { + "Latest": "Останні", + "Relevance": "Актуальні", + "Rating": "Рейтинг", + "Curated": "Оцінені куратором" + } + }, + "auto-update": { + "checking": "Перевірка оновлень", + "downloading": "Завантаження оновлень" + }, + "bs-shortcut-launch": { + "beat-saber-launching": "Запуск Beat Saber", + "launching": "Запуск", + "open-bsmanager": "Відкрити BSManager", + "status-text": { + "init": "Ініціалізація...", + "success": { + "BS_LAUNCHING": "Запуск Beat Saber...", + "STEAM_LAUNCHING": "Запуск Steam...", + "STEAM_LAUNCHED": "Steam успішно запущено!", + "UNABLE_TO_LAUNCH_STEAM": "Не вдалося запустити Steam, спроба запустити Beat Saber..." + } + } + }, + "drop-zone": { + "or-browse-files": "Або перегляньте файли" + }, + "playlist": { + "error-playlist-creation-title": "Помилка створення плейлисту", + "error-playlist-creation-desc": "Виникла помилка під час створення плейлисту.", + "playlist-created-title": "Плейлист створюється", + "playlist-created-desc": "Плейлист успішно створений. Тепер ви можете синхронізувати його карти!", + "download-playlist": "Завантажити плейлист", + "synchronize-playlist": "Синхронізувати плейлист", + "synchronize-maps": "Синхронізувати карти", + "error-playlists-synchronization-title": "Помилка синхронізації плейлистів", + "error-playlists-synchronization-desc": "Виникла помилка під час синхронізації плейлистів.", + "playlists-synchronized-title": "Плейлисти синхронізовані!", + "playlists-synchronized-desc": "Плейлисти та їх карти завантажені.", + "playlists-export-error-title": "Помилка експорту плейлистів", + "playlists-export-error-desc": "Виникла помилка під час експорту плейлистів.", + "playlists-exported-title": "Плейлисти експортовані!", + "playlists-exported-desc": "Плейлисти успішно експортовані.", + "playlists-with-maps-exported-desc": "Плейлисти та їх карти успішно експортовані.", + "playlist-delete-error-title": "Помилка видалення плейлисту", + "playlist-delete-error-desc": "Виникла помилка під час видалення плейлисту.", + "playlists-deleted-title": "Плейлисти видалені!", + "playlists-deleted-desc": "Плейлисти успішно видалені.", + "edit-playlist": "Редагувати плейлист", + "playlist-edit-error-title": "Помилка редагування плейлисту", + "playlist-edit-error-desc": "Виникла помилка під час редагування плейлисту.", + "playlist-edited-title": "Плейлист змінений!", + "playlist-edited-desc": "Плейлист успішно змінений. Тепер ви можете синхронізувати його карти!", + "playlists-loading": "Завантаження плейлистів...", + "no-playlists": "Немає плейлистів", + "download-playlists": "Завантажити плейлисти", + "created-by": "Створено", + "stop-download": "Припинити завантаження", + "cancel-download": "Скасувати завантаження", + "open-file": "Відкрити файл", + "delete-playlist-ask": "Видалити плейлист?", + "delete-playlists-ask": "Видалити плейлисти?", + "delete-playlist-desc": "Ви впевнені, що хочете видалити плейлист \"{playlistTitle}\"?", + "delete-playlists-desc": "Ви впевнені, що хочете видалити {nb} плейлист(-и/-ів)?", + "delete-maps": "Видалити карти", + "delete-playlist-maps-tip": "Якщо включено, всі карти в плейлисті будуть видалені", + "delete-playlists-maps-tip": "Якщо включено, всі карти в плейлистах будуть видалені", + "export-playlist-ask": "Експортувати плейлист?", + "export-playlists-ask": "Експортувати плейлисти?", + "export-playlist-desc": "Ви впевнені, що хочете експортувати плейлист \"{playlistTitle}\"?", + "export-playlists-desc": "Ви впевнені, що хочете експортувати {nb} плейлист(-и/-ів)?", + "export-maps": "Експортувати карти", + "export-playlist-maps-tip": "Якщо включено, всі карти в плейлисті будуть також експортовані", + "export-playlists-maps-tip": "Якщо включено, всі карти в плейлистах будуть також експортовані", + "export": "Експортувати", + "need-clone-title": "Повідомлення", + "need-clone-desc-1": "Цей плейлист завантажений з зовнішнього сайту та містить посилання на синхронізацію.", + "need-clone-desc-2": "Для уникнення втрати змін під час синхронізації, плейлист буде дубльований та його посилання на синхронізацію буде видалене", + "need-clone-desc-3": "Ви можете потім, якщо захочете, видалити оригінальний плейлист", + "understood": "Я розумію", + "synchronize-playlist-ask": "Синхронізувати плейлист?", + "synchronize-playlists-ask": "Синхронізувати плейлисти?", + "synchronize-playlist-desc": "Ви впевнені, що хочете синхронізувати плейлист \"{playlistTitle}\"?", + "synchronize-playlists-desc": "Ви впевнені, що хочете синхронізувати {nb} плейлист(-и/-ів)?", + "synchronize-playlist-tip": "Ця дія оновлює плейлисти та завантажує відсутні карти; вона може зайняти кілька хвилин", + "synchronize": "Синхронізувати", + "curated": "Рекомендовані", + "verified-mapper": "Перевірений маппер", + "empty-playlists": "Порожні плейлисти", + "search-playlist": "Шукати плейлисти", + "no-playlists-found": "Немає плейлистів", + "error-occur-while-loading-playlists": "Виникла помилка під час завантаження плейлистів", + "error-occur-while-loading-playlist": "Виникла помилка під час завантаження плейлиста", + "loading-maps": "Завантаження карт...", + "no-maps-found-for-playlist": "Для цього плейлиста не знайдено карт", + "playlist-contain-no-maps": "Плейлист не містить жодної карти", + "no-map-installed-for-playlist": "Для цього плейлиста не встановлено карт", + "playlist-is-waiting-to-download": "Плейлист чекає на завантаження", + "download-maps": "Завантажити карти", + "download-missing-maps": "Завантажити відсутні карти", + "playlist-is-downloading": "Плейлист завантажується", + "some-playlist-maps-are-missing": "Деякі карти в цьому плейлисті відсутні", + "create-a-playlist": "Створіть плейлист", + "synchronize-playlists": "Синхронізувати плейлисти", + "export-playlists": "Експортувати плейлисти", + "delete-playlists": "Видалити плейлисти", + "choose-image": "Оберіть зображення", + "title": "Назва", + "playlist-title": "Назва плейлисту", + "description": "Опис", + "playlist-description": "Опис плейлисту", + "author": "Автор", + "playlist-author": "Автор плейлисту", + "save": "Зберегти", + "loading": "Завантаження...", + "installed": "Встановлено", + "no-map-found": "Нічого не знайдено", + "edit-playlist-shortcuts": "Натисніть Shift або Ctrl, щоб обрати кілька карт", + "add-to-playlist": "Додати до плейлисту", + "remove-from-playlist": "Видалити з плейлисту", + "playlist-is-empty": "Плейлист порожній", + "continue": "Продовжити", + "nb-maps": "Кількість карт", + "nb-mappers": "Кількість виконавців", + "duration": "Тривалість", + "nps": "Нот в секунду (NPS)", + "date-picker": { + "start-date-end-date": "Дата початку — Дата завершення", + "all": "Всі", + "last-24h": "Останні 24 години", + "last-week": "Остання неділя", + "last-month": "Останній місяць", + "3-last-month": "Останні 3 місяці" + }, + "playlists-imported": "Плейлисти імпортовані", + "all-playlists-have-been-successfully-imported": "Всі плейлисти успішно імпортовані", + "no-playlist-found": "Нічого не знайдено", + "no-playlist-found-in-selected-files": "Нічого не знайдено серед обраних файлів", + "some-playlists-not-imported": "Деякі плейлисти не імпортовані", + "some-playlists-have-been-imported": { + "INVALID_SOURCE": "Деякі плейлисти не знайдені", + "INVALID_PLAYLIST_FILE": "Деякі плейлисти не можуть бути імпортовані", + "CANNOT_PARSE_PLAYLIST": "Деякі плейлисти не можуть бути прочитані", + "unknown": "Деякі плейлисти не можуть бути імпортовані" + }, + "no-playlists-imported": "Нічого не імпортовано", + "no-playlists-imported-errors": { + "INVALID_SOURCE": "Плейлисти не знайдено", + "INVALID_PLAYLIST_FILE": "Плейлисти не можуть бути імпортовані", + "CANNOT_PARSE_PLAYLIST": "Плейлисти не можуть бути прочитані", + "unknown": "Нічого не імпортовано" + } + }, + "dateformat": { + "dayNames": ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"], + "monthNames": ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру", "Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"], + "timeNames": ["a", "p", "am", "pm", "A", "P", "AM", "PM"] + } +} diff --git a/assets/jsons/translations/zh-tw.json b/assets/jsons/translations/zh-tw.json index 027a8afd..f47cdfc0 100644 --- a/assets/jsons/translations/zh-tw.json +++ b/assets/jsons/translations/zh-tw.json @@ -251,6 +251,8 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", + "tl-PH": "Filipino", "translated": { "en-EN": "英式英語", "en-US": "美式英語", @@ -263,7 +265,9 @@ "zh-CN": "簡體中文", "zh-TW": "正體中文", "ja-JP": "日語", - "ko-KR": "韓語" + "ko-KR": "韓語", + "uk-UA": "烏克蘭", + "tl-PH": "菲律賓人" } } }, diff --git a/assets/jsons/translations/zh.json b/assets/jsons/translations/zh.json index 5bed5c94..aaf1e5e2 100644 --- a/assets/jsons/translations/zh.json +++ b/assets/jsons/translations/zh.json @@ -245,11 +245,14 @@ "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": "한국어", + "uk-UA": "Українська", + "tl-PH": "Filipino", "translated": { "en-EN": "英式英语", "en-US": "美式英语", @@ -262,7 +265,9 @@ "zh-CN": "简体中文", "zh-TW": "正体中文", "ja-JP": "日语", - "ko-KR": "韩语" + "ko-KR": "韩语", + "uk-UA": "烏克蘭", + "tl-PH": "菲律宾人" } } }, @@ -951,7 +956,7 @@ "maps": { "map-filter-panel": { "duration": "时长", - "nps" : "每秒音符数", + "nps": "每秒音符数", "njs": "音符跳跃速度", "tags": "标签", "specificities": "general", @@ -1032,11 +1037,11 @@ "by": "By {songAutor}", "mapped-by": "mapped by", "delete": "删除", - "preview" : "预览地图", - "bsr-code" : "BSR代码", - "download" : "下载地图", - "downloading" :"正在下载地图", - "cancel-download" : "取消下载", + "preview": "预览地图", + "bsr-code": "BSR代码", + "download": "下载地图", + "downloading": "正在下载地图", + "cancel-download": "取消下载", "hightlight-difficulty": "突出显示难度" } }, diff --git a/package-lock.json b/package-lock.json index a5d14dd9..cad04554 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bs-manager", - "version": "1.5.0-alpha.9", + "version": "1.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "bs-manager", - "version": "1.5.0-alpha.9", + "version": "1.5.0", "hasInstallScript": true, "license": "GPL-3.0-only", "dependencies": { diff --git a/src/main/ipcs/bs-mods-ipcs.ts b/src/main/ipcs/bs-mods-ipcs.ts index c024037b..476f4c55 100644 --- a/src/main/ipcs/bs-mods-ipcs.ts +++ b/src/main/ipcs/bs-mods-ipcs.ts @@ -1,6 +1,7 @@ import { BsModsManagerService } from "../services/mods/bs-mods-manager.service"; import { IpcService } from "../services/ipc.service"; import { from } from "rxjs"; +import { BeatModsApiService } from "main/services/mods/beat-mods-api.service"; const ipc = IpcService.getInstance(); @@ -34,8 +35,7 @@ ipc.on("bs-mods.uninstall-all-mods", (args, reply) => { reply(modsManager.uninstallAllMods(args)); }); -ipc.on("bs-mods.get-mods-grid-status", (_, reply) => { - const modsManager = BsModsManagerService.getInstance(); - reply(from(modsManager.getModsGridStatus())); -}); - +ipc.on("bs-mods.beatmods-up", (_, reply) => { + const beatMods = BeatModsApiService.getInstance(); + reply(from(beatMods.isUp())); +}) diff --git a/src/main/ipcs/linux.ipcs.ts b/src/main/ipcs/linux.ipcs.ts index d40ad9fa..c1ac2387 100644 --- a/src/main/ipcs/linux.ipcs.ts +++ b/src/main/ipcs/linux.ipcs.ts @@ -9,3 +9,8 @@ ipc.on("linux.verify-proton-folder", (_, reply) => { reply(of(linuxService.verifyProtonPath())); }); +ipc.on("linux.get-wine-prefix-path", (_, reply) => { + const linuxService = LinuxService.getInstance(); + reply(of(linuxService.getWinePrefixPath())); +}); + diff --git a/src/main/services/bs-local-version.service.ts b/src/main/services/bs-local-version.service.ts index 14d31dde..c97ac1ea 100644 --- a/src/main/services/bs-local-version.service.ts +++ b/src/main/services/bs-local-version.service.ts @@ -106,10 +106,10 @@ export class BSLocalVersionService { const versionFilePath = path.join(bsPath, 'Beat Saber_Data', 'globalgamemanagers'); const folderVersion = await this.getVersionFromGlobalGameManagerFile(versionFilePath); - folderVersion.path = bsPath; - if(!folderVersion){ return null; } + folderVersion.path = bsPath; + if(options?.steam || options?.oculus){ return {...folderVersion, ...options}; } diff --git a/src/main/services/mods/bs-mods-manager.service.ts b/src/main/services/mods/bs-mods-manager.service.ts index 7d0997f6..f127ecaf 100644 --- a/src/main/services/mods/bs-mods-manager.service.ts +++ b/src/main/services/mods/bs-mods-manager.service.ts @@ -19,7 +19,6 @@ import crypto from "crypto"; import { BsmZipExtractor } from "main/models/bsm-zip-extractor.class"; import { BsmShellLog, bsmSpawn } from "main/helpers/os.helpers"; import { BbmFullMod, BbmModVersion, ExternalMod } from "../../../shared/models/mods/mod.interface"; -import { ModsGridStatus } from "shared/models/mods/mod-ipc.model"; export class BsModsManagerService { private static instance: BsModsManagerService; @@ -565,24 +564,6 @@ export class BsModsManagerService { .finally(() => obs.complete()); }); } - - public async getModsGridStatus(): Promise { - if (process.platform === "linux") { - const wineprefix = this.linuxService.getWinePrefixPath(); - if (!wineprefix) { - log.error("Could not find BSManager WINEPREFIX path"); - return ModsGridStatus.NO_WINEPREFIX; - } - } - - const beatModsUp = await this.beatModsApi.isUp(); - if (!beatModsUp) { - return ModsGridStatus.BEATMODS_DOWN; - } - - - return ModsGridStatus.OK; - } } const enum ModsInstallFolder { diff --git a/src/renderer/components/svgs/bsm-icon.component.tsx b/src/renderer/components/svgs/bsm-icon.component.tsx index fde8d8f4..98f8904f 100644 --- a/src/renderer/components/svgs/bsm-icon.component.tsx +++ b/src/renderer/components/svgs/bsm-icon.component.tsx @@ -12,7 +12,7 @@ import { FranceIcon } from "./flags/france-icon.component"; import { SpainIcon } from "./flags/spain-icon.component"; import { ItalyIcon } from "./flags/italy-icon.component"; import { UsaIcon } from "./flags/usa-icon.component"; -import { UkIcon } from "./flags/uk-icon.component"; +import { UkraineIcon } from "./flags/ukraine-icon.component"; import { TaskIcon } from "./icons/task-icon.component"; import { CopyIcon } from "./icons/copy-icon.component"; import { SteamIcon } from "./icons/steam-icon.component"; @@ -70,10 +70,12 @@ import { AddFileIcon } from "./icons/add-file-icon.component"; import { CancelIcon } from "./icons/cancel-icon.component"; import { WarningIcon } from "./icons/warning-icon.component"; import { ArrowUpwardIcon } from "./icons/arrow-upward-icon.component"; +import { UkIcon } from "./flags/uk-icon.component"; +import { PhilippineIcon } from "./flags/philippine-icon.component"; +export type BsmIconType = SongDetailDiffCharactertistic | ("settings" | "trash" | "favorite" | "folder" | "bsNote" | "check" | "three-dots" | "twitch" | "eye" | "play" | "checkCircleIcon" | "discord" | "info" | "eye-cross" | "terminal" | "desktop" | "oculus" | "add" | "cross" | "task" | "github" | "close" | "thumbUpFill" | "timerFill" | "pause" | "twitter" | "sync" | "chevron-top" | "copy" | "steam" | "edit" | "export" | "patreon" | "search" | "bsMapDifficulty" | "link" | "unlink" | "download" | "filter" | "mee6" | "volume-up" | "volume-off" | "volume-down" | "shortcut" | "backup-restore" | "web-site" | "clean" | "browse" | "add-file" | "arrow-upward" | "cancel" | "warning" | "fr-FR-flag" | "es-ES-flag" | "it-IT-flag" | "en-US-flag" | "en-EN-flag" | "de-DE-flag" | "ru-RU-flag" | "zh-CN-flag" | "zh-TW-flag" | "ja-JP-flag" | "ko-KR-flag" | "pt-BR-flag" | "uk-UA-flag" | "tl-PH-flag" | "null" ); -export type BsmIconType = SongDetailDiffCharactertistic | ("settings" | "trash" | "favorite" | "folder" | "bsNote" | "check" | "three-dots" | "twitch" | "eye" | "play" | "checkCircleIcon" | "discord" | "info" | "eye-cross" | "terminal" | "desktop" | "oculus" | "add" | "cross" | "task" | "github" | "close" | "thumbUpFill" | "timerFill" | "pause" | "twitter" | "sync" | "chevron-top" | "copy" | "steam" | "edit" | "export" | "patreon" | "search" | "bsMapDifficulty" | "link" | "unlink" | "download" | "filter" | "mee6" | "volume-up" | "volume-off" | "volume-down" | "shortcut" | "backup-restore" | "web-site" | "clean" | "browse" | "add-file" | "arrow-upward" | "cancel" | "warning" | "fr-FR-flag" | "es-ES-flag" | "it-IT-flag" | "en-US-flag" | "en-EN-flag" | "de-DE-flag" | "ru-RU-flag" | "zh-CN-flag" | "zh-TW-flag" | "ja-JP-flag" | "ko-KR-flag" | "pt-BR-flag" | "null" ); export const BsmIcon = memo(({ className, icon, style }: { className?: string; icon: BsmIconType; style?: CSSProperties }) => { // TODO : Very ugly very messy, need to find a better way to do this @@ -146,6 +148,12 @@ export const BsmIcon = memo(({ className, icon, style }: { className?: string; i if (icon === "pt-BR-flag"){ return ; } + if (icon === "uk-UA-flag"){ + return ; + } + if (icon === "tl-PH-flag") { + return ; + } if (icon === "task") { return ; diff --git a/src/renderer/components/svgs/flags/philippine-icon.component.tsx b/src/renderer/components/svgs/flags/philippine-icon.component.tsx new file mode 100644 index 00000000..e8c02b66 --- /dev/null +++ b/src/renderer/components/svgs/flags/philippine-icon.component.tsx @@ -0,0 +1,14 @@ +import { createSvgIcon } from "../svg-icon.type"; + +export const PhilippineIcon = createSvgIcon((props, ref) => { + return ( + + + + + + + + + ); +}); diff --git a/src/renderer/components/svgs/flags/ukraine-icon.component.tsx b/src/renderer/components/svgs/flags/ukraine-icon.component.tsx new file mode 100644 index 00000000..517ed36a --- /dev/null +++ b/src/renderer/components/svgs/flags/ukraine-icon.component.tsx @@ -0,0 +1,14 @@ +import { createSvgIcon } from "../svg-icon.type"; + +// Uploaded from: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools + +export const UkraineIcon = createSvgIcon((props, ref) => { + return ( + + + + + + + ); +}) diff --git a/src/renderer/components/version-viewer/slides/mods/mods-slide.component.tsx b/src/renderer/components/version-viewer/slides/mods/mods-slide.component.tsx index 72bfd32e..d8ac7b6b 100644 --- a/src/renderer/components/version-viewer/slides/mods/mods-slide.component.tsx +++ b/src/renderer/components/version-viewer/slides/mods/mods-slide.component.tsx @@ -35,7 +35,7 @@ type Props = { version: BSVersion; isActive?: boolean, onDisclamerDecline: () => export const ModsSlide = forwardRef(({ version, isActive, onDisclamerDecline }, forwaredRef) => { const ACCEPTED_DISCLAIMER_KEY = "accepted-mods-disclaimer"; - const { text: t } = useTranslationV2(); + const { text: t, element: te } = useTranslationV2(); const modsManager = useService(BsModsManagerService); const configService = useService(ConfigurationService); @@ -189,7 +189,7 @@ export const ModsSlide = forwardRef(({ version, isActive, o setModsSelected(() => []); } - const getAcceptDisclaimerKey = async () => { + const ensureDisclaimerAccepted = async (): Promise => { if (configService.get(ACCEPTED_DISCLAIMER_KEY)) { return true; } @@ -228,17 +228,16 @@ export const ModsSlide = forwardRef(({ version, isActive, o return noop(); } - getAcceptDisclaimerKey() - .then(async (canLoad) => { - if (!canLoad) { - return onDisclamerDecline?.(); - } + ensureDisclaimerAccepted().then(async canLoad => { + if (!canLoad) { + return onDisclamerDecline?.(); + } - const status = await modsManager.getModsGridStatus(); - setGridStatus(status); + const status = await modsManager.getModsGridStatus(); + setGridStatus(() => status); - loadMods(); - }); + loadMods(); + }); return () => { setMoreInfoMod(null); @@ -271,11 +270,9 @@ export const ModsSlide = forwardRef(({ version, isActive, o const renderStatus = () => { if (gridStatus === ModsGridStatus.BEATMODS_DOWN) { - const [ textStart, textEnd ] = t("pages.version-viewer.mods.status.beatmods-down") - .split("{links}"); return - {textStart} + {te("pages.version-viewer.mods.status.beatmods-down", {links: (<> Discord @@ -283,7 +280,7 @@ export const ModsSlide = forwardRef(({ version, isActive, o GitHub - {textEnd} + )})} } diff --git a/src/renderer/config/default-configuration.config.ts b/src/renderer/config/default-configuration.config.ts index e2c2bd90..012b3adb 100644 --- a/src/renderer/config/default-configuration.config.ts +++ b/src/renderer/config/default-configuration.config.ts @@ -25,7 +25,7 @@ export const defaultConfiguration: { "second-color": "#ff4444", theme: "os", language: window.navigator.language.length <= 2 ? `${window.navigator.language}-${window.navigator.language.toLocaleUpperCase()}` : window.navigator.language, - supported_languages: ["en-US", "en-EN", "fr-FR", "es-ES", "it-IT", "de-DE", "ru-RU", "zh-CN", "zh-TW", "ja-JP", "ko-KR", "pt-BR"], + supported_languages: ["en-US", "en-EN", "fr-FR", "es-ES", "it-IT", "de-DE", "ru-RU", "zh-CN", "zh-TW", "ja-JP", "ko-KR", "pt-BR", "uk-UA", "tl-PH"], default_mods: ["SongCore", "WhyIsThereNoLeaderboard", "BeatSaverDownloader", "BeatSaverVoting", "PlaylistManager"], "default-shared-folders": [ window.electron.path.join("Beat Saber_Data", "CustomLevels"), diff --git a/src/renderer/pages/settings-page.component.tsx b/src/renderer/pages/settings-page.component.tsx index 7446ce35..87a3a79f 100644 --- a/src/renderer/pages/settings-page.component.tsx +++ b/src/renderer/pages/settings-page.component.tsx @@ -508,7 +508,8 @@ export function SettingsPage() {
- + +
@@ -519,7 +520,6 @@ export function SettingsPage() {
-
diff --git a/src/renderer/services/bs-mods-manager.service.ts b/src/renderer/services/bs-mods-manager.service.ts index 19ee418d..b1d5cf16 100644 --- a/src/renderer/services/bs-mods-manager.service.ts +++ b/src/renderer/services/bs-mods-manager.service.ts @@ -9,6 +9,7 @@ import { ProgressionInterface } from "shared/models/progress-bar"; import { BbmFullMod, BbmModVersion } from "shared/models/mods/mod.interface"; import { logRenderError } from "renderer"; import { ModsGridStatus } from "shared/models/mods/mod-ipc.model"; +import { LinuxService } from "./linux.service"; export class BsModsManagerService { private static instance: BsModsManagerService; @@ -18,6 +19,7 @@ export class BsModsManagerService { private readonly ipcService: IpcService; private readonly progressBar: ProgressBarService; private readonly notifications: NotificationService; + private readonly linux: LinuxService public readonly isUninstalling$: BehaviorSubject = new BehaviorSubject(false); @@ -32,6 +34,7 @@ export class BsModsManagerService { this.ipcService = IpcService.getInstance(); this.progressBar = ProgressBarService.getInstance(); this.notifications = NotificationService.getInstance(); + this.linux = LinuxService.getInstance(); } public getAvailableMods(version: BSVersion): Observable { @@ -206,11 +209,21 @@ export class BsModsManagerService { } public async getModsGridStatus(): Promise { - return lastValueFrom(this.ipcService.sendV2("bs-mods.get-mods-grid-status")) - .catch(error => { - logRenderError(error); - return ModsGridStatus.UNKNOWN; - }); + + if(window.electron.platform === "linux"){ + const winePrefix = await lastValueFrom(this.linux.getWinePrefixPath()); + if(!winePrefix){ + logRenderError("Could not find BSManager WINEPREFIX path"); + return ModsGridStatus.NO_WINEPREFIX; + } + } + + const beatModsUp = await lastValueFrom(this.ipcService.sendV2("bs-mods.beatmods-up")).catch(() => false); + if (!beatModsUp) { + return ModsGridStatus.BEATMODS_DOWN; + } + + return ModsGridStatus.OK; } } diff --git a/src/renderer/services/linux.service.ts b/src/renderer/services/linux.service.ts new file mode 100644 index 00000000..f08829a4 --- /dev/null +++ b/src/renderer/services/linux.service.ts @@ -0,0 +1,26 @@ +import { Observable } from "rxjs"; +import { IpcService } from "./ipc.service"; + +export class LinuxService { + + private static instance: LinuxService; + + public static getInstance(): LinuxService { + if (!LinuxService.instance) { + LinuxService.instance = new LinuxService(); + } + return LinuxService.instance; + } + + private readonly ipc: IpcService; + + private constructor() { + this.ipc = IpcService.getInstance(); + } + + public getWinePrefixPath(): Observable { + return this.ipc.sendV2("linux.get-wine-prefix-path"); + } + + +} diff --git a/src/shared/models/ipc/ipc-routes.ts b/src/shared/models/ipc/ipc-routes.ts index 70f2a6ba..ed417586 100644 --- a/src/shared/models/ipc/ipc-routes.ts +++ b/src/shared/models/ipc/ipc-routes.ts @@ -21,7 +21,6 @@ import { LocalBPList, LocalBPListsDetails } from "../playlists/local-playlist.mo import { StaticConfigGetIpcRequestResponse, StaticConfigKeys, StaticConfigSetIpcRequest } from "main/services/static-configuration.service"; import { BbmFullMod, BbmModVersion, ExternalMod } from "../mods/mod.interface"; import { OculusDownloadInfo } from "main/services/bs-version-download/bs-oculus-downloader.service"; -import { ModsGridStatus } from "../mods/mod-ipc.model"; export type IpcReplier = (data: Observable) => void; @@ -89,7 +88,7 @@ export interface IpcChannelMapping { "bs-mods.install-mods": { request: { mods: BbmFullMod[]; version: BSVersion }, response: Progression }; "bs-mods.uninstall-mods": { request: { mods: BbmFullMod[]; version: BSVersion }, response: Progression }; "bs-mods.uninstall-all-mods": { request: BSVersion, response: Progression }; - "bs-mods.get-mods-grid-status": { request: BSVersion, response: ModsGridStatus }; + "bs-mods.beatmods-up": { request: void, response: boolean }; /* ** bs-playlist-ipcs ** */ "one-click-install-playlist": { request: string, response: Progression }; @@ -161,6 +160,7 @@ export interface IpcChannelMapping { /* ** linux.ipcs ** */ "linux.verify-proton-folder": { request: void, response: boolean }; + "linux.get-wine-prefix-path": { request: void, response: string }; /* ** oculus.ipcs ** */ "is-oculus-sideloaded-apps-enabled": { request: void, response: boolean };