From f4fb6cfafd2f2a6448484880d2b767a376f8f93d Mon Sep 17 00:00:00 2001 From: HighError Date: Thu, 30 Jan 2025 15:14:05 +0200 Subject: [PATCH 1/7] Added some strings and icon --- assets/jsons/translations/de.json | 16 +- assets/jsons/translations/en.json | 63 +- assets/jsons/translations/es.json | 59 +- assets/jsons/translations/fr.json | 34 +- assets/jsons/translations/it.json | 173 +-- assets/jsons/translations/ja.json | 16 +- assets/jsons/translations/ko.json | 60 +- assets/jsons/translations/pt-br.json | 63 +- assets/jsons/translations/ru.json | 16 +- assets/jsons/translations/uk.json | 1274 +++++++++++++++++ assets/jsons/translations/zh-tw.json | 4 +- assets/jsons/translations/zh.json | 16 +- package-lock.json | 4 +- .../components/svgs/bsm-icon.component.tsx | 6 +- .../flags/ukraine-icon.component copy.tsx | 12 + .../config/default-configuration.config.ts | 2 +- 16 files changed, 1441 insertions(+), 377 deletions(-) create mode 100644 assets/jsons/translations/uk.json create mode 100644 src/renderer/components/svgs/flags/ukraine-icon.component copy.tsx diff --git a/assets/jsons/translations/de.json b/assets/jsons/translations/de.json index c7eadb2d..4ae6518e 100644 --- a/assets/jsons/translations/de.json +++ b/assets/jsons/translations/de.json @@ -246,6 +246,7 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", "translated": { "en-EN": "Englisch, Vereinigtes Königreich", "en-US": "Englisch, USA", @@ -258,7 +259,8 @@ "zh-CN": "Vereinfachtes Chinesisch", "zh-TW": "Traditionelles Chinesisch", "ja-JP": "Japanisch", - "ko-KR": "Koreanisch" + "ko-KR": "Koreanisch", + "uk-UA": "Ukrainisch" } } }, @@ -946,7 +948,7 @@ "maps": { "map-filter-panel": { "duration": "Länge", - "nps" : "Noten pro Sekunde", + "nps": "Noten pro Sekunde", "njs": "Notensprunggeschwindigkeit", "tags": "Stichwörter", "specificities": "Allgemein", @@ -1027,11 +1029,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 3054223e..cdfb4cb7 100644 --- a/assets/jsons/translations/en.json +++ b/assets/jsons/translations/en.json @@ -246,6 +246,7 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", "translated": { "en-EN": "English, United Kingdom", "en-US": "English, USA", @@ -258,7 +259,8 @@ "zh-CN": "Chinese (Simplified)", "zh-TW": "Chinese (Traditional)", "ja-JP": "Japanese", - "ko-KR": "Korean" + "ko-KR": "Korean", + "uk-UA": "Ukrainian" } } }, @@ -820,7 +822,7 @@ } } }, - "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.", @@ -829,7 +831,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.", @@ -1265,57 +1267,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 c7681628..202a7577 100644 --- a/assets/jsons/translations/es.json +++ b/assets/jsons/translations/es.json @@ -246,6 +246,7 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", "translated": { "en-EN": "Inglés, Reino Unido", "en-US": "Inglés, Estados Unidos", @@ -258,7 +259,8 @@ "zh-CN": "Chino simplificado", "zh-TW": "Chino tradicional", "ja-JP": "Japonés", - "ko-KR": "Coreano" + "ko-KR": "Coreano", + "uk-UA": "Ucraniano" } } }, @@ -1270,57 +1272,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 d065f6d5..e7458889 100644 --- a/assets/jsons/translations/fr.json +++ b/assets/jsons/translations/fr.json @@ -246,6 +246,7 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", "translated": { "en-EN": "Anglais, Royaume-Uni", "en-US": "Anglais, États-Unis", @@ -258,7 +259,8 @@ "zh-CN": "Chinois simplifié", "zh-TW": "Chinois traditionnel", "ja-JP": "Japonais", - "ko-KR": "Coréen" + "ko-KR": "Coréen", + "uk-UA": "Ukrainien" } } }, @@ -664,7 +666,6 @@ "title": "L'ajout du dossier partagé a échoué", "msg": "Vous ne pouvez pas ajouter \"{folder}\" aux dossiers partagés." } - }, "create-launch-shortcut": { "success": { @@ -947,7 +948,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", @@ -1028,12 +1029,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": { @@ -1210,15 +1211,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", @@ -1269,7 +1270,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 0bb01e70..33a81291 100644 --- a/assets/jsons/translations/it.json +++ b/assets/jsons/translations/it.json @@ -246,6 +246,7 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", "translated": { "en-EN": "Inglese, Regno Unito", "en-US": "Inglese, Stati Uniti d'America", @@ -258,7 +259,8 @@ "zh-CN": "Cinese (Semplificato)", "zh-TW": "Cinese (Tradizionale)", "ja-JP": "Giapponese", - "ko-KR": "Coreano" + "ko-KR": "Coreano", + "uk-UA": "Ucraino" } } }, @@ -820,7 +822,7 @@ } } }, - "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}.", @@ -829,7 +831,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.", @@ -878,65 +880,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": { @@ -1266,57 +1268,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 32e8c7ed..2364060a 100644 --- a/assets/jsons/translations/ja.json +++ b/assets/jsons/translations/ja.json @@ -246,6 +246,7 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", "translated": { "en-EN": "イギリス英語", "en-US": "アメリカ英語", @@ -258,7 +259,8 @@ "zh-CN": "簡体字中国", "zh-TW": "繁体字中国", "ja-JP": "日本語", - "ko-KR": "韓国語" + "ko-KR": "韓国語", + "uk-UA": "ウクライナ語" } } }, @@ -946,7 +948,7 @@ "maps": { "map-filter-panel": { "duration": "尺", - "nps" : "秒間ノート数", + "nps": "秒間ノート数", "njs": "ノートジャンプ速度", "tags": "タグ", "specificities": "一般", @@ -1027,11 +1029,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 035fefed..9db92f87 100644 --- a/assets/jsons/translations/ko.json +++ b/assets/jsons/translations/ko.json @@ -162,7 +162,6 @@ "dont-remind-me": "다시는 알리지 않기", "update": "업데이트" } - }, "drop-zone": { "text": "모드를 가져오기", @@ -247,6 +246,7 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", "translated": { "en-EN": "영어(영국)", "en-US": "영어(미국)", @@ -259,7 +259,8 @@ "zh-CN": "중국어 (간체)", "zh-TW": "중국어 (번체)", "ja-JP": "일본어", - "ko-KR": "한국어" + "ko-KR": "한국어", + "uk-UA": "우크라이나어" } } }, @@ -1265,57 +1266,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 db3447f9..b352bce4 100644 --- a/assets/jsons/translations/pt-br.json +++ b/assets/jsons/translations/pt-br.json @@ -246,6 +246,7 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", "translated": { "en-EN": "Inglês, Reino Unido", "en-US": "Inglês, Estados Unidos", @@ -258,7 +259,8 @@ "zh-CN": "Chinês (Simplificado)", "zh-TW": "Chinês (Tradicional)", "ja-JP": "Japonês", - "ko-KR": "Coreano" + "ko-KR": "Coreano", + "uk-UA": "Ucraniano" } } }, @@ -820,7 +822,7 @@ } } }, - "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}.", @@ -829,7 +831,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.", @@ -1265,57 +1267,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 4a4500a1..2123fe93 100644 --- a/assets/jsons/translations/ru.json +++ b/assets/jsons/translations/ru.json @@ -246,6 +246,7 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", "translated": { "en-EN": "Английский, Великобритания", "en-US": "Английский, США", @@ -258,7 +259,8 @@ "zh-CN": "Китайский (упрощенный)", "zh-TW": "Китайский (традиционный)", "ja-JP": "Японский", - "ko-KR": "Корейский" + "ko-KR": "Корейский", + "uk-UA": "Украинский" } } }, @@ -945,7 +947,7 @@ "maps": { "map-filter-panel": { "duration": "Длительность", - "nps" : "Нот в Секунду", + "nps": "Нот в Секунду", "njs": "Скорость прыжка нот", "tags": "тэги", "specificities": "основное", @@ -1026,11 +1028,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/uk.json b/assets/jsons/translations/uk.json new file mode 100644 index 00000000..11d48291 --- /dev/null +++ b/assets/jsons/translations/uk.json @@ -0,0 +1,1274 @@ +{ + "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 поки що немає модів", + "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": "Українська", + "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": "Українська" + } + } + }, + "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": "🚨 Error", + "warning": "⚠️ Warning", + "success": "🎉 Success" + }, + "common": { + "msg": { + "error-occurred": "An error has occurred" + } + }, + "shared": { + "errors": { + "titles": { + "operation-running": "Operation running", + "no-internet": "No internet", + "file-not-supported": "File not supported" + }, + "msg": { + "operation-running": "Wait for the current operation to finish, then try again.", + "no-internet": "Check your connection and try again.", + "file-not-supported": "Only {types} files are supported." + } + } + }, + "bs-download": { + "success": { + "titles": { + "download-success": "Download complete", + "verification-finished": "Verification complete" + } + }, + "steam-download": { + "warnings": { + "msg": { + "ManifestChecksum": "The previously downloaded manifest does not match the new 🤔", + "ConnectionTimeout": "Your internet connection seems unstable 🥶", + "ConnectionLost": "The connection has been lost, try again...", + "ConnectionError": "Unable to connect to Steam, try again...", + "Unknown": "Something strange has happened 🤔 Your connection is probably unstable." + } + }, + "errors": { + "msg": { + "401": "Steam doesn't seem to want to let us download Beat Saber 😢", + "404": "Unable to contact Steam servers.", + "ExeNotFoundWindows": "\"DepotDownloader.exe\" is missing. Please check if the executable is quarantined by your anti-virus.", + "ExeNotFoundLinux": "\"DepotDownloader\" executable is missing.", + "Password": "Password is invalid.", + "InvalidCredentials": "Invalid login credentials, unapproved connection, or too many login attempts.", + "NoManifest": "No manifest was found", + "DirectoryCreate": "Unable to install the necessary folders.", + "NotAvailableApp": "Are you trying to download Beat Saber when you don't have it? 🤣", + "DepotNotFound": "Unable to download Beat Saber 😥 try again later 😕", + "NotCompleted": "The download could not complete ¯\\_(ツ)_/¯", + "InvalidManifest": "Unable to download Beat Saber 😥 try again later 😕", + "NoValidKey": "Unable to download Beat Saber 😥 try again later 😕", + "NoManifestCode": "Unable to download Beat Saber 😥 try again later 😕", + "Unknown": "An unknown error occurred ¯\\_(ツ)_/¯", + "NoServer": "Unable to contact Steam servers.", + "NotAllowed": "Apparently you are not allowed to download Beat Saber 🥱", + "ConnectionTimeout": "Cannot connect to Steam 😕", + "SteamLib": "If you have this error, report the bug on GitHub with the logs pls.", + "ConnectionError": "Unable to connect to Steam after 10 tries 🤯", + "LicenceError": "Unable to get the list of licenses.", + "RateLimitExceeded": "You've tried too many times, wait a while and try again later.", + "TokenRejected": "Your login token has been rejected 😕 Please try again.", + "AccessDenied": "Access to Steam has been denied." + } + } + }, + "oculus-download": { + "errors": { + "msg": { + "DOWNLOAD_MANIFEST_FAILED": "Unable to download the manifest for this version; your login token may be invalid.", + "MANIFEST_FILE_NOT_FOUND": "Unable to find the manifest for this version.", + "PARSE_MANIFEST_FILE_FAILED": "An error occurred while reading the manifest.", + "ALREADY_DOWNLOADING": "A version is already being downloaded.", + "UNABLE_TO_GET_MANIFEST": "Unable to obtain the manifest required for download.", + "VERIFY_INTEGRITY_FAILED": "An error occurred during file verification.", + "SOME_FILES_FAILED_TO_DOWNLOAD": "Some files failed to download.", + "META_LOGIN_TIMED_OUT": "The login token took too long to retrieve.", + "META_LOGIN_WINDOW_CLOSED_BY_USER": "The Meta login window was closed.", + "NO_META_AUTH_TOKEN": "Unable to retrieve the Meta login token required for download.", + "UNKNOWN_ERROR": "An unknown error occurred." + } + } + } + }, + "bs-import-version": { + "success": { + "start-import": { + "title": "Import in progress 👌", + "desc": "The import may take several minutes depending on your configuration." + }, + "imported": { + "title": "Imported version 🎉" + } + }, + "errors": { + "import-error": { + "desc": "Check that the selected folder is a Beat Saber installation." + } + } + }, + "settings": { + "move-folder": { + "success": { + "titles": { + "transfer-started": "Transfer in progress", + "transfer-finished": "Transfer complete" + }, + "descs": { + "transfer-started": "The transfer has started and may take several minutes depending on your configuration." + } + }, + "errors": { + "titles": { + "transfer-failed": "Transfer failed 😕" + }, + "descs": { + "COPY_TO_SUBPATH": "The destination folder cannot be a subfolder of the source folder.", + "restore-linked-folders": "An error occurred while restoring shared folders. You can still manually restore them via the 'Shared Folders' menu on the versions page." + } + } + }, + "steam": { + "success": { + "titles": { + "logout": "Disconnected from Steam." + } + } + }, + "additional-content": { + "deep-link": { + "select-all": "Select all", + "activation": { + "success": { + "title": "OneClick activated!", + "description": "OneClick installations have been activated." + }, + "error": { + "description": "Unable to activate OneClick installations." + } + }, + "deactivation": { + "success": { + "title": "OneClick deactivated!", + "description": "OneClick installations have been deactivated." + }, + "error": { + "description": "An unknown error occurred." + } + }, + "check-all-enabled": { + "title": "OneClick Disabled", + "description": "One or more OneClick installations are disabled. Go to settings to enable them.", + "actions": { + "settings": "Settings", + "not-remind": "Don't remind me" + } + } + } + } + }, + "bs-launch": { + "success": { + "titles": { + "BS_LAUNCHING": "Launching...🚀", + "STEAM_LAUNCHING": "Steam is launching!", + "SKIPPING_STEAM_LAUNCH": "Skipping Steam launch" + }, + "msg": { + "BS_LAUNCHING": "Don't forget to warm up 😉", + "STEAM_LAUNCHING": "Beat Saber will automatically launch after Steam.", + "SKIPPING_STEAM_LAUNCH": "I hope you know what you're doing :)" + } + }, + "errors": { + "titles": { + "UNKNOWN_ERROR": "Unable to launch", + "STEAM_NOT_RUNNING": "Steam is not running", + "OCULUS_NOT_RUNNING": "Oculus is not running", + "BS_ALREADY_RUNNING": "Beat Saber already running", + "EXE_NOT_FINDED": "Missing files", + "PROTON_NOT_SET": "Proton folder not set", + "PROTON_NOT_FOUND": "Proton binary not found", + "EXIT": "Abrupt stop", + "OCULUS_LIB_NOT_FOUND": "Oculus library not found", + "ORIGINAL_OCULUS_NOT_INSTALLED": "Original Oculus version not found" + }, + "msg": { + "UNKNOWN_ERROR": "An unknown error has occurred.", + "STEAM_NOT_RUNNING": "Steam must be running to launch BeatSaber.", + "OCULUS_NOT_RUNNING": "Oculus must be running to launch BeatSaber.", + "BS_ALREADY_RUNNING": "Close BeatSaber before launching it again.", + "EXE_NOT_FINDED": "Some files seem to be missing, try to verify the files.", + "EXIT": "BeatSaber stopped abruptly, tries to check the files.", + "OCULUS_LIB_NOT_FOUND": "Check that the Oculus application is properly installed, and that the libraries are correctly defined in Oculus.", + "PROTON_NOT_SET": "Set the Proton path in settings.", + "PROTON_NOT_FOUND": "Set the Proton path in settings.", + "ORIGINAL_OCULUS_NOT_INSTALLED": "Beat Saber must be installed from the Oculus app before opening." + }, + "actions": { + "STEAM_NOT_RUNNING": "Launch Steam" + } + } + }, + "steam": { + "steam-launching": { + "title": "Steam is launching!", + "description": "Beat Saber will automatically launch after Steam." + } + }, + "custom-version": { + "errors": { + "titles": { + "CantEditSteam": "Unable to edit", + "CantRename": "Renaming impossible", + "VersionAlreadExist": "This version already exists", + "CantClone": "Cloning impossible", + "UnknownError": "An unknown error occurred" + }, + "msg": { + "CantEditSteam": "You can't edit the Steam version. You can clone it though." + } + }, + "success": { + "titles": { + "CloningFinished": "Cloning complete 🎉" + } + } + }, + "mods": { + "install-mods": { + "titles": { + "success": "Mods installed 🎉", + "warning": "Mods installed 🤔" + }, + "msg": { + "success": "All mods have been installed.", + "warning": "One or more mods could not be installed.", + "errors": { + "no-mods": "No mods to install.", + "cannot-install-bsipa": "BSIPA installation failed 😨" + } + } + }, + "uninstall-mod": { + "titles": { + "success": "Mod uninstalled 🎉" + }, + "msg": { + "errors": { + "no-mods": "This mod isn't installed 😑" + } + } + }, + "uninstall-all-mods": { + "titles": { + "success": "Mods uninstalled 🎉" + }, + "msg": { + "success": "All mods have been uninstalled.", + "errors": { + "no-mods": "No mods are installed in this version 😑" + } + } + }, + "import-mod": { + "titles": { + "success": "Mods import completed", + "error": "An error occurred during the mods import" + }, + "msgs": { + "success": "Mods successfully imported.", + "some-success": "Some mods were successfully imported.", + "no-dlls": "The file(s) do not contain any \"dll\" files." + } + } + }, + "maps": { + "one-click-install": { + "success": "Map installation complete", + "error": "An error occurred while installing the map" + }, + "no-duplicates-maps": { + "title": "No Duplicates", + "msg": "No maps were deleted" + }, + "duplicates-maps-deleted": { + "title": "Duplicates Deleted", + "msg": "Duplicates were deleted" + }, + "import-map": { + "titles": { + "success": "Maps import completed", + "error": "An error occurred during the maps import" + }, + "msgs": { + "success": "Maps successfully imported.", + "some-success": "Some maps were successfully imported.", + "only-accept-zip": "Only zip files are supported.", + "invalid-zip": "The zip file(s) do not contain any maps.", + "unknown": "An unknown error occurred." + } + } + }, + "playlists": { + "one-click-install": { + "success": "Playlist installation complete", + "error": "An error occurred while installing the playlist" + } + }, + "models": { + "one-click-install": { + "success": "Model installation complete", + "error": "An error occurred while installing the model" + } + }, + "shared-folder": { + "info": { + "userdata-backup-created": { + "title": "Backup created", + "msg": "Sharing the 'UserData' folder can generate errors, in case of problems unlink the folder to restore the backup" + } + }, + "linking-error": { + "title": "Error while linking folder", + "msg": { + "EPERM": "BSManager does not have the necessary permissions to link the folder.", + "EACCES": "BSManager does not have the necessary permissions to link the folder.", + "ENOSPC": "The disk is full, make some space and try again.", + "LinkingNotSupported": "Folder linking is not supported on this file system.", + "UNKNOWN_ERROR": "An unknown error has occurred while linking the folder." + } + }, + "adding-error": { + "title": "Adding shared folder failed", + "msg": "You can't add \"{folder}\" to shared folders." + } + }, + "create-launch-shortcut": { + "success": { + "title": "Shortcut created", + "msg": "The shortcut has been created on the desktop.", + "msg-steam": "The shortcut has been created in the Steam library." + }, + "error": { + "msg": "An error occurred while creating the shortcut." + } + }, + "bs-version-oudated": { + "title": "Version Outdated", + "msg": "This Beat Saber version is outdated, use the recommended version to enjoy the latest features and bugfixes", + "actions": { + "do-not-remind": "Do not remind me", + "ok": "Ok" + } + } + }, + "modals": { + "misc": { + "remember-my-choice": "Remember my choice" + }, + "choose-store": { + "title": "Which platform?", + "body": "Select the platform from which you wish to download Beat Saber.", + "set-in-settings": "Set the default platform in settings" + }, + "guard": { + "title": "Steam Guard", + "inputs": { + "guard-code": { + "label": "Guard Code", + "placeholder": "Enter your Guard code" + } + }, + "buttons": { + "submit": "Login" + } + }, + "steam-login": { + "title": "Steam Login", + "inputs": { + "username": { + "label": "Sign in with account name", + "placeholder": "Enter your account name" + }, + "password": { + "label": "Password", + "placeholder": "Enter your password", + "max-length-warning": "The password exceeds 64 characters! If the password is invalid, try to enter only its first 64 characters." + }, + "qr": { + "label": "Or with a QR code", + "note": { + "use-the": "Use the ", + "steam-mobile-app": "Steam Mobile App", + "to-connect-with-qr": "to sign in via QR code." + } + }, + "stay": "Remember me" + }, + "why-credentials": "Why are my credentials necessary?", + "need-help-to-connect": "I need help to access my account!", + "buttons": { + "submit": "Sign in" + } + }, + "steam-auth-approve": { + "title": "Waiting for confirmation", + "protected-by-mobile-auth": "Account protected by mobile authenticator.", + "use-steam-app-to-approve": "Use the Steam mobile app to confirm the connection...", + "not-access-to-steam-app": "I don't have access to the Steam mobile app" + }, + "steam-credentials": { + "title": "Steam Credentials", + "p-1": "Your Steam credentials are only required to download versions of Beat Saber, we use DepotDownloader to achieve this which requires your Steam credentials to verify that you own the game within your library before allowing you to retrieve the game files, your credentials are not stored or saved and are passed directly to DepotDownloader. However, if you don't want to do that, you can follow this tutorial instead: ", + "p-2": "Afterwards you can click on the gear icon in the top right corner and select \"Import a version\", then you can select the folder where Beat Saber was downloaded to. (If you followed the tutorial, you will have the right location)" + }, + "bs-import-version": { + "title": "Import a version", + "description": "Imports a version of Beat Saber to use with BSManager. This will copy the selected Beat Saber installation folder to the BSManager versions folder.", + "oculus-version": "Oculus Version", + "oculus-version-tooltip": "Check if it's an Oculus version", + "buttons": { + "submit": "Import a version" + } + }, + "bs-uninstall": { + "title": "Uninstall", + "description": "Are you sure you want to uninstall Beat Saber {version}? You will have to download it again to play it.", + "buttons": { + "submit": "Uninstall" + } + }, + "install-folder": { + "title": "Installation folder", + "description": "Changing the default installation folder will result in moving all installed data to the new folder.", + "buttons": { + "submit": "Choose folder" + } + }, + "edit-version": { + "title": "Edit the version", + "buttons": { + "submit": "Edit" + } + }, + "clone-version": { + "title": "Clone version", + "description": "Cloning the version allows you to separate additional Beat Saber content between two versions.", + "inputs": { + "name": { + "label": "Name", + "placeholder": "Version name" + }, + "color": { + "label": "Color" + } + }, + "buttons": { + "submit": "Clone" + } + }, + "uninstall-mod": { + "title": "Uninstall", + "description": "Are you sure you want to uninstall {mod}? It could cause other installed mods to malfunction.", + "description-bsipa": "Are you sure you want to uninstall BSIPA? After that all installed mods will not work anymore." + }, + "uninstall-all-mods": { + "title": "Uninstalling mods", + "description": "Are you sure you want to uninstall all the mods from version {version}? This operation cannot be undone." + }, + "maps-actions": { + "delete-maps": { + "title": { + "single": "Delete this map?", + "multiple": "Delete maps?" + }, + "desc": { + "single": "Are you sure you want to delete the map {name}?", + "multiple": "Are you sure you want to delete all {nb} maps?" + }, + "info": { + "desc": { + "single": "This map is part of the shared maps", + "multiple": "These maps are part of the shared maps" + }, + "title": { + "single": "This map will also be removed from versions using shared maps", + "multiple": "These maps will also be removed from versions using shared maps" + } + } + } + }, + "link-contents": { + "title": "Link {contentType}", + "p-1": "Linking {contentType} allows sharing {contentType} between all versions with this feature enabled. Once linked, this version will benefit from shared {contentType}.", + "p-2": "In order to enjoy the linking feature, all your {itemsHtml} will be moved to the {sharedHtml} folder. After that, a symbolic link pointing to the shared {contentType} folder will replace your original {contentType} folder.", + "warning": "Please note that any changes affecting {contentType} will also affect all versions with this feature enabled.", + "what-is-a-symbolic-link": "What is a symbolic link?", + "i-need-help": "I need help", + "valid-btn": "Link {contentType}" + }, + "unlink-contents": { + "title": "Unlink {contentType}", + "p-1": "Be careful, unlinking {contentType} will disable the use of shared {contentType} for this version, until it is reenabled.", + "p-2": "In order to unlink your maps, the symbolic link pointing to the {sharedHtml} will be removed. After that, all maps in the shared folder will be copied to the {itemsHtml} folder of your Beat Saber version.", + "do-not-copy-contents": "Do not copy {contentType}", + "do-not-copy-contents-tip": "If enabled, {contentType} in the shared folder will not be copied to your Beat Saber version. As a result, no {contentType} will remain in your Beat Saber version after unlinking.", + "valid-btn": "Unlink {contentType}" + }, + "download-maps": { + "search-btn": "Search", + "loading-maps": "Loading maps...", + "no-maps-found": "No maps found", + "no-internet": "No internet" + }, + "mods-disclaimer": { + "title": "disclaimer", + "p-1": "By choosing to use mods, you understand that:", + "li-1": "You may experience problems that don't exist in the vanilla game. 99.9% of bugs, crashes, and lag are due to mods.", + "li-2": "Mods are subject to being broken by updates and that's normal - be patient and respectful when this happens, as modders are volunteers with real lives.", + "li-3": "Beat Games aren't purposefully trying to break mods. They wish to work on the codebase and sometimes this breaks mods, but they are not out to kill mods.", + "p-2": "Do not attack the game developers for issues related to mods, and vice versa - modders and game developers are two separate groups. Just don't be a jerk ok." + }, + "shared-folders": { + "title": "Shared Folders", + "description": "Link Beat Saber folders to synchronize their contents with shared folders in other versions. Note that deleting content will also be shared.", + "buttons": { + "add-folder": "Add Folder", + "link-folder": "Link Folder", + "unlink-folder": "Unlink Folder", + "link-all": "Link all", + "remove-from-the-list": "Remove from the list" + } + }, + "adding-shared-folder": { + "title": "Adding Shared Folder", + "description": "You might experience issues when linking the \"{folder}\" folder. Are you sure you want to add it?" + }, + "create-launch-shortcut": { + "title": "Create a shortcut", + "desc": "Creating a shortcut will allow you to start Beat Saber with the chosen options without going through BSManager.", + "launch-options": "Launch options", + "advanced-launch": "Advanced launch", + "valid-btn": "Create the shortcut", + "create-steam-shortcut": "Create a Steam shortcut", + "steam-shortcut-tippy": "If enabled, instead of creating a shortcut on the desktop, it will be created in Steam." + }, + "connect-to-meta": { + "title": "Connect to Meta", + "body": { + "token-needed": "Your Meta connection token is required to download Beat Saber.", + "need-cookie-enabled": "By logging into Meta, a login window will open and you can then start the login process. Please ensure to accept cookies, otherwise, we might not be able to retrieve your token to start the download.", + "enter-token-manually": "Enter my login token manually", + "enter-token-manually-tooltip": "This will allow you to enter your login token without going through Meta login." + }, + "stay": "Remember me", + "connect-to-meta": "Connect to Meta" + }, + "enable-oculus-sideloaded-apps": { + "title": "Enable Sideloading", + "info-1": "In order to launch Beat Saber, the ability to run sideloaded apps must be enabled. BSManager will request administrator rights to enable this feature automatically.", + "info-2": "The sideloaded apps feature allows launching games located outside your Oculus library folder.", + "info-3": "After sideloading is activated, the feature will remain active, and you will no longer be prompted to enable it.", + "i-want-to-do-it-myself": "I want to do it myself", + "understood": "Understood" + }, + "enter-meta-token": { + "title": "Oculus Token", + "body": { + "info-enter-token": "To download Beat Saber, your Oculus login token is required.", + "how-obtain-token": "How do I obtain my Oculus Token?", + "oculus-token": "Oculus Token", + "token-is-invalid": "The Token is invalid.", + "save-my-token": "Save my token", + "have-token-saved": "I already have a token saved", + "save-token-info": "This will save your token for easier reuse. You will need to create a password to encrypt your token for storage purposes. If you ever forget your password, you just need to provide your token again.", + "password": "Password", + "password-too-short": "Password too short", + "info-enter-password": "To download Beat Saber, your Oculus login token is required. Enter the password used to save your Oculus token.", + "info-disabled-btn-password": "The token decrypted with the provided password is invalid. Make sure the password is the same as the one used to save the token.", + "enter-oculus-token": "Enter an Oculus token" + }, + "valid-btn": "Validate" + }, + "launch-as-admin": { + "title": "Administrator Permissions", + "body": { + "info": "Steam has been detected as running with administrator permissions. To communicate with Steam, Beat Saber must also be launched as an administrator. Otherwise, Beat Saber might experience problems and close after launching.", + "info-2": "Launching Beat Saber in administrator mode will also give administrator rights to the installed mods. Therefore, it is recommended to restart Steam without administrator permissions.", + "info-3": "Note that it is advised against giving administrator rights to Steam, as this affects the installed games and mods, presenting a security risk." + }, + "launch-as-admin": "Launch as Administrator", + "not-remind-me": "Do not remind me" + }, + "ask-install-path": { + "title": "Installation folder", + "choose-folder-description": "Choose the folder that will contain all the content downloaded by BSManager. (versions, mods, maps, playlists, etc.)", + "default": "Default", + "default-tooltip": "Defaults to your home folder" + }, + "choose-proton-folder": { + "title": "Proton Folder", + "proton-folder-description": "On Linux, BSManager requires Proton to work. Choose the Proton installation folder to continue.", + "proton-folder-placeholder": "Proton installation folder", + "where-is-proton-installed": "Where is Proton installed?" + }, + "bs-version-outdated": { + "body": "The version {outdatedVersion} is outdated, and some mods or features may no longer work as expected. Please download the latest recommended version ({recommendedVersion}) of Beat Saber to enjoy the latest features and bugfixes." + } + }, + "maps": { + "map-filter-panel": { + "duration": "Duration", + "nps": "Notes Per Second", + "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": "By {songAutor}", + "mapped-by": "mapped by", + "delete": "Delete", + "preview": "Preview map", + "bsr-code": "BSR code", + "download": "Download map", + "downloading": "Downloading map", + "cancel-download": "Cancel download", + "hightlight-difficulty": "Highlight difficulty" + } + }, + "models": { + "types": { + "singular": { + "avatar": "avatar", + "saber": "saber", + "platform": "platform", + "bloq": "block" + }, + "plural": { + "avatar": "avatars", + "saber": "sabers", + "platform": "platforms", + "bloq": "blocks" + } + }, + "sorts": { + "name": "Name", + "date": "Date", + "author": "Author" + }, + "panel": { + "actions": { + "search": "Search a model", + "drop-down": { + "delete": "Delete models", + "export": "Export models" + }, + "link-models": "Link models", + "unlink-models": "Unlink models" + }, + "grid": { + "loading": "Loading models...", + "no-models": "No models", + "download-models": "Download models" + } + }, + "modals": { + "delete-model": { + "title": "Delete the model", + "desc": "Are you sure you want to delete the model {modelName}?", + "linked-annotation": "This model will be removed from all linked versions." + }, + "delete-models": { + "title": "Delete models", + "desc": "Are you sure you want to delete the {nb} models?", + "linked-annotation": "These models will be removed from all linked versions." + }, + "download-models": { + "search-btn": "Search", + "search-placeholder": "Search a model", + "search-tips": { + "header": { + "tag": "Tag", + "desc": "Description" + }, + "author-desc": "Show only models from the specified author.", + "hash-desc": "Show only models with the specified hash.", + "tag-desc": "Show only models with the specified tag.", + "name-desc": "Show only models with the specified name.", + "discordid-desc": "Show only models from the specified discord user.", + "status-desc": "Show only models with the specified status. (profile only, and only for the author)" + }, + "no-models": "No models found.", + "no-internet": "No internet connection.", + "error-occurred": "An error occurred, try again later." + } + }, + "notifications": { + "prevent-for-mods": { + "title": "Required mods", + "desc": "Make sure you've installed the necessary mods to use models in Beat Saber", + "go-to-mods": "Go to mods", + "not-remind": "Don't remind me" + }, + "export-success": { + "title": "Export completed 🎉" + } + } + }, + "beat-saver": { + "maps-sorts": { + "Latest": "Latest", + "Relevance": "Relevance", + "Rating": "Rating", + "Curated": "Curated" + } + }, + "auto-update": { + "checking": "Checking for updates", + "downloading": "Downloading updates" + }, + "bs-shortcut-launch": { + "beat-saber-launching": "Launching Beat Saber", + "launching": "Launching", + "open-bsmanager": "Open BSManager", + "status-text": { + "init": "Initializing...", + "success": { + "BS_LAUNCHING": "Launching Beat Saber...", + "STEAM_LAUNCHING": "Launching Steam...", + "STEAM_LAUNCHED": "Steam successfully launched!", + "UNABLE_TO_LAUNCH_STEAM": "Unable to launch Steam, forcing Beat Saber launch..." + } + } + }, + "drop-zone": { + "or-browse-files": "Or browse files" + }, + "playlist": { + "error-playlist-creation-title": "Error creating playlist", + "error-playlist-creation-desc": "An error occurred while creating the playlist.", + "playlist-created-title": "Playlist created", + "playlist-created-desc": "The playlist has been successfully created. You can now sync its maps!", + "download-playlist": "Download playlist", + "synchronize-playlist": "Synchronize playlist", + "synchronize-maps": "Synchronize maps", + "error-playlists-synchronization-title": "Error synchronizing playlists", + "error-playlists-synchronization-desc": "An error occurred while synchronizing playlists.", + "playlists-synchronized-title": "Playlists synchronized!", + "playlists-synchronized-desc": "Playlists and their maps have been downloaded.", + "playlists-export-error-title": "Error exporting playlists", + "playlists-export-error-desc": "An error occurred while exporting playlists.", + "playlists-exported-title": "Playlists exported!", + "playlists-exported-desc": "Playlists have been successfully exported.", + "playlists-with-maps-exported-desc": "Playlists and their maps have been successfully exported.", + "playlist-delete-error-title": "Error deleting playlist", + "playlist-delete-error-desc": "An error occurred while deleting the playlist.", + "playlists-deleted-title": "Playlists deleted!", + "playlists-deleted-desc": "Playlists have been successfully deleted.", + "edit-playlist": "Edit playlist", + "playlist-edit-error-title": "Error editing playlist", + "playlist-edit-error-desc": "An error occurred while editing the playlist.", + "playlist-edited-title": "Playlist edited!", + "playlist-edited-desc": "The playlist has been successfully modified. You can now sync its maps!", + "playlists-loading": "Loading playlists...", + "no-playlists": "No playlists", + "download-playlists": "Download playlists", + "created-by": "Created by", + "stop-download": "Stop download", + "cancel-download": "Cancel download", + "open-file": "Open file", + "delete-playlist-ask": "Delete playlist?", + "delete-playlists-ask": "Delete playlists?", + "delete-playlist-desc": "Are you sure you want to delete the playlist \"{playlistTitle}\"?", + "delete-playlists-desc": "Are you sure you want to delete {nb} playlists?", + "delete-maps": "Delete maps", + "delete-playlist-maps-tip": "If enabled, all maps in the playlist will be deleted", + "delete-playlists-maps-tip": "If enabled, all maps in the playlists will be deleted", + "export-playlist-ask": "Export playlist?", + "export-playlists-ask": "Export playlists?", + "export-playlist-desc": "Are you sure you want to export the playlist \"{playlistTitle}\"?", + "export-playlists-desc": "Are you sure you want to export {nb} playlists?", + "export-maps": "Export maps", + "export-playlist-maps-tip": "If enabled, all maps in the playlist will also be exported", + "export-playlists-maps-tip": "If enabled, all maps in the playlists will also be exported", + "export": "Export", + "need-clone-title": "Warning", + "need-clone-desc-1": "This playlist has been downloaded from an external site and contains a synchronization link.", + "need-clone-desc-2": "To avoid losing your changes during synchronization, the playlist will be duplicated and its synchronization link removed.", + "need-clone-desc-3": "You can then, if you wish, delete the original playlist.", + "understood": "I understand", + "synchronize-playlist-ask": "Synchronize playlist?", + "synchronize-playlists-ask": "Synchronize playlists?", + "synchronize-playlist-desc": "Are you sure you want to synchronize the playlist \"{playlistTitle}\"?", + "synchronize-playlists-desc": "Are you sure you want to synchronize {nb} playlists?", + "synchronize-playlist-tip": "This action updates playlists and downloads missing maps; it may take several minutes.", + "synchronize": "Synchronize", + "curated": "Recommended", + "verified-mapper": "Verified mapper", + "empty-playlists": "Empty playlists", + "search-playlist": "Search for a playlist", + "no-playlists-found": "No playlists found", + "error-occur-while-loading-playlists": "An error occurred while loading playlists", + "error-occur-while-loading-playlist": "An error occurred while loading the playlist", + "loading-maps": "Loading maps...", + "no-maps-found-for-playlist": "No maps found for this playlist", + "playlist-contain-no-maps": "The playlist contains no maps", + "no-map-installed-for-playlist": "No maps installed for this playlist", + "playlist-is-waiting-to-download": "The playlist is waiting to download", + "download-maps": "Download maps", + "download-missing-maps": "Download missing maps", + "playlist-is-downloading": "The playlist is downloading", + "some-playlist-maps-are-missing": "Some maps in this playlist are missing", + "create-a-playlist": "Create a playlist", + "synchronize-playlists": "Synchronize playlists", + "export-playlists": "Export playlists", + "delete-playlists": "Delete playlists", + "choose-image": "Choose an image", + "title": "Title", + "playlist-title": "Playlist title", + "description": "Description", + "playlist-description": "Playlist description", + "author": "Author", + "playlist-author": "Playlist author", + "save": "Save", + "loading": "Loading...", + "installed": "Installed", + "no-map-found": "No map found", + "edit-playlist-shortcuts": "Hold Shift or Ctrl to select multiple maps", + "add-to-playlist": "Add to playlist", + "remove-from-playlist": "Remove from playlist", + "playlist-is-empty": "The playlist is empty", + "continue": "Continue", + "nb-maps": "Number of maps", + "nb-mappers": "Number of mappers", + "duration": "Duration", + "nps": "Notes per second", + "date-picker": { + "start-date-end-date": "Start date — End date", + "all": "All", + "last-24h": "Last 24h", + "last-week": "Last week", + "last-month": "Last month", + "3-last-month": "Last 3 months" + }, + "playlists-imported": "Playlists imported", + "all-playlists-have-been-successfully-imported": "All playlists have been successfully imported", + "no-playlist-found": "No playlist found", + "no-playlist-found-in-selected-files": "No playlist found in the selected files", + "some-playlists-not-imported": "Some playlists not imported", + "some-playlists-have-been-imported": { + "INVALID_SOURCE": "Some playlists could not be found", + "INVALID_PLAYLIST_FILE": "Some playlists are invalid", + "CANNOT_PARSE_PLAYLIST": "Some playlists are unreadable", + "unknown": "Some playlists could not be imported" + }, + "no-playlists-imported": "No playlists imported", + "no-playlists-imported-errors": { + "INVALID_SOURCE": "Playlists could not be found", + "INVALID_PLAYLIST_FILE": "Playlists are invalid", + "CANNOT_PARSE_PLAYLIST": "Playlists are unreadable", + "unknown": "No playlist could be imported" + } + }, + "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"] + } +} diff --git a/assets/jsons/translations/zh-tw.json b/assets/jsons/translations/zh-tw.json index cacac60a..42a50870 100644 --- a/assets/jsons/translations/zh-tw.json +++ b/assets/jsons/translations/zh-tw.json @@ -246,6 +246,7 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", "translated": { "en-EN": "英式英語", "en-US": "美式英語", @@ -258,7 +259,8 @@ "zh-CN": "簡體中文", "zh-TW": "正體中文", "ja-JP": "日語", - "ko-KR": "韓語" + "ko-KR": "韓語", + "uk-UA": "烏克蘭" } } }, diff --git a/assets/jsons/translations/zh.json b/assets/jsons/translations/zh.json index da08ac9b..eabad9a9 100644 --- a/assets/jsons/translations/zh.json +++ b/assets/jsons/translations/zh.json @@ -245,6 +245,7 @@ "zh-TW": "正體中文", "ja-JP": "日本語", "ko-KR": "한국어", + "uk-UA": "Українська", "translated": { "en-EN": "英式英语", "en-US": "美式英语", @@ -257,7 +258,8 @@ "zh-CN": "简体中文", "zh-TW": "正体中文", "ja-JP": "日语", - "ko-KR": "韩语" + "ko-KR": "韩语", + "uk-UA": "烏克蘭" } } }, @@ -945,7 +947,7 @@ "maps": { "map-filter-panel": { "duration": "时长", - "nps" : "每秒音符数", + "nps": "每秒音符数", "njs": "音符跳跃速度", "tags": "标签", "specificities": "general", @@ -1026,11 +1028,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/renderer/components/svgs/bsm-icon.component.tsx b/src/renderer/components/svgs/bsm-icon.component.tsx index fde8d8f4..ef4761bd 100644 --- a/src/renderer/components/svgs/bsm-icon.component.tsx +++ b/src/renderer/components/svgs/bsm-icon.component.tsx @@ -12,6 +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 { UkraineIcon } from "./flags/ukraine-icon.component copy"; import { UkIcon } from "./flags/uk-icon.component"; import { TaskIcon } from "./icons/task-icon.component"; import { CopyIcon } from "./icons/copy-icon.component"; @@ -73,7 +74,7 @@ import { ArrowUpwardIcon } from "./icons/arrow-upward-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" | "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" | "uk-UA-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 +147,9 @@ export const BsmIcon = memo(({ className, icon, style }: { className?: string; i if (icon === "pt-BR-flag"){ return ; } + if (icon === "uk-UA-flag"){ + return ; + } if (icon === "task") { return ; diff --git a/src/renderer/components/svgs/flags/ukraine-icon.component copy.tsx b/src/renderer/components/svgs/flags/ukraine-icon.component copy.tsx new file mode 100644 index 00000000..68571453 --- /dev/null +++ b/src/renderer/components/svgs/flags/ukraine-icon.component copy.tsx @@ -0,0 +1,12 @@ +import { CSSProperties } from "react"; + +export function UkraineIcon(props: { className?: string; style?: CSSProperties }) { + return ( + + + + + + + ); +} diff --git a/src/renderer/config/default-configuration.config.ts b/src/renderer/config/default-configuration.config.ts index e2c2bd90..645b116a 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"], default_mods: ["SongCore", "WhyIsThereNoLeaderboard", "BeatSaverDownloader", "BeatSaverVoting", "PlaylistManager"], "default-shared-folders": [ window.electron.path.join("Beat Saber_Data", "CustomLevels"), From dd70df19d02f01882535570b78de49c1770fb60d Mon Sep 17 00:00:00 2001 From: HighError Date: Thu, 30 Jan 2025 15:58:03 +0200 Subject: [PATCH 2/7] Added all strings --- assets/jsons/translations/uk.json | 1142 ++++++++++++++--------------- 1 file changed, 571 insertions(+), 571 deletions(-) diff --git a/assets/jsons/translations/uk.json b/assets/jsons/translations/uk.json index 11d48291..be38ed80 100644 --- a/assets/jsons/translations/uk.json +++ b/assets/jsons/translations/uk.json @@ -327,89 +327,89 @@ }, "notifications": { "types": { - "error": "🚨 Error", - "warning": "⚠️ Warning", - "success": "🎉 Success" + "error": "🚨 Помилка", + "warning": "⚠️ Попередження", + "success": "🎉 Успіх" }, "common": { "msg": { - "error-occurred": "An error has occurred" + "error-occurred": "Сталася помилка" } }, "shared": { "errors": { "titles": { - "operation-running": "Operation running", - "no-internet": "No internet", - "file-not-supported": "File not supported" + "operation-running": "Операція виконується", + "no-internet": "Немає інтернету", + "file-not-supported": "Файл не підтримується" }, "msg": { - "operation-running": "Wait for the current operation to finish, then try again.", - "no-internet": "Check your connection and try again.", - "file-not-supported": "Only {types} files are supported." + "operation-running": "Дочекайтеся завершення поточної операції, а потім спробуйте ще раз.", + "no-internet": "Перевірте підключення до мережі та спробуйте ще раз.", + "file-not-supported": "Підтримуються лише файли {types}." } } }, "bs-download": { "success": { "titles": { - "download-success": "Download complete", - "verification-finished": "Verification complete" + "download-success": "Завантаження завершено", + "verification-finished": "Перевірка завершена" } }, "steam-download": { "warnings": { "msg": { - "ManifestChecksum": "The previously downloaded manifest does not match the new 🤔", - "ConnectionTimeout": "Your internet connection seems unstable 🥶", - "ConnectionLost": "The connection has been lost, try again...", - "ConnectionError": "Unable to connect to Steam, try again...", - "Unknown": "Something strange has happened 🤔 Your connection is probably unstable." + "ManifestChecksum": "Раніше завантажений маніфест не збігається з новим 🤔", + "ConnectionTimeout": "Ваше інтернет-з'єднання нестабільне 🥶", + "ConnectionLost": "З'єднання втрачено, спробуйте ще раз...", + "ConnectionError": "Не вдалося підключитися до Steam, спробуйте ще раз...", + "Unknown": "Сталося щось дивне 🤔 Ймовірно, ваше з'єднання нестабільне." } }, "errors": { "msg": { - "401": "Steam doesn't seem to want to let us download Beat Saber 😢", - "404": "Unable to contact Steam servers.", - "ExeNotFoundWindows": "\"DepotDownloader.exe\" is missing. Please check if the executable is quarantined by your anti-virus.", - "ExeNotFoundLinux": "\"DepotDownloader\" executable is missing.", - "Password": "Password is invalid.", - "InvalidCredentials": "Invalid login credentials, unapproved connection, or too many login attempts.", - "NoManifest": "No manifest was found", - "DirectoryCreate": "Unable to install the necessary folders.", - "NotAvailableApp": "Are you trying to download Beat Saber when you don't have it? 🤣", - "DepotNotFound": "Unable to download Beat Saber 😥 try again later 😕", - "NotCompleted": "The download could not complete ¯\\_(ツ)_/¯", - "InvalidManifest": "Unable to download Beat Saber 😥 try again later 😕", - "NoValidKey": "Unable to download Beat Saber 😥 try again later 😕", - "NoManifestCode": "Unable to download Beat Saber 😥 try again later 😕", - "Unknown": "An unknown error occurred ¯\\_(ツ)_/¯", - "NoServer": "Unable to contact Steam servers.", - "NotAllowed": "Apparently you are not allowed to download Beat Saber 🥱", - "ConnectionTimeout": "Cannot connect to Steam 😕", - "SteamLib": "If you have this error, report the bug on GitHub with the logs pls.", - "ConnectionError": "Unable to connect to Steam after 10 tries 🤯", - "LicenceError": "Unable to get the list of licenses.", - "RateLimitExceeded": "You've tried too many times, wait a while and try again later.", - "TokenRejected": "Your login token has been rejected 😕 Please try again.", - "AccessDenied": "Access to Steam has been denied." + "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": "Unable to download the manifest for this version; your login token may be invalid.", - "MANIFEST_FILE_NOT_FOUND": "Unable to find the manifest for this version.", - "PARSE_MANIFEST_FILE_FAILED": "An error occurred while reading the manifest.", - "ALREADY_DOWNLOADING": "A version is already being downloaded.", - "UNABLE_TO_GET_MANIFEST": "Unable to obtain the manifest required for download.", - "VERIFY_INTEGRITY_FAILED": "An error occurred during file verification.", - "SOME_FILES_FAILED_TO_DOWNLOAD": "Some files failed to download.", - "META_LOGIN_TIMED_OUT": "The login token took too long to retrieve.", - "META_LOGIN_WINDOW_CLOSED_BY_USER": "The Meta login window was closed.", - "NO_META_AUTH_TOKEN": "Unable to retrieve the Meta login token required for download.", - "UNKNOWN_ERROR": "An unknown error occurred." + "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": "Сталася невідома помилка." } } } @@ -417,16 +417,16 @@ "bs-import-version": { "success": { "start-import": { - "title": "Import in progress 👌", - "desc": "The import may take several minutes depending on your configuration." + "title": "Імпорт триває 👌", + "desc": "Імпорт може зайняти кілька хвилин залежно від вашої конфігурації." }, "imported": { - "title": "Imported version 🎉" + "title": "Версія імпортована 🎉" } }, "errors": { "import-error": { - "desc": "Check that the selected folder is a Beat Saber installation." + "desc": "Переконайтеся, що вибрана папка є встановленою версією Beat Saber." } } }, @@ -434,57 +434,57 @@ "move-folder": { "success": { "titles": { - "transfer-started": "Transfer in progress", - "transfer-finished": "Transfer complete" + "transfer-started": "Передача триває", + "transfer-finished": "Передача завершена" }, "descs": { - "transfer-started": "The transfer has started and may take several minutes depending on your configuration." + "transfer-started": "Передача розпочалася і може зайняти кілька хвилин залежно від вашої конфігурації." } }, "errors": { "titles": { - "transfer-failed": "Transfer failed 😕" + "transfer-failed": "Передача не вдалася 😕" }, "descs": { - "COPY_TO_SUBPATH": "The destination folder cannot be a subfolder of the source folder.", - "restore-linked-folders": "An error occurred while restoring shared folders. You can still manually restore them via the 'Shared Folders' menu on the versions page." + "COPY_TO_SUBPATH": "Цільова папка не може бути підпапкою вихідної папки.", + "restore-linked-folders": "Сталася помилка під час відновлення спільних папок. Ви все ще можете відновити їх вручну через меню 'Спільні папки' на сторінці версій." } } }, "steam": { "success": { "titles": { - "logout": "Disconnected from Steam." + "logout": "Відключено від Steam." } } }, "additional-content": { "deep-link": { - "select-all": "Select all", + "select-all": "Вибрати все", "activation": { "success": { - "title": "OneClick activated!", - "description": "OneClick installations have been activated." + "title": "OneClick активовано!", + "description": "OneClick-встановлення активовано." }, "error": { - "description": "Unable to activate OneClick installations." + "description": "Не вдалося активувати OneClick-встановлення." } }, "deactivation": { "success": { - "title": "OneClick deactivated!", - "description": "OneClick installations have been deactivated." + "title": "OneClick деактивовано!", + "description": "OneClick-встановлення деактивовано." }, "error": { - "description": "An unknown error occurred." + "description": "Сталася невідома помилка." } }, "check-all-enabled": { - "title": "OneClick Disabled", - "description": "One or more OneClick installations are disabled. Go to settings to enable them.", + "title": "OneClick вимкнено", + "description": "Одна або більше OneClick-встановлень вимкнено. Перейдіть до налаштувань, щоб увімкнути їх.", "actions": { - "settings": "Settings", - "not-remind": "Don't remind me" + "settings": "Налаштування", + "not-remind": "Не нагадувати" } } } @@ -493,782 +493,782 @@ "bs-launch": { "success": { "titles": { - "BS_LAUNCHING": "Launching...🚀", - "STEAM_LAUNCHING": "Steam is launching!", - "SKIPPING_STEAM_LAUNCH": "Skipping Steam launch" + "BS_LAUNCHING": "Запускається...🚀", + "STEAM_LAUNCHING": "Steam запускається!", + "SKIPPING_STEAM_LAUNCH": "Пропуск запуску Steam" }, "msg": { - "BS_LAUNCHING": "Don't forget to warm up 😉", - "STEAM_LAUNCHING": "Beat Saber will automatically launch after Steam.", - "SKIPPING_STEAM_LAUNCH": "I hope you know what you're doing :)" + "BS_LAUNCHING": "Не забудьте розім'ятися 😉", + "STEAM_LAUNCHING": "Beat Saber запуститься автоматично після Steam.", + "SKIPPING_STEAM_LAUNCH": "Сподіваюся, ви знаєте, що робите :)" } }, "errors": { "titles": { - "UNKNOWN_ERROR": "Unable to launch", - "STEAM_NOT_RUNNING": "Steam is not running", - "OCULUS_NOT_RUNNING": "Oculus is not running", - "BS_ALREADY_RUNNING": "Beat Saber already running", - "EXE_NOT_FINDED": "Missing files", - "PROTON_NOT_SET": "Proton folder not set", - "PROTON_NOT_FOUND": "Proton binary not found", - "EXIT": "Abrupt stop", - "OCULUS_LIB_NOT_FOUND": "Oculus library not found", - "ORIGINAL_OCULUS_NOT_INSTALLED": "Original Oculus version not found" + "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": "An unknown error has occurred.", - "STEAM_NOT_RUNNING": "Steam must be running to launch BeatSaber.", - "OCULUS_NOT_RUNNING": "Oculus must be running to launch BeatSaber.", - "BS_ALREADY_RUNNING": "Close BeatSaber before launching it again.", - "EXE_NOT_FINDED": "Some files seem to be missing, try to verify the files.", - "EXIT": "BeatSaber stopped abruptly, tries to check the files.", - "OCULUS_LIB_NOT_FOUND": "Check that the Oculus application is properly installed, and that the libraries are correctly defined in Oculus.", - "PROTON_NOT_SET": "Set the Proton path in settings.", - "PROTON_NOT_FOUND": "Set the Proton path in settings.", - "ORIGINAL_OCULUS_NOT_INSTALLED": "Beat Saber must be installed from the Oculus app before opening." + "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": "Launch Steam" + "STEAM_NOT_RUNNING": "Запустити Steam" } } }, "steam": { "steam-launching": { - "title": "Steam is launching!", - "description": "Beat Saber will automatically launch after Steam." + "title": "Steam запускається!", + "description": "Beat Saber запуститься автоматично після Steam." } }, "custom-version": { "errors": { "titles": { - "CantEditSteam": "Unable to edit", - "CantRename": "Renaming impossible", - "VersionAlreadExist": "This version already exists", - "CantClone": "Cloning impossible", - "UnknownError": "An unknown error occurred" + "CantEditSteam": "Неможливо редагувати", + "CantRename": "Перейменування неможливе", + "VersionAlreadExist": "Ця версія вже існує", + "CantClone": "Клонування неможливе", + "UnknownError": "Сталася невідома помилка" }, "msg": { - "CantEditSteam": "You can't edit the Steam version. You can clone it though." + "CantEditSteam": "Ви не можете редагувати версію Steam. Але ви можете її клонувати." } }, "success": { "titles": { - "CloningFinished": "Cloning complete 🎉" + "CloningFinished": "Клонування завершено 🎉" } } }, "mods": { "install-mods": { "titles": { - "success": "Mods installed 🎉", - "warning": "Mods installed 🤔" + "success": "Моди встановлено 🎉", + "warning": "Моди встановлено 🤔" }, "msg": { - "success": "All mods have been installed.", - "warning": "One or more mods could not be installed.", + "success": "Усі моди були встановлені.", + "warning": "Один або кілька модів не вдалося встановити.", "errors": { - "no-mods": "No mods to install.", - "cannot-install-bsipa": "BSIPA installation failed 😨" + "no-mods": "Немає модів для встановлення.", + "cannot-install-bsipa": "Не вдалося встановити BSIPA 😨" } } }, "uninstall-mod": { "titles": { - "success": "Mod uninstalled 🎉" + "success": "Мод видалено 🎉" }, "msg": { "errors": { - "no-mods": "This mod isn't installed 😑" + "no-mods": "Цей мод не встановлено 😑" } } }, "uninstall-all-mods": { "titles": { - "success": "Mods uninstalled 🎉" + "success": "Моди видалено 🎉" }, "msg": { - "success": "All mods have been uninstalled.", + "success": "Усі моди були видалені.", "errors": { - "no-mods": "No mods are installed in this version 😑" + "no-mods": "У цій версії не встановлено жодних модів 😑" } } }, "import-mod": { "titles": { - "success": "Mods import completed", - "error": "An error occurred during the mods import" + "success": "Імпорт модів завершено", + "error": "Сталася помилка під час імпорту модів" }, "msgs": { - "success": "Mods successfully imported.", - "some-success": "Some mods were successfully imported.", - "no-dlls": "The file(s) do not contain any \"dll\" files." + "success": "Моди успішно імпортовано.", + "some-success": "Деякі моди були успішно імпортовані.", + "no-dlls": "Файл(и) не містять жодних файлів \"dll\"." } } }, "maps": { "one-click-install": { - "success": "Map installation complete", - "error": "An error occurred while installing the map" + "success": "Встановлення карти завершено", + "error": "Сталася помилка під час встановлення карти" }, "no-duplicates-maps": { - "title": "No Duplicates", - "msg": "No maps were deleted" + "title": "Немає дублікатів", + "msg": "Жодних карт не було видалено" }, "duplicates-maps-deleted": { - "title": "Duplicates Deleted", - "msg": "Duplicates were deleted" + "title": "Дублікати видалено", + "msg": "Дублікати були видалені" }, "import-map": { "titles": { - "success": "Maps import completed", - "error": "An error occurred during the maps import" + "success": "Імпорт карт завершено", + "error": "Сталася помилка під час імпорту карт" }, "msgs": { - "success": "Maps successfully imported.", - "some-success": "Some maps were successfully imported.", - "only-accept-zip": "Only zip files are supported.", - "invalid-zip": "The zip file(s) do not contain any maps.", - "unknown": "An unknown error occurred." + "success": "Карти успішно імпортовано.", + "some-success": "Деякі карти були успішно імпортовані.", + "only-accept-zip": "Підтримуються лише zip-файли.", + "invalid-zip": "Zip-файл(и) не містять жодних карт.", + "unknown": "Сталася невідома помилка." } } }, "playlists": { "one-click-install": { - "success": "Playlist installation complete", - "error": "An error occurred while installing the playlist" + "success": "Встановлення плейлиста завершено", + "error": "Сталася помилка під час встановлення плейлиста" } }, "models": { "one-click-install": { - "success": "Model installation complete", - "error": "An error occurred while installing the model" + "success": "Встановлення моделі завершено", + "error": "Сталася помилка під час встановлення моделі" } }, "shared-folder": { "info": { "userdata-backup-created": { - "title": "Backup created", - "msg": "Sharing the 'UserData' folder can generate errors, in case of problems unlink the folder to restore the backup" + "title": "Резервну копію створено", + "msg": "Спільний доступ до папки 'UserData' може спричинити помилки, у разі виникнення проблем від'єднайте папку, щоб відновити резервну копію" } }, "linking-error": { - "title": "Error while linking folder", + "title": "Помилка під час прив'язки папки", "msg": { - "EPERM": "BSManager does not have the necessary permissions to link the folder.", - "EACCES": "BSManager does not have the necessary permissions to link the folder.", - "ENOSPC": "The disk is full, make some space and try again.", - "LinkingNotSupported": "Folder linking is not supported on this file system.", - "UNKNOWN_ERROR": "An unknown error has occurred while linking the folder." + "EPERM": "BSManager не має необхідних дозволів для прив'язки папки.", + "EACCES": "BSManager не має необхідних дозволів для прив'язки папки.", + "ENOSPC": "Диск заповнений, звільніть місце та спробуйте знову.", + "LinkingNotSupported": "Прив'язка папок не підтримується на цій файловій системі.", + "UNKNOWN_ERROR": "Сталася невідома помилка під час прив'язки папки." } }, "adding-error": { - "title": "Adding shared folder failed", - "msg": "You can't add \"{folder}\" to shared folders." + "title": "Не вдалося додати спільну папку", + "msg": "Ви не можете додати \"{folder}\" до спільних папок." } }, "create-launch-shortcut": { "success": { - "title": "Shortcut created", - "msg": "The shortcut has been created on the desktop.", - "msg-steam": "The shortcut has been created in the Steam library." + "title": "Ярлик створено", + "msg": "Ярлик було створено на робочому столі.", + "msg-steam": "Ярлик було створено в бібліотеці Steam." }, "error": { - "msg": "An error occurred while creating the shortcut." + "msg": "Сталася помилка під час створення ярлика." } }, "bs-version-oudated": { - "title": "Version Outdated", - "msg": "This Beat Saber version is outdated, use the recommended version to enjoy the latest features and bugfixes", + "title": "Версія застаріла", + "msg": "Ця версія Beat Saber застаріла, використовуйте рекомендовану версію, щоб насолоджуватися останніми функціями та виправленнями помилок", "actions": { - "do-not-remind": "Do not remind me", - "ok": "Ok" + "do-not-remind": "Не нагадувати", + "ok": "Гаразд" } } }, "modals": { "misc": { - "remember-my-choice": "Remember my choice" + "remember-my-choice": "Запам'ятати мій вибір" }, "choose-store": { - "title": "Which platform?", - "body": "Select the platform from which you wish to download Beat Saber.", - "set-in-settings": "Set the default platform in settings" + "title": "Яка платформа?", + "body": "Виберіть платформу, з якої ви бажаєте завантажити Beat Saber.", + "set-in-settings": "Встановіть платформу за замовчуванням у налаштуваннях" }, "guard": { "title": "Steam Guard", "inputs": { "guard-code": { - "label": "Guard Code", - "placeholder": "Enter your Guard code" + "label": "Код Guard", + "placeholder": "Введіть ваш код Guard" } }, "buttons": { - "submit": "Login" + "submit": "Увійти" } }, "steam-login": { - "title": "Steam Login", + "title": "Вхід у Steam", "inputs": { "username": { - "label": "Sign in with account name", - "placeholder": "Enter your account name" + "label": "Увійти з іменем облікового запису", + "placeholder": "Введіть ім'я облікового запису" }, "password": { - "label": "Password", - "placeholder": "Enter your password", - "max-length-warning": "The password exceeds 64 characters! If the password is invalid, try to enter only its first 64 characters." + "label": "Пароль", + "placeholder": "Введіть ваш пароль", + "max-length-warning": "Пароль перевищує 64 символи! Якщо пароль недійсний, спробуйте ввести лише перші 64 символи." }, "qr": { - "label": "Or with a QR code", + "label": "Або за допомогою QR-коду", "note": { - "use-the": "Use the ", - "steam-mobile-app": "Steam Mobile App", - "to-connect-with-qr": "to sign in via QR code." + "use-the": "Використовуйте ", + "steam-mobile-app": "мобільний додаток Steam", + "to-connect-with-qr": "для входу через QR-код." } }, - "stay": "Remember me" + "stay": "Запам'ятати мене" }, - "why-credentials": "Why are my credentials necessary?", - "need-help-to-connect": "I need help to access my account!", + "why-credentials": "Чому потрібні мої облікові дані?", + "need-help-to-connect": "Мені потрібна допомога для доступу до мого облікового запису!", "buttons": { - "submit": "Sign in" + "submit": "Увійти" } }, "steam-auth-approve": { - "title": "Waiting for confirmation", - "protected-by-mobile-auth": "Account protected by mobile authenticator.", - "use-steam-app-to-approve": "Use the Steam mobile app to confirm the connection...", - "not-access-to-steam-app": "I don't have access to the Steam mobile app" + "title": "Очікування підтвердження", + "protected-by-mobile-auth": "Обліковий запис захищено мобільним автентифікатором.", + "use-steam-app-to-approve": "Використовуйте мобільний додаток Steam для підтвердження з'єднання...", + "not-access-to-steam-app": "У мене немає доступу до мобільного додатку Steam" }, "steam-credentials": { - "title": "Steam Credentials", - "p-1": "Your Steam credentials are only required to download versions of Beat Saber, we use DepotDownloader to achieve this which requires your Steam credentials to verify that you own the game within your library before allowing you to retrieve the game files, your credentials are not stored or saved and are passed directly to DepotDownloader. However, if you don't want to do that, you can follow this tutorial instead: ", - "p-2": "Afterwards you can click on the gear icon in the top right corner and select \"Import a version\", then you can select the folder where Beat Saber was downloaded to. (If you followed the tutorial, you will have the right location)" + "title": "Облікові дані Steam", + "p-1": "Ваші облікові дані Steam потрібні лише для завантаження версій Beat Saber. Ми використовуємо DepotDownloader, якому потрібні ваші облікові дані Steam для перевірки наявності гри у вашій бібліотеці перед тим, як дозволити вам отримати файли гри. Ваші облікові дані не зберігаються і передаються безпосередньо до DepotDownloader. Однак, якщо ви не хочете цього робити, ви можете натомість скористатися цим посібником: ", + "p-2": "Після цього ви можете натиснути на значок шестерні у верхньому правому куті та вибрати \"Імпортувати версію\", потім ви можете вибрати папку, куди було завантажено Beat Saber. (Якщо ви слідували посібнику, у вас буде правильне розташування)" }, "bs-import-version": { - "title": "Import a version", - "description": "Imports a version of Beat Saber to use with BSManager. This will copy the selected Beat Saber installation folder to the BSManager versions folder.", - "oculus-version": "Oculus Version", - "oculus-version-tooltip": "Check if it's an Oculus version", + "title": "Імпортувати версію", + "description": "Імпортує версію Beat Saber для використання з BSManager. Це скопіює вибрану папку встановлення Beat Saber до папки версій BSManager.", + "oculus-version": "Версія Oculus", + "oculus-version-tooltip": "Відмітьте, якщо це версія Oculus", "buttons": { - "submit": "Import a version" + "submit": "Імпортувати версію" } }, "bs-uninstall": { - "title": "Uninstall", - "description": "Are you sure you want to uninstall Beat Saber {version}? You will have to download it again to play it.", + "title": "Видалення", + "description": "Ви впевнені, що хочете видалити Beat Saber {version}? Вам доведеться завантажити його знову, щоб грати.", "buttons": { - "submit": "Uninstall" + "submit": "Видалити" } }, "install-folder": { - "title": "Installation folder", - "description": "Changing the default installation folder will result in moving all installed data to the new folder.", + "title": "Папка встановлення", + "description": "Зміна папки встановлення за замовчуванням призведе до переміщення всіх встановлених даних до нової папки.", "buttons": { - "submit": "Choose folder" + "submit": "Вибрати папку" } }, "edit-version": { - "title": "Edit the version", + "title": "Редагувати версію", "buttons": { - "submit": "Edit" + "submit": "Редагувати" } }, "clone-version": { - "title": "Clone version", - "description": "Cloning the version allows you to separate additional Beat Saber content between two versions.", + "title": "Клонувати версію", + "description": "Клонування версії дозволяє розділити додатковий вміст Beat Saber між двома версіями.", "inputs": { "name": { - "label": "Name", - "placeholder": "Version name" + "label": "Назва", + "placeholder": "Назва версії" }, "color": { - "label": "Color" + "label": "Колір" } }, "buttons": { - "submit": "Clone" + "submit": "Клонувати" } }, "uninstall-mod": { - "title": "Uninstall", - "description": "Are you sure you want to uninstall {mod}? It could cause other installed mods to malfunction.", - "description-bsipa": "Are you sure you want to uninstall BSIPA? After that all installed mods will not work anymore." + "title": "Видалення", + "description": "Ви впевнені, що хочете видалити {mod}? Це може призвести до неправильної роботи інших встановлених модів.", + "description-bsipa": "Ви впевнені, що хочете видалити BSIPA? Після цього всі встановлені моди перестануть працювати." }, "uninstall-all-mods": { - "title": "Uninstalling mods", - "description": "Are you sure you want to uninstall all the mods from version {version}? This operation cannot be undone." + "title": "Видалення модів", + "description": "Ви впевнені, що хочете видалити всі моди з версії {version}? Цю операцію неможливо скасувати." }, "maps-actions": { "delete-maps": { "title": { - "single": "Delete this map?", - "multiple": "Delete maps?" + "single": "Видалити цю карту?", + "multiple": "Видалити карти?" }, "desc": { - "single": "Are you sure you want to delete the map {name}?", - "multiple": "Are you sure you want to delete all {nb} maps?" + "single": "Ви впевнені, що хочете видалити карту {name}?", + "multiple": "Ви впевнені, що хочете видалити {nb} карт(-и)?" }, "info": { "desc": { - "single": "This map is part of the shared maps", - "multiple": "These maps are part of the shared maps" + "single": "Ця карта є частиною спільних карт", + "multiple": "Ці карти є частиною спільних карт" }, "title": { - "single": "This map will also be removed from versions using shared maps", - "multiple": "These maps will also be removed from versions using shared maps" + "single": "Ця карта також буде видалена з версій, що використовують спільні карти", + "multiple": "Ці карти також будуть видалені з версій, що використовують спільні карти" } } } }, "link-contents": { - "title": "Link {contentType}", - "p-1": "Linking {contentType} allows sharing {contentType} between all versions with this feature enabled. Once linked, this version will benefit from shared {contentType}.", - "p-2": "In order to enjoy the linking feature, all your {itemsHtml} will be moved to the {sharedHtml} folder. After that, a symbolic link pointing to the shared {contentType} folder will replace your original {contentType} folder.", - "warning": "Please note that any changes affecting {contentType} will also affect all versions with this feature enabled.", - "what-is-a-symbolic-link": "What is a symbolic link?", - "i-need-help": "I need help", - "valid-btn": "Link {contentType}" + "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": "Unlink {contentType}", - "p-1": "Be careful, unlinking {contentType} will disable the use of shared {contentType} for this version, until it is reenabled.", - "p-2": "In order to unlink your maps, the symbolic link pointing to the {sharedHtml} will be removed. After that, all maps in the shared folder will be copied to the {itemsHtml} folder of your Beat Saber version.", - "do-not-copy-contents": "Do not copy {contentType}", - "do-not-copy-contents-tip": "If enabled, {contentType} in the shared folder will not be copied to your Beat Saber version. As a result, no {contentType} will remain in your Beat Saber version after unlinking.", - "valid-btn": "Unlink {contentType}" + "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": "Search", - "loading-maps": "Loading maps...", - "no-maps-found": "No maps found", - "no-internet": "No internet" + "search-btn": "Пошук", + "loading-maps": "Завантаження карт...", + "no-maps-found": "Карт не знайдено", + "no-internet": "Немає інтернету" }, "mods-disclaimer": { - "title": "disclaimer", - "p-1": "By choosing to use mods, you understand that:", - "li-1": "You may experience problems that don't exist in the vanilla game. 99.9% of bugs, crashes, and lag are due to mods.", - "li-2": "Mods are subject to being broken by updates and that's normal - be patient and respectful when this happens, as modders are volunteers with real lives.", - "li-3": "Beat Games aren't purposefully trying to break mods. They wish to work on the codebase and sometimes this breaks mods, but they are not out to kill mods.", - "p-2": "Do not attack the game developers for issues related to mods, and vice versa - modders and game developers are two separate groups. Just don't be a jerk ok." + "title": "Застереження", + "p-1": "Вибираючи використання модів, ви розумієте, що:", + "li-1": "Ви можете зіткнутися з проблемами, яких немає у оригінальній грі. 99.9% помилок, збоїв і затримок спричинені модами.", + "li-2": "Моди можуть перестати працювати після оновлень, і це нормально - будьте терплячі та поважайте це, оскільки модери є добровольцями з власним життям.", + "li-3": "Beat Games не намагаються навмисно зламати моди. Вони працюють над кодовою базою, і іноді це ламає моди, але вони не прагнуть знищити моди.", + "p-2": "Не нападайте на розробників гри через проблеми, пов'язані з модами, і навпаки - модери та розробники гри є двома окремими групами. Просто не будьте грубими, добре?" }, "shared-folders": { - "title": "Shared Folders", - "description": "Link Beat Saber folders to synchronize their contents with shared folders in other versions. Note that deleting content will also be shared.", + "title": "Спільні папки", + "description": "Прив'яжіть папки Beat Saber для синхронізації їхнього вмісту зі спільними папками в інших версіях. Зауважте, що видалення вмісту також буде спільним.", "buttons": { - "add-folder": "Add Folder", - "link-folder": "Link Folder", - "unlink-folder": "Unlink Folder", - "link-all": "Link all", - "remove-from-the-list": "Remove from the list" + "add-folder": "Додати папку", + "link-folder": "Прив'язати папку", + "unlink-folder": "Відв'язати папку", + "link-all": "Прив'язати все", + "remove-from-the-list": "Видалити зі списку" } }, "adding-shared-folder": { - "title": "Adding Shared Folder", - "description": "You might experience issues when linking the \"{folder}\" folder. Are you sure you want to add it?" + "title": "Додавання спільної папки", + "description": "Ви можете зіткнутися з проблемами при прив'язці папки \"{folder}\". Ви впевнені, що хочете додати її?" }, "create-launch-shortcut": { - "title": "Create a shortcut", - "desc": "Creating a shortcut will allow you to start Beat Saber with the chosen options without going through BSManager.", - "launch-options": "Launch options", - "advanced-launch": "Advanced launch", - "valid-btn": "Create the shortcut", - "create-steam-shortcut": "Create a Steam shortcut", - "steam-shortcut-tippy": "If enabled, instead of creating a shortcut on the desktop, it will be created in Steam." + "title": "Створити ярлик", + "desc": "Створення ярлика дозволить вам запускати Beat Saber з обраними опціями без використання BSManager.", + "launch-options": "Параметри запуску", + "advanced-launch": "Розширений запуск", + "valid-btn": "Створити ярлик", + "create-steam-shortcut": "Створити ярлик Steam", + "steam-shortcut-tippy": "Якщо ввімкнено, замість створення ярлика на робочому столі, його буде створено в Steam." }, "connect-to-meta": { - "title": "Connect to Meta", + "title": "Підключення до Meta", "body": { - "token-needed": "Your Meta connection token is required to download Beat Saber.", - "need-cookie-enabled": "By logging into Meta, a login window will open and you can then start the login process. Please ensure to accept cookies, otherwise, we might not be able to retrieve your token to start the download.", - "enter-token-manually": "Enter my login token manually", - "enter-token-manually-tooltip": "This will allow you to enter your login token without going through Meta login." + "token-needed": "Для завантаження Beat Saber потрібен ваш токен підключення Meta.", + "need-cookie-enabled": "При вході в Meta відкриється вікно входу, і ви зможете розпочати процес входу. Будь ласка, прийміть куки, інакше ми не зможемо отримати ваш токен для початку завантаження.", + "enter-token-manually": "Ввести мій токен входу вручну", + "enter-token-manually-tooltip": "Це дозволить вам ввести ваш токен входу без проходження входу через Meta." }, - "stay": "Remember me", - "connect-to-meta": "Connect to Meta" + "stay": "Запам'ятати мене", + "connect-to-meta": "Підключитися до Meta" }, "enable-oculus-sideloaded-apps": { - "title": "Enable Sideloading", - "info-1": "In order to launch Beat Saber, the ability to run sideloaded apps must be enabled. BSManager will request administrator rights to enable this feature automatically.", - "info-2": "The sideloaded apps feature allows launching games located outside your Oculus library folder.", - "info-3": "After sideloading is activated, the feature will remain active, and you will no longer be prompted to enable it.", - "i-want-to-do-it-myself": "I want to do it myself", - "understood": "Understood" + "title": "Увімкнути сайдлоадинг", + "info-1": "Для запуску Beat Saber потрібно ввімкнути можливість запуску сайдлоад додатків. BSManager запитає права адміністратора для автоматичного ввімкнення цієї функції.", + "info-2": "Функція сайдлоад додатків дозволяє запускати ігри, розташовані поза папкою бібліотеки Oculus.", + "info-3": "Після активації сайдлоадингу функція залишиться активною, і вас більше не проситимуть увімкнути її.", + "i-want-to-do-it-myself": "Я хочу зробити це самостійно", + "understood": "Зрозуміло" }, "enter-meta-token": { - "title": "Oculus Token", + "title": "Токен Oculus", "body": { - "info-enter-token": "To download Beat Saber, your Oculus login token is required.", - "how-obtain-token": "How do I obtain my Oculus Token?", - "oculus-token": "Oculus Token", - "token-is-invalid": "The Token is invalid.", - "save-my-token": "Save my token", - "have-token-saved": "I already have a token saved", - "save-token-info": "This will save your token for easier reuse. You will need to create a password to encrypt your token for storage purposes. If you ever forget your password, you just need to provide your token again.", - "password": "Password", - "password-too-short": "Password too short", - "info-enter-password": "To download Beat Saber, your Oculus login token is required. Enter the password used to save your Oculus token.", - "info-disabled-btn-password": "The token decrypted with the provided password is invalid. Make sure the password is the same as the one used to save the token.", - "enter-oculus-token": "Enter an Oculus token" + "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": "Validate" + "valid-btn": "Підтвердити" }, "launch-as-admin": { - "title": "Administrator Permissions", + "title": "Права адміністратора", "body": { - "info": "Steam has been detected as running with administrator permissions. To communicate with Steam, Beat Saber must also be launched as an administrator. Otherwise, Beat Saber might experience problems and close after launching.", - "info-2": "Launching Beat Saber in administrator mode will also give administrator rights to the installed mods. Therefore, it is recommended to restart Steam without administrator permissions.", - "info-3": "Note that it is advised against giving administrator rights to Steam, as this affects the installed games and mods, presenting a security risk." + "info": "Виявлено, що Steam працює з правами адміністратора. Для зв'язку зі Steam, Beat Saber також потрібно запустити як адміністратор. Інакше Beat Saber може зіткнутися з проблемами і закритися після запуску.", + "info-2": "Запуск Beat Saber в режимі адміністратора також надасть права адміністратора встановленим модам. Тому рекомендується перезапустити Steam без прав адміністратора.", + "info-3": "Зауважте, що не рекомендується надавати права адміністратора Steam, оскільки це впливає на встановлені ігри та моди, створюючи ризик безпеки." }, - "launch-as-admin": "Launch as Administrator", - "not-remind-me": "Do not remind me" + "launch-as-admin": "Запустити як адміністратор", + "not-remind-me": "Не нагадувати мені" }, "ask-install-path": { - "title": "Installation folder", - "choose-folder-description": "Choose the folder that will contain all the content downloaded by BSManager. (versions, mods, maps, playlists, etc.)", - "default": "Default", - "default-tooltip": "Defaults to your home folder" + "title": "Папка встановлення", + "choose-folder-description": "Виберіть папку, яка міститиме весь вміст, завантажений BSManager. (версії, моди, карти, плейлисти тощо)", + "default": "За замовчуванням", + "default-tooltip": "За замовчуванням ваша домашня папка" }, "choose-proton-folder": { - "title": "Proton Folder", - "proton-folder-description": "On Linux, BSManager requires Proton to work. Choose the Proton installation folder to continue.", - "proton-folder-placeholder": "Proton installation folder", - "where-is-proton-installed": "Where is Proton installed?" + "title": "Папка Proton", + "proton-folder-description": "На Linux, BSManager потребує Proton для роботи. Виберіть папку встановлення Proton, щоб продовжити.", + "proton-folder-placeholder": "Папка встановлення Proton", + "where-is-proton-installed": "Де встановлено Proton?" }, "bs-version-outdated": { - "body": "The version {outdatedVersion} is outdated, and some mods or features may no longer work as expected. Please download the latest recommended version ({recommendedVersion}) of Beat Saber to enjoy the latest features and bugfixes." - } - }, - "maps": { - "map-filter-panel": { - "duration": "Duration", - "nps": "Notes Per Second", - "njs": "Note Jump Speed", - "tags": "tags", - "specificities": "general", - "requirements": "requirements", - "exclude": "exclude", - "leaderboard": "leaderboard" + "body": "Версія {outdatedVersion} застаріла, і деякі моди чи функції можуть більше не працювати належним чином. Будь ласка, завантажте останню рекомендовану версію ({recommendedVersion}) Beat Saber, щоб насолоджуватися останніми функціями та виправленнями помилок." }, - "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": "By {songAutor}", - "mapped-by": "mapped by", - "delete": "Delete", - "preview": "Preview map", - "bsr-code": "BSR code", - "download": "Download map", - "downloading": "Downloading map", - "cancel-download": "Cancel download", - "hightlight-difficulty": "Highlight difficulty" + "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": "avatar", - "saber": "saber", - "platform": "platform", - "bloq": "block" + "avatar": "аватар", + "saber": "шпага", + "platform": "платформа", + "bloq": "блок" }, "plural": { - "avatar": "avatars", - "saber": "sabers", - "platform": "platforms", - "bloq": "blocks" + "avatar": "аватари", + "saber": "шпаги", + "platform": "платформи", + "bloq": "блоки" } }, "sorts": { - "name": "Name", - "date": "Date", - "author": "Author" + "name": "Ім'я", + "date": "Дата", + "author": "Автор" }, "panel": { "actions": { - "search": "Search a model", + "search": "Пошук завантажених моделей", "drop-down": { - "delete": "Delete models", - "export": "Export models" + "delete": "Видалити моделі", + "export": "Експортувати моделі" }, - "link-models": "Link models", - "unlink-models": "Unlink models" + "link-models": "Зв'язати моделі", + "unlink-models": "Відв'язати моделі" }, "grid": { - "loading": "Loading models...", - "no-models": "No models", - "download-models": "Download models" + "loading": "Завантаження моделей...", + "no-models": "Немає моделей", + "download-models": "Завантажити моделі" } }, "modals": { "delete-model": { - "title": "Delete the model", - "desc": "Are you sure you want to delete the model {modelName}?", - "linked-annotation": "This model will be removed from all linked versions." + "title": "Видалити модель", + "desc": "Ви впевнені, що хочете видалити модель {modelName}?", + "linked-annotation": "Цю модель буде видалено з усіх пов'язаних версій." }, "delete-models": { - "title": "Delete models", - "desc": "Are you sure you want to delete the {nb} models?", - "linked-annotation": "These models will be removed from all linked versions." + "title": "Видалити моделі", + "desc": "Ви впевнені, що хочете видалити {nb} модел(-і/-ей)?", + "linked-annotation": "Ці моделі буде видалено з усіх пов'язаних версій." }, "download-models": { - "search-btn": "Search", - "search-placeholder": "Search a model", + "search-btn": "Пошук", + "search-placeholder": "Пошук моделі", "search-tips": { "header": { - "tag": "Tag", - "desc": "Description" + "tag": "Тег", + "desc": "Опис" }, - "author-desc": "Show only models from the specified author.", - "hash-desc": "Show only models with the specified hash.", - "tag-desc": "Show only models with the specified tag.", - "name-desc": "Show only models with the specified name.", - "discordid-desc": "Show only models from the specified discord user.", - "status-desc": "Show only models with the specified status. (profile only, and only for the author)" + "author-desc": "Показати лише моделі від вказаного автора.", + "hash-desc": "Показати лише моделі з вказаним хешем.", + "tag-desc": "Показати лише моделі з вказаним тегом.", + "name-desc": "Показати лише моделі з вказаною назвою.", + "discordid-desc": "Показати лише моделі від вказаного користувача Discord.", + "status-desc": "Показати лише моделі з вказаним статусом. (тільки для профілю і лише для автора)" }, - "no-models": "No models found.", - "no-internet": "No internet connection.", - "error-occurred": "An error occurred, try again later." + "no-models": "Моделей не знайдено.", + "no-internet": "Немає підключення до інтернету.", + "error-occurred": "Сталася помилка, спробуйте пізніше." } }, "notifications": { "prevent-for-mods": { - "title": "Required mods", - "desc": "Make sure you've installed the necessary mods to use models in Beat Saber", - "go-to-mods": "Go to mods", - "not-remind": "Don't remind me" + "title": "Необхідні моди", + "desc": "Переконайтеся, що ви встановили необхідні моди для використання моделей у Beat Saber", + "go-to-mods": "Перейти до модів", + "not-remind": "Не нагадувати" }, "export-success": { - "title": "Export completed 🎉" + "title": "Експорт завершено 🎉" } } }, "beat-saver": { "maps-sorts": { - "Latest": "Latest", - "Relevance": "Relevance", - "Rating": "Rating", - "Curated": "Curated" + "Latest": "Останні", + "Relevance": "Актуальні", + "Rating": "Рейтинг", + "Curated": "Оцінені куратором" } }, "auto-update": { - "checking": "Checking for updates", - "downloading": "Downloading updates" + "checking": "Перевірка оновлень", + "downloading": "Завантаження оновлень" }, "bs-shortcut-launch": { - "beat-saber-launching": "Launching Beat Saber", - "launching": "Launching", - "open-bsmanager": "Open BSManager", + "beat-saber-launching": "Запуск Beat Saber", + "launching": "Запуск", + "open-bsmanager": "Відкрити BSManager", "status-text": { - "init": "Initializing...", + "init": "Ініціалізація...", "success": { - "BS_LAUNCHING": "Launching Beat Saber...", - "STEAM_LAUNCHING": "Launching Steam...", - "STEAM_LAUNCHED": "Steam successfully launched!", - "UNABLE_TO_LAUNCH_STEAM": "Unable to launch Steam, forcing Beat Saber launch..." + "BS_LAUNCHING": "Запуск Beat Saber...", + "STEAM_LAUNCHING": "Запуск Steam...", + "STEAM_LAUNCHED": "Steam успішно запущено!", + "UNABLE_TO_LAUNCH_STEAM": "Не вдалося запустити Steam, спроба запустити Beat Saber..." } } }, "drop-zone": { - "or-browse-files": "Or browse files" + "or-browse-files": "Або перегляньте файли" }, "playlist": { - "error-playlist-creation-title": "Error creating playlist", - "error-playlist-creation-desc": "An error occurred while creating the playlist.", - "playlist-created-title": "Playlist created", - "playlist-created-desc": "The playlist has been successfully created. You can now sync its maps!", - "download-playlist": "Download playlist", - "synchronize-playlist": "Synchronize playlist", - "synchronize-maps": "Synchronize maps", - "error-playlists-synchronization-title": "Error synchronizing playlists", - "error-playlists-synchronization-desc": "An error occurred while synchronizing playlists.", - "playlists-synchronized-title": "Playlists synchronized!", - "playlists-synchronized-desc": "Playlists and their maps have been downloaded.", - "playlists-export-error-title": "Error exporting playlists", - "playlists-export-error-desc": "An error occurred while exporting playlists.", - "playlists-exported-title": "Playlists exported!", - "playlists-exported-desc": "Playlists have been successfully exported.", - "playlists-with-maps-exported-desc": "Playlists and their maps have been successfully exported.", - "playlist-delete-error-title": "Error deleting playlist", - "playlist-delete-error-desc": "An error occurred while deleting the playlist.", - "playlists-deleted-title": "Playlists deleted!", - "playlists-deleted-desc": "Playlists have been successfully deleted.", - "edit-playlist": "Edit playlist", - "playlist-edit-error-title": "Error editing playlist", - "playlist-edit-error-desc": "An error occurred while editing the playlist.", - "playlist-edited-title": "Playlist edited!", - "playlist-edited-desc": "The playlist has been successfully modified. You can now sync its maps!", - "playlists-loading": "Loading playlists...", - "no-playlists": "No playlists", - "download-playlists": "Download playlists", - "created-by": "Created by", - "stop-download": "Stop download", - "cancel-download": "Cancel download", - "open-file": "Open file", - "delete-playlist-ask": "Delete playlist?", - "delete-playlists-ask": "Delete playlists?", - "delete-playlist-desc": "Are you sure you want to delete the playlist \"{playlistTitle}\"?", - "delete-playlists-desc": "Are you sure you want to delete {nb} playlists?", - "delete-maps": "Delete maps", - "delete-playlist-maps-tip": "If enabled, all maps in the playlist will be deleted", - "delete-playlists-maps-tip": "If enabled, all maps in the playlists will be deleted", - "export-playlist-ask": "Export playlist?", - "export-playlists-ask": "Export playlists?", - "export-playlist-desc": "Are you sure you want to export the playlist \"{playlistTitle}\"?", - "export-playlists-desc": "Are you sure you want to export {nb} playlists?", - "export-maps": "Export maps", - "export-playlist-maps-tip": "If enabled, all maps in the playlist will also be exported", - "export-playlists-maps-tip": "If enabled, all maps in the playlists will also be exported", - "export": "Export", - "need-clone-title": "Warning", - "need-clone-desc-1": "This playlist has been downloaded from an external site and contains a synchronization link.", - "need-clone-desc-2": "To avoid losing your changes during synchronization, the playlist will be duplicated and its synchronization link removed.", - "need-clone-desc-3": "You can then, if you wish, delete the original playlist.", - "understood": "I understand", - "synchronize-playlist-ask": "Synchronize playlist?", - "synchronize-playlists-ask": "Synchronize playlists?", - "synchronize-playlist-desc": "Are you sure you want to synchronize the playlist \"{playlistTitle}\"?", - "synchronize-playlists-desc": "Are you sure you want to synchronize {nb} playlists?", - "synchronize-playlist-tip": "This action updates playlists and downloads missing maps; it may take several minutes.", - "synchronize": "Synchronize", - "curated": "Recommended", - "verified-mapper": "Verified mapper", - "empty-playlists": "Empty playlists", - "search-playlist": "Search for a playlist", - "no-playlists-found": "No playlists found", - "error-occur-while-loading-playlists": "An error occurred while loading playlists", - "error-occur-while-loading-playlist": "An error occurred while loading the playlist", - "loading-maps": "Loading maps...", - "no-maps-found-for-playlist": "No maps found for this playlist", - "playlist-contain-no-maps": "The playlist contains no maps", - "no-map-installed-for-playlist": "No maps installed for this playlist", - "playlist-is-waiting-to-download": "The playlist is waiting to download", - "download-maps": "Download maps", - "download-missing-maps": "Download missing maps", - "playlist-is-downloading": "The playlist is downloading", - "some-playlist-maps-are-missing": "Some maps in this playlist are missing", - "create-a-playlist": "Create a playlist", - "synchronize-playlists": "Synchronize playlists", - "export-playlists": "Export playlists", - "delete-playlists": "Delete playlists", - "choose-image": "Choose an image", - "title": "Title", - "playlist-title": "Playlist title", - "description": "Description", - "playlist-description": "Playlist description", - "author": "Author", - "playlist-author": "Playlist author", - "save": "Save", - "loading": "Loading...", - "installed": "Installed", - "no-map-found": "No map found", - "edit-playlist-shortcuts": "Hold Shift or Ctrl to select multiple maps", - "add-to-playlist": "Add to playlist", - "remove-from-playlist": "Remove from playlist", - "playlist-is-empty": "The playlist is empty", - "continue": "Continue", - "nb-maps": "Number of maps", - "nb-mappers": "Number of mappers", - "duration": "Duration", - "nps": "Notes per second", + "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": "Start date — End date", - "all": "All", - "last-24h": "Last 24h", - "last-week": "Last week", - "last-month": "Last month", - "3-last-month": "Last 3 months" + "start-date-end-date": "Дата початку — Дата завершення", + "all": "Всі", + "last-24h": "Останні 24 години", + "last-week": "Остання неділя", + "last-month": "Останній місяць", + "3-last-month": "Останні 3 місяці" }, - "playlists-imported": "Playlists imported", - "all-playlists-have-been-successfully-imported": "All playlists have been successfully imported", - "no-playlist-found": "No playlist found", - "no-playlist-found-in-selected-files": "No playlist found in the selected files", - "some-playlists-not-imported": "Some playlists not imported", + "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": "Some playlists could not be found", - "INVALID_PLAYLIST_FILE": "Some playlists are invalid", - "CANNOT_PARSE_PLAYLIST": "Some playlists are unreadable", - "unknown": "Some playlists could not be imported" + "INVALID_SOURCE": "Деякі списки не знайдені", + "INVALID_PLAYLIST_FILE": "Деякі списки не можуть бути імпортовані", + "CANNOT_PARSE_PLAYLIST": "Деякі списки не можуть бути прочитані", + "unknown": "Деякі списки не можуть бути імпортовані" }, - "no-playlists-imported": "No playlists imported", + "no-playlists-imported": "Нічого не імпортовано", "no-playlists-imported-errors": { - "INVALID_SOURCE": "Playlists could not be found", - "INVALID_PLAYLIST_FILE": "Playlists are invalid", - "CANNOT_PARSE_PLAYLIST": "Playlists are unreadable", - "unknown": "No playlist could be imported" + "INVALID_SOURCE": "Списки не знайдено", + "INVALID_PLAYLIST_FILE": "Списки не можуть бути імпортовані", + "CANNOT_PARSE_PLAYLIST": "Списки не можуть бути прочитані", + "unknown": "Нічого не імпортовано" } }, "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"], + "dayNames": ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"], + "monthNames": ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру", "Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"], "timeNames": ["a", "p", "am", "pm", "A", "P", "AM", "PM"] } } From abacf5f628a60290e03672a3f6ebe2c43bd33359 Mon Sep 17 00:00:00 2001 From: HighError Date: Thu, 30 Jan 2025 16:15:14 +0200 Subject: [PATCH 3/7] Fixed rounded flag --- .../svgs/flags/ukraine-icon.component copy.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/renderer/components/svgs/flags/ukraine-icon.component copy.tsx b/src/renderer/components/svgs/flags/ukraine-icon.component copy.tsx index 68571453..d341ac28 100644 --- a/src/renderer/components/svgs/flags/ukraine-icon.component copy.tsx +++ b/src/renderer/components/svgs/flags/ukraine-icon.component copy.tsx @@ -1,12 +1,12 @@ import { CSSProperties } from "react"; +// Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools + export function UkraineIcon(props: { className?: string; style?: CSSProperties }) { return ( - - - - - + + + ); } From a2a0c4e00ef61f742ae98db7b9212b09217d7123 Mon Sep 17 00:00:00 2001 From: HighError Date: Thu, 30 Jan 2025 16:25:28 +0200 Subject: [PATCH 4/7] fixed some mistypes --- assets/jsons/translations/uk.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/assets/jsons/translations/uk.json b/assets/jsons/translations/uk.json index be38ed80..edafa588 100644 --- a/assets/jsons/translations/uk.json +++ b/assets/jsons/translations/uk.json @@ -6,7 +6,7 @@ "launch": "Запустити", "mods": "Моди", "maps": "Карти", - "playlists": "Прейлисти", + "playlists": "Плейлисти", "models": "Моделі", "avatars": "Аватари", "sabers": "Шпаги", @@ -25,12 +25,12 @@ "warning": "Увага", "continue": "Продовжити", "shared": "Спільне", - "pin": "Закріпти", + "pin": "Закріпити", "unpin": "Відкріпити" }, "generic": { "env": { - "parse": "Не вдалось розібрати рядок змінної оточення" + "parse": "Не вдалося розібрати рядок змінної оточення" } }, "title-bar": { @@ -50,16 +50,16 @@ "oculus": "Режим Oculus", "oculus-description": "Якщо ви використовуєте Beat Saber через Steam, це дозволяє використовувати Oculus VR в обхід SteamVR, для потенційного приросту продуктивності. Це не обов'язково для Oculus.", "desktop": "Режим FPFC", - "desktop-description": "Режим літаючих контроллерів від першого лиця дозволяє використовувати меню за допомогою WASD і мишки. Це облегшує тестування модів, так як гра запускається без використання шолому VR!", + "desktop-description": "Режим літаючих контролерів від першого лиця дозволяє використовувати меню за допомогою WASD і мишки. Це облегшує тестування модів, так як гра запускається без використання шолому VR!", "debug": "Режим відладки", - "debug-description": "Включає вікно логів для IPA. В вікні будуть відображатись логи модів.", - "outdated-tippy": "Ця версія застаріла і деякі моди і/або функції можуть працювати некоректно. Рекомендуємо використовувати версію ({recommendedVersion}), щоб скористатись останніми функціями і виправленнями.", + "debug-description": "Включає вікно логів для IPA. У вікні будуть відображатись логи модів.", + "outdated-tippy": "Ця версія застаріла і деякі моди і/або функції можуть працювати некоректно. Рекомендуємо використовувати версію ({recommendedVersion}), щоб скористатися останніми функціями і виправленнями.", "advanced-launch": { "button": "Параметри запуску", "placeholder": "Параметри запуску, наприклад: KEY=VALUE %command% fpfc" }, "skipsteam": "Пропустити Steam", - "skipsteam-description": "Запобігає автоматичному відкриттю Steam. Включіть це, якщо ви використовуєте інше серидовище VR (WiVRn/Monado), з яким Steam праює некоректно.", + "skipsteam-description": "Запобігає автоматичному відкриттю Steam. Увімкніть це, якщо ви використовуєте інше серидовище VR (WiVRn/Monado), з яким Steam праює некоректно.", "map-editor": "Редактор карт", "map-editor-description": "Запускає офіційний редактор карт Beat Saber замість гри.", "proton-logs": "Протонний журнал", @@ -100,7 +100,7 @@ "sort": { "name": "Назва", "song-author": "Автор пісні", - "map-author": "Авто карти", + "map-author": "Автор карти", "bpm": "BPM", "duration": "Довжина", "likes": "Лайки", @@ -109,7 +109,7 @@ }, "playlists": { "drop-down": { - "browse-playlists": "Переглнянути плейлист", + "browse-playlists": "Переглянути плейлист", "create-a-playlist": "Створити плейлист", "import-playlists": "Імпортувати плейлист" }, @@ -169,7 +169,7 @@ } }, "dropdown": { - "open-folder": "Відкрийте папку", + "open-folder": "Відкрити папку", "verify-files": "Перевірити файли", "clone": "Клонувати", "edit": "Змінити", @@ -183,7 +183,7 @@ "steam-release": "Сторінка релізу", "dropdown": { "refresh": "Оновити версії", - "import-version": "Іспортувати версію" + "import-version": "Імпортувати версію" }, "recommended": "рекомендована", "recommended-tooltip": "Найбільш модифікована версія" From 2262f1d2ce9f41d1435a9417a66eb15bd2a1ccce Mon Sep 17 00:00:00 2001 From: HighError Date: Thu, 30 Jan 2025 16:47:50 +0200 Subject: [PATCH 5/7] renamed list to playlist --- assets/jsons/translations/uk.json | 158 +++++++++++++++--------------- 1 file changed, 79 insertions(+), 79 deletions(-) diff --git a/assets/jsons/translations/uk.json b/assets/jsons/translations/uk.json index edafa588..c89ad5ed 100644 --- a/assets/jsons/translations/uk.json +++ b/assets/jsons/translations/uk.json @@ -861,7 +861,7 @@ "link-folder": "Прив'язати папку", "unlink-folder": "Відв'язати папку", "link-all": "Прив'язати все", - "remove-from-the-list": "Видалити зі списку" + "remove-from-the-list": "Видалити зі плейслисту" } }, "adding-shared-folder": { @@ -1141,99 +1141,99 @@ "or-browse-files": "Або перегляньте файли" }, "playlist": { - "error-playlist-creation-title": "Помилка створення списку", - "error-playlist-creation-desc": "Виникла помилка під час створення списку.", - "playlist-created-title": "Список створюється", - "playlist-created-desc": "Список успішно створений. Тепер ви можете синхронізувати його карти!", - "download-playlist": "Завантажити список", - "synchronize-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": "Завантажити списки", + "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-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} списк(-и/-ів)?", + "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-playlist-maps-tip": "Якщо включено, всі карти в плейлисті будуть також експортовані", + "export-playlists-maps-tip": "Якщо включено, всі карти в плейлистах будуть також експортовані", "export": "Експортувати", "need-clone-title": "Повідомлення", - "need-clone-desc-1": "Цей список завантажений з зовнішнього сайту та містить посилання на синхронізацію.", - "need-clone-desc-2": "Для уникнення втрати змін під час синхронізації, список буде дубльований та його посилання на синхронізацію буде видалене", - "need-clone-desc-3": "Ви можете потім, якщо захочете, видалити оригінальний список", + "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-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": "Виникла помилка під час завантаження списку", + "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": "Список чекає на завантаження", + "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": "Видалити списки", + "playlist-is-downloading": "Плейлист завантажується", + "some-playlist-maps-are-missing": "Деякі карти в цьому плейлисті відсутні", + "create-a-playlist": "Створіть плейлист", + "synchronize-playlists": "Синхронізувати плейлисти", + "export-playlists": "Експортувати плейлисти", + "delete-playlists": "Видалити плейлисти", "choose-image": "Оберіть зображення", "title": "Назва", - "playlist-title": "Назва списку", + "playlist-title": "Назва плейлисту", "description": "Опис", - "playlist-description": "Опис списку", + "playlist-description": "Опис плейлисту", "author": "Автор", - "playlist-author": "Автор списку", + "playlist-author": "Автор плейлисту", "save": "Зберегти", "loading": "Завантаження...", "installed": "Встановлено", "no-map-found": "Нічого не знайдено", "edit-playlist-shortcuts": "Натисніть Shift або Ctrl, щоб обрати кілька карт", - "add-to-playlist": "Додати до списку", - "remove-from-playlist": "Видалити з списку", - "playlist-is-empty": "Список порожній", + "add-to-playlist": "Додати до плейлисту", + "remove-from-playlist": "Видалити з плейлисту", + "playlist-is-empty": "Плейлист порожній", "continue": "Продовжити", "nb-maps": "Кількість карт", "nb-mappers": "Кількість виконавців", @@ -1247,22 +1247,22 @@ "last-month": "Останній місяць", "3-last-month": "Останні 3 місяці" }, - "playlists-imported": "Списки імпортовані", - "all-playlists-have-been-successfully-imported": "Всі списки успішно імпортовані", + "playlists-imported": "Плейлисти імпортовані", + "all-playlists-have-been-successfully-imported": "Всі плейлисти успішно імпортовані", "no-playlist-found": "Нічого не знайдено", "no-playlist-found-in-selected-files": "Нічого не знайдено серед обраних файлів", - "some-playlists-not-imported": "Нечи списки не імпортовані", + "some-playlists-not-imported": "Деякі плейлисти не імпортовані", "some-playlists-have-been-imported": { - "INVALID_SOURCE": "Деякі списки не знайдені", - "INVALID_PLAYLIST_FILE": "Деякі списки не можуть бути імпортовані", - "CANNOT_PARSE_PLAYLIST": "Деякі списки не можуть бути прочитані", - "unknown": "Деякі списки не можуть бути імпортовані" + "INVALID_SOURCE": "Деякі плейлисти не знайдені", + "INVALID_PLAYLIST_FILE": "Деякі плейлисти не можуть бути імпортовані", + "CANNOT_PARSE_PLAYLIST": "Деякі плейлисти не можуть бути прочитані", + "unknown": "Деякі плейлисти не можуть бути імпортовані" }, "no-playlists-imported": "Нічого не імпортовано", "no-playlists-imported-errors": { - "INVALID_SOURCE": "Списки не знайдено", - "INVALID_PLAYLIST_FILE": "Списки не можуть бути імпортовані", - "CANNOT_PARSE_PLAYLIST": "Списки не можуть бути прочитані", + "INVALID_SOURCE": "Плейлисти не знайдено", + "INVALID_PLAYLIST_FILE": "Плейлисти не можуть бути імпортовані", + "CANNOT_PARSE_PLAYLIST": "Плейлисти не можуть бути прочитані", "unknown": "Нічого не імпортовано" } }, From 55ff418f4a064992bf1d432a530676383db272de Mon Sep 17 00:00:00 2001 From: HighError Date: Wed, 5 Feb 2025 17:26:34 +0200 Subject: [PATCH 6/7] renamed icon name --- src/renderer/components/svgs/bsm-icon.component.tsx | 2 +- ...raine-icon.component copy.tsx => ukraine-icon.component.tsx} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/renderer/components/svgs/flags/{ukraine-icon.component copy.tsx => ukraine-icon.component.tsx} (85%) diff --git a/src/renderer/components/svgs/bsm-icon.component.tsx b/src/renderer/components/svgs/bsm-icon.component.tsx index ef4761bd..d86f3faf 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 { UkraineIcon } from "./flags/ukraine-icon.component copy"; +import { UkraineIcon } from "./flags/ukraine-icon.component"; import { UkIcon } from "./flags/uk-icon.component"; import { TaskIcon } from "./icons/task-icon.component"; import { CopyIcon } from "./icons/copy-icon.component"; diff --git a/src/renderer/components/svgs/flags/ukraine-icon.component copy.tsx b/src/renderer/components/svgs/flags/ukraine-icon.component.tsx similarity index 85% rename from src/renderer/components/svgs/flags/ukraine-icon.component copy.tsx rename to src/renderer/components/svgs/flags/ukraine-icon.component.tsx index d341ac28..2f9088ef 100644 --- a/src/renderer/components/svgs/flags/ukraine-icon.component copy.tsx +++ b/src/renderer/components/svgs/flags/ukraine-icon.component.tsx @@ -1,6 +1,6 @@ import { CSSProperties } from "react"; -// Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools +// Uploaded from: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools export function UkraineIcon(props: { className?: string; style?: CSSProperties }) { return ( From 7600ead380373acdeebb7e32979fc112d3268611 Mon Sep 17 00:00:00 2001 From: Zagrios <40181755+Zagrios@users.noreply.github.com> Date: Sat, 8 Feb 2025 16:38:41 +0100 Subject: [PATCH 7/7] fix map translations + update ukraine flag --- assets/jsons/translations/uk.json | 182 +++++++++--------- .../components/svgs/bsm-icon.component.tsx | 2 +- .../svgs/flags/ukraine-icon.component.tsx | 16 +- 3 files changed, 101 insertions(+), 99 deletions(-) diff --git a/assets/jsons/translations/uk.json b/assets/jsons/translations/uk.json index c89ad5ed..f40a46a9 100644 --- a/assets/jsons/translations/uk.json +++ b/assets/jsons/translations/uk.json @@ -938,98 +938,98 @@ }, "bs-version-outdated": { "body": "Версія {outdatedVersion} застаріла, і деякі моди чи функції можуть більше не працювати належним чином. Будь ласка, завантажте останню рекомендовану версію ({recommendedVersion}) Beat Saber, щоб насолоджуватися останніми функціями та виправленнями помилок." + } + }, + "maps": { + "map-filter-panel": { + "duration": "Тривалість", + "nps": "Нот за секунду", + "njs": "Швидкість стрибка нот", + "tags": "теги", + "specificities": "загальне", + "requirements": "вимоги", + "exclude": "виключити", + "leaderboard": "таблиця лідерів" }, - "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": "Виділити складність" - } + "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": { diff --git a/src/renderer/components/svgs/bsm-icon.component.tsx b/src/renderer/components/svgs/bsm-icon.component.tsx index d86f3faf..f4f95305 100644 --- a/src/renderer/components/svgs/bsm-icon.component.tsx +++ b/src/renderer/components/svgs/bsm-icon.component.tsx @@ -13,7 +13,6 @@ import { SpainIcon } from "./flags/spain-icon.component"; import { ItalyIcon } from "./flags/italy-icon.component"; import { UsaIcon } from "./flags/usa-icon.component"; import { UkraineIcon } from "./flags/ukraine-icon.component"; -import { UkIcon } from "./flags/uk-icon.component"; import { TaskIcon } from "./icons/task-icon.component"; import { CopyIcon } from "./icons/copy-icon.component"; import { SteamIcon } from "./icons/steam-icon.component"; @@ -71,6 +70,7 @@ 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"; diff --git a/src/renderer/components/svgs/flags/ukraine-icon.component.tsx b/src/renderer/components/svgs/flags/ukraine-icon.component.tsx index 2f9088ef..517ed36a 100644 --- a/src/renderer/components/svgs/flags/ukraine-icon.component.tsx +++ b/src/renderer/components/svgs/flags/ukraine-icon.component.tsx @@ -1,12 +1,14 @@ -import { CSSProperties } from "react"; +import { createSvgIcon } from "../svg-icon.type"; // Uploaded from: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -export function UkraineIcon(props: { className?: string; style?: CSSProperties }) { +export const UkraineIcon = createSvgIcon((props, ref) => { return ( - - - - + + + + + + ); -} +})