diff --git a/assets/jsons/translations/de.json b/assets/jsons/translations/de.json index 89a76ea6..f5213e78 100644 --- a/assets/jsons/translations/de.json +++ b/assets/jsons/translations/de.json @@ -8,6 +8,10 @@ "maps": "Maps", "playlists": "Playlists", "models": "Modelle", + "avatars": "Avatare", + "sabers": "Säbel", + "platforms": "Plattformen", + "blocks": "Blöcke", "cancel": "Abbrechen", "delete": "Löschen", "accept": "Akzeptieren", @@ -19,7 +23,8 @@ "choose-folder": "Ordner Wählen", "unknown": "Ein unbekannter Fehler ist aufgetreten ¯\\_(ツ)_/¯", "warning": "Achtung", - "continue": "Weiter" + "continue": "Weiter", + "shared": "Geteilt" }, "title-bar": { "outdated": "veraltet" @@ -756,31 +761,29 @@ } } }, - "link-maps": { - "title": "Maps verknüpfen", - "desc": "Das Verknüpfen von Maps ermöglicht es, Maps zwischen allen Versionen zu teilen. Nach der Verknüpfung profitiert diese Version von den geteilten Maps.", - "info": "Das Hinzufügen und Löschen von Maps wird ebenfalls geteilt.", - "keep-maps": { - "label": "Maps behalten", - "title": "\"Maps behalten\" verschiebt die Maps der aktuellen Version in den geteilten Maps-Ordner. Andernfalls gehen sie verloren." - }, - "valid-btn": "Maps verknüpfen" - }, - "unlink-maps": { - "title": "Maps-Verknüpfung aufheben", - "desc": "Bitte beachte, dass das Aufheben der Verknüpfung von Maps die Verwendung von geteilten Maps für diese Version nicht zulässt.", - "keep-maps": { - "label": "Maps behalten", - "title": "\"Maps behalten\" kopiert die Maps aus dem geteilten Maps-Ordner in den Ordner der ausgewählten Version. Andernfalls gehen sie verloren." - }, - "valid-btn": "Verknüpfung aufheben" - }, "delete-duplicate-maps": { "title": "Map entfernen?", "desc": "Nur die Karte \"{map}\" ist ein Duplikat. Bist du sicher, dass du sie löschen möchtest?", "desc-plural": "Es wurden {nb} doppelte Karten gefunden. Bist du sicher, dass du sie löschen möchtest?" } }, + "link-contents": { + "title": "Die {contentType} verknüpfen", + "p-1": "Das Verknüpfen der {contentType} ermöglicht das Teilen der {contentType} zwischen allen Versionen mit dieser Funktion. Sobald verknüpft, profitiert diese Version von geteilten {contentType}.", + "p-2": "Um die Verknüpfungsfunktion zu nutzen, werden alle deine {itemsHtml} in den {sharedHtml}-Ordner verschoben. Danach wird ein symbolischer Link, der auf den gemeinsamen {contentType}-Ordner verweist, deinen ursprünglichen {contentType}-Ordner ersetzen.", + "warning": "Bitte beachten Sie, dass alle Änderungen an den {contentType} auch alle Versionen mit dieser Funktion beeinflussen.", + "what-is-a-symbolic-link": "Was ist ein symbolischer Link?", + "i-need-help": "Ich brauche Hilfe", + "valid-btn": "Die {contentType} verknüpfen" + }, + "unlink-contents": { + "title": "Die {contentType} entknüpfen", + "p-1": "Achtung, das Entknüpfen der {contentType} deaktiviert die Nutzung von geteilten {contentType} für diese Version, bis es wieder aktiviert wird.", + "p-2": "Um die Verknüpfung deiner {contentType} aufzuheben, wird der symbolische Link, der auf den {sharedHtml}-Ordner verweist, entfernt. Danach werden alle {contentType} aus dem geteilten Ordner in den {itemsHtml}-Ordner deiner Beat Saber-Version kopiert.", + "do-not-copy-contents": "Die {contentType} nicht kopieren", + "do-not-copy-contents-tip": "Wenn aktiviert, werden die {contentType} im geteilten Ordner nicht in deine Beat Saber-Version kopiert. Infolgedessen werden keine {contentType} in deiner Version verbleiben, nachdem die Verknüpfung aufgehoben wurde.", + "valid-btn": "Die {contentType} entknüpfen" + }, "download-maps": { "search-btn": "Suchen", "loading-maps": "Lade Maps...", @@ -1027,86 +1030,6 @@ "no-models": "Keine Modelle gefunden.", "no-internet": "Keine Internetverbindung.", "error-occured": "Ein Fehler ist aufgetreten, versuche es später erneut." - }, - "link-models": { - "avatar": { - "title": "Avatare verbinden", - "desc": "Das Verbinden von Avataren ermöglicht das Teilen von Avataren zwischen allen Versionen. Sobald verbunden, wird diese Version von den geteilten Avataren profitieren.", - "info": "Das Hinzufügen und Entfernen von Avataren wird ebenfalls geteilt.", - "keep-models": { - "label": "Avatare behalten", - "title": "Das Behalten der Avatare wird die Avatare der aktuellen Version in den Ordner der geteilten Avatare verschieben. Andernfalls gehen sie verloren." - }, - "valid-btn": "Avatare verbinden" - }, - "saber": { - "title": "Säbel verbinden", - "desc": "Das Verbinden von Säbeln ermöglicht das Teilen von Säbeln zwischen allen Versionen. Sobald verbunden, wird diese Version von den geteilten Säbeln profitieren.", - "info": "Das Hinzufügen und Entfernen von Säbeln wird ebenfalls geteilt.", - "keep-models": { - "label": "Säbel behalten", - "title": "Das Behalten der Säbel wird die Säbel der aktuellen Version in den Ordner der geteilten Säbel verschieben. Andernfalls gehen sie verloren." - }, - "valid-btn": "Säbel verbinden" - }, - "platform": { - "title": "Plattformen verbinden", - "desc": "Das Verbinden von Plattformen ermöglicht das Teilen von Plattformen zwischen allen Versionen. Sobald verbunden, wird diese Version von den geteilten Plattformen profitieren.", - "info": "Das Hinzufügen und Entfernen von Plattformen wird ebenfalls geteilt.", - "keep-models": { - "label": "Plattformen behalten", - "title": "Das Behalten der Plattformen wird die Plattformen der aktuellen Version in den Ordner der geteilten Plattformen verschieben. Andernfalls gehen sie verloren." - }, - "valid-btn": "Plattformen verbinden" - }, - "bloq": { - "title": "Bloqs verbinden", - "desc": "Das Verbinden von Bloqs ermöglicht das Teilen von Bloqs zwischen allen Versionen. Sobald verbunden, wird diese Version von den geteilten Bloqs profitieren.", - "info": "Das Hinzufügen und Entfernen von Bloqs wird ebenfalls geteilt.", - "keep-models": { - "label": "Bloqs behalten", - "title": "Das Behalten der Bloqs wird die Bloqs der aktuellen Version in den Ordner der geteilten Bloqs verschieben. Andernfalls gehen sie verloren." - }, - "valid-btn": "Bloqs verbinden" - } - }, - "unlink-models": { - "avatar": { - "title": "Avatare trennen", - "desc": "Achtung, das Trennen der Avatare wird die Nutzung der geteilten Avatare für diese Version nicht mehr ermöglichen.", - "keep-models": { - "label": "Avatare behalten", - "title": "Das Behalten der Avatare wird eine Kopie der geteilten Avatare für die aktuelle Version erstellen. Andernfalls wird kein Avatar für diese Version aufbewahrt." - }, - "valid-btn": "Avatare trennen" - }, - "saber": { - "title": "Säbel trennen", - "desc": "Achtung, das Trennen der Säbel wird die Nutzung der geteilten Säbel für diese Version nicht mehr ermöglichen.", - "keep-models": { - "label": "Säbel behalten", - "title": "Das Behalten der Säbel wird eine Kopie der geteilten Säbel für die aktuelle Version erstellen. Andernfalls wird kein Säbel für diese Version aufbewahrt." - }, - "valid-btn": "Säbel trennen" - }, - "platform": { - "title": "Plattformen trennen", - "desc": "Achtung, das Trennen der Plattformen wird die Nutzung der geteilten Plattformen für diese Version nicht mehr ermöglichen.", - "keep-models": { - "label": "Plattformen behalten", - "title": "Das Behalten der Plattformen wird eine Kopie der geteilten Plattformen für die aktuelle Version erstellen. Andernfalls wird keine Plattform für diese Version aufbewahrt." - }, - "valid-btn": "Plattformen trennen" - }, - "bloq": { - "title": "Bloqs trennen", - "desc": "Achtung, das Trennen der Bloqs wird die Nutzung der geteilten Bloqs für diese Version nicht mehr ermöglichen.", - "keep-models": { - "label": "Bloqs behalten", - "title": "Das Behalten der Bloqs wird eine Kopie der geteilten Bloqs für die aktuelle Version erstellen. Andernfalls wird kein Bloq für diese Version aufbewahrt." - }, - "valid-btn": "Bloqs trennen" - } } }, "notifications": { @@ -1183,14 +1106,6 @@ "stop-download": "Download stoppen", "cancel-download": "Download abbrechen", "open-file": "Datei öffnen", - "link-playlists": "Playlists verknüpfen", - "link-playlist-desc": "Das Verknüpfen von Playlists ermöglicht das Teilen von Playlists zwischen allen Versionen. Nach der Verknüpfung profitiert diese Version von geteilten Playlists.", - "link-playlist-info": "Das Hinzufügen und Löschen von Playlists wird ebenfalls geteilt.", - "keep-playlists": "Playlists behalten", - "keep-playlists-tip": "Wenn du Playlists behältst, werden die Playlists von der aktuellen Version in den Ordner für geteilte Playlists verschoben. Andernfalls gehen sie verloren.", - "unlink-playlists": "Playlists trennen", - "unlink-playlist-desc": "Achtung, das Trennen von Playlists verhindert die Nutzung geteilter Playlists für diese Version.", - "unlink-keep-playlists-tip": "Wenn du Playlists behältst, wird eine Kopie der geteilten Playlists für die aktuelle Version erstellt. Andernfalls werden keine Playlists für diese Version behalten.", "delete-playlist-ask": "Playlist löschen?", "delete-playlists-ask": "Playlists löschen?", "delete-playlist-desc": "Bist du dir sicher, dass du die Playlist \"{playlistTitle}\" löschen möchtest?", diff --git a/assets/jsons/translations/en.json b/assets/jsons/translations/en.json index 12ff1c77..07f6cb62 100644 --- a/assets/jsons/translations/en.json +++ b/assets/jsons/translations/en.json @@ -8,6 +8,10 @@ "maps": "Maps", "playlists": "Playlists", "models": "Models", + "avatars": "Avatars", + "sabers": "Sabers", + "platforms": "Platforms", + "blocks": "Blocks", "cancel": "Cancel", "delete": "Delete", "accept": "Accept", @@ -19,7 +23,8 @@ "choose-folder": "Choose folder", "unknown": "An unknown error occurred ¯\\_(ツ)_/¯", "warning": "Warning", - "continue": "Continue" + "continue": "Continue", + "shared": "Shared" }, "title-bar": { "outdated": "outdated" @@ -755,32 +760,25 @@ "multiple": "These maps will also be removed from versions using shared maps" } } - }, - "link-maps": { - "title": "Link maps", - "desc": "Linking maps allows sharing maps between all versions with this feature enabled. Once linked, this version will benefit from shared maps.", - "info": "Adding and deleting maps will also be shared", - "keep-maps": { - "label": "Keep maps", - "title": "Keeping maps will copy all maps from the current version to the shared maps folder. Otherwise, no maps will be kept from this version and they will be lost." - }, - "valid-btn": "Link maps" - }, - "unlink-maps": { - "title": "Unlink maps", - "desc": "Be careful, unlinking maps will disable the use of shared maps for this version, until it is reenabled.", - "keep-maps": { - "label": "Keep maps", - "title": "Keeping maps will copy all maps from the shared folder to the current version after unlinking. Maps will not be lost if this is disabled." - }, - "valid-btn": "Unlink maps" - }, - "delete-duplicate-maps": { - "title": "Delete maps?", - "desc": "Only the map \"{map}\" is a duplicate. Are you sure you want to delete it?", - "desc-plural": "{nb} duplicate maps have been found. Are you sure you want to delete them?" } }, + "link-contents":{ + "title": "Link {contentType}", + "p-1": "Linking {contentType} allows sharing {contentType} between all versions with this feature enabled. Once linked, this version will benefit from shared {contentType}.", + "p-2": "In order to enjoy the linking feature, all your {itemsHtml} will be moved to the {sharedHtml} folder. After that, a symbolic link pointing to the shared {contentType} folder will replace your original {contentType} folder.", + "warning": "Please note that any changes affecting {contentType} will also affect all versions with this feature enabled.", + "what-is-a-symbolic-link": "What is a symbolic link?", + "i-need-help": "I need help", + "valid-btn": "Link {contentType}" + }, + "unlink-contents":{ + "title": "Unlink {contentType}", + "p-1": "Be careful, unlinking {contentType} will disable the use of shared {contentType} for this version, until it is reenabled.", + "p-2": "In order to unlink your maps, the symbolic link pointing to the {sharedHtml} will be removed. After that, all maps in the shared folder will be copied to the {itemsHtml} folder of your Beat Saber version.", + "do-not-copy-contents": "Do not copy {contentType}", + "do-not-copy-contents-tip": "If enabled, {contentType} in the shared folder will not be copied to your Beat Saber version. As a result, no {contentType} will remain in your Beat Saber version after unlinking.", + "valid-btn": "Unlink {contentType}" + }, "download-maps": { "search-btn": "Search", "loading-maps": "Loading maps...", @@ -1027,86 +1025,6 @@ "no-models": "No models found.", "no-internet": "No internet connection.", "error-occured": "An error occurred, try again later." - }, - "link-models": { - "avatar": { - "title": "Link Avatars", - "desc": "Linking avatars allows sharing avatars between all versions with this feature enabled. Once linked, this version will benefit from shared avatars.", - "info": "Adding and deleting avatars will also be shared", - "keep-models": { - "label": "Keep Avatars", - "title": "Keeping avatars will copy all avatars from the current version to the shared avatars folder. Otherwise, no avatars will be kept from this version and they will be lost." - }, - "valid-btn": "Link Avatars" - }, - "saber": { - "title": "Link Sabers", - "desc": "Linking sabers allows sharing sabers between all versions with this feature enabled. Once linked, this version will benefit from shared sabers.", - "info": "Adding and deleting sabers will also be shared", - "keep-models": { - "label": "Keep Sabers", - "title": "Keeping sabers will copy all sabers from the current version to the shared sabers folder. Otherwise, no sabers will be kept from this version and they will be lost." - }, - "valid-btn": "Link Sabers" - }, - "platform": { - "title": "Link Platforms", - "desc": "Linking platforms allows sharing platforms between all versions with this feature enabled. Once linked, this version will benefit from shared platforms.", - "info": "Adding and deleting platforms will also be shared", - "keep-models": { - "label": "Keep Platforms", - "title": "Keeping platforms will copy all platforms from the current version to the shared platforms folder. Otherwise, no platforms will be kept from this version and they will be lost." - }, - "valid-btn": "Link Platforms" - }, - "bloq": { - "title": "Link Bloqs", - "desc": "Linking bloqs allows sharing bloqs between all versions with this feature enabled. Once linked, this version will benefit from shared bloqs.", - "info": "Adding and deleting bloqs will also be shared", - "keep-models": { - "label": "Keep Bloqs", - "title": "Keeping bloqs will copy all bloqs from the current version to the shared bloqs folder. Otherwise, no bloqs will be kept from this version and they will be lost." - }, - "valid-btn": "Link Bloqs" - } - }, - "unlink-models": { - "avatar": { - "title": "Unlink Avatars", - "desc": "Be careful, unlinking avatars will disable the use of shared avatars for this version, until it is reenabled.", - "keep-models": { - "label": "Keep Avatars", - "title": "Keeping avatars will copy all avatars from the shared folder to the current version after unlinking. Avatars will not be lost if this is disabled." - }, - "valid-btn": "Unlink Avatars" - }, - "saber": { - "title": "Unlink Sabers", - "desc": "Be careful, unlinking sabers will disable the use of shared sabers for this version, until it is reenabled.", - "keep-models": { - "label": "Keep Sabers", - "title": "Keeping sabers will copy all sabers from the shared folder to the current version after unlinking. Sabers will not be lost if this is disabled." - }, - "valid-btn": "Unlink Sabers" - }, - "platform": { - "title": "Unlink Platforms", - "desc": "Be careful, unlinking platforms will disable the use of shared platforms for this version, until it is reenabled.", - "keep-models": { - "label": "Keep Platforms", - "title": "Keeping platforms will copy all platforms from the shared folder to the current version after unlinking. Platforms will not be lost if this is disabled." - }, - "valid-btn": "Unlink Platforms" - }, - "bloq": { - "title": "Unlink Bloqs", - "desc": "Be careful, unlinking bloqs will disable the use of shared bloqs for this version, until it is reenabled.", - "keep-models": { - "label": "Keep Bloqs", - "title": "Keeping bloqs will copy all bloqs from the shared folder to the current version after unlinking. Bloqs will not be lost if this is disabled." - }, - "valid-btn": "Unlink Bloqs" - } } }, "notifications": { @@ -1183,14 +1101,6 @@ "stop-download": "Stop download", "cancel-download": "Cancel download", "open-file": "Open file", - "link-playlists": "Link playlists", - "link-playlist-desc": "Linking playlists allows sharing playlists between all versions. Once linked, this version will benefit from shared playlists", - "link-playlist-info": "Adding and deleting playlists will also be shared", - "keep-playlists": "Keep playlists", - "keep-playlists-tip": "Keeping playlists will move the playlists from the current version to the shared playlists folder. Otherwise, they will be lost", - "unlink-playlists": "Unlink playlists", - "unlink-playlist-desc": "Warning, unlinking playlists will no longer allow the use of shared playlists for this version.", - "unlink-keep-playlists-tip": "Keeping playlists will create a copy of shared playlists for the current version. Otherwise, no playlists will be kept for this version.", "delete-playlist-ask": "Delete playlist?", "delete-playlists-ask": "Delete playlists?", "delete-playlist-desc": "Are you sure you want to delete the playlist \"{playlistTitle}\"?", diff --git a/assets/jsons/translations/es.json b/assets/jsons/translations/es.json index 8eeb518a..2a740437 100644 --- a/assets/jsons/translations/es.json +++ b/assets/jsons/translations/es.json @@ -8,6 +8,10 @@ "maps": "Mapas", "playlists": "Playlists", "models": "Modelos", + "avatars": "Avatares", + "sabers": "Sables", + "platforms": "Plataformas", + "blocks": "Bloques", "cancel": "Cancelar", "delete": "Borrar", "accept": "Aceptar", @@ -19,7 +23,8 @@ "choose-folder": "Elige la carpeta", "unknown": "Se ha producido un error desconocido ¯\\_(ツ)_/¯", "warning": "Advertencia", - "continue": "Continuar" + "continue": "Continuar", + "shared": "Compartido" }, "title-bar": { "outdated": "obsoleto" @@ -756,31 +761,29 @@ } } }, - "link-maps": { - "title": "Vincular mapas", - "desc": "La vinculación de mapas permite compartir mapas entre todas las versiones. Una vez vinculada, esta versión se beneficiará de los mapas compartidos", - "info": "También se compartirá la adición y eliminación de mapas.", - "keep-maps": { - "label": "Mantener mapas", - "title": "Mantener mapas moverá los mapas de la versión actual a la carpeta de mapas compartidos. De lo contrario, se perderán" - }, - "valid-btn": "Vincular mapas" - }, - "unlink-maps": { - "title": "Desvincular mapas", - "desc": "Ten en cuenta que desvincular mapas no permitirá el uso de mapas compartidos para esta versión.", - "keep-maps": { - "label": "Mantener mapas", - "title": "Mantener los mapas creará una copia de los mapas compartidos para la versión actual. De lo contrario, no se mantendrá ningún mapa para esta versión." - }, - "valid-btn": "Desvincular mapas" - }, "delete-duplicate-maps": { "title": "¿Borrar mapas?", "desc": "Solo el mapa \"{map}\" está duplicado. ¿Estás seguro de que quieres eliminarlo?", "desc-plural": "Se han encontrado {nb} mapas duplicados. ¿Estás seguro de que quieres eliminarlos?" } }, + "link-contents": { + "title": "Vincular los {contentType}", + "p-1": "Vincular los {contentType} permite compartir los {contentType} entre todas las versiones que tengan esta función activada. Una vez vinculados, esta versión se beneficiará de los {contentType} compartidos.", + "p-2": "Para disfrutar de la función de vinculación, todos tus {itemsHtml} se moverán a la carpeta {sharedHtml}. Después de eso, un enlace simbólico que apunta a la carpeta compartida de {contentType} reemplazará tu carpeta original de {contentType}.", + "warning": "Ten en cuenta que cualquier cambio que afecte a los {contentType} también afectará a todas las versiones con esta función activada.", + "what-is-a-symbolic-link": "¿Qué es un enlace simbólico?", + "i-need-help": "Necesito ayuda", + "valid-btn": "Vincular los {contentType}" + }, + "unlink-contents": { + "title": "Desvincular los {contentType}", + "p-1": "Ten cuidado, desvincular los {contentType} desactivará el uso de los {contentType} compartidos para esta versión, hasta que se vuelva a activar.", + "p-2": "Para desvincular tus {contentType}, se eliminará el enlace simbólico que apunta a la carpeta {sharedHtml}. Después de eso, todos los {contentType} en la carpeta compartida se copiarán a la carpeta {itemsHtml} de tu versión de Beat Saber.", + "do-not-copy-contents": "No copiar los {contentType}", + "do-not-copy-contents-tip": "Si se activa, los {contentType} en la carpeta compartida no se copiarán a tu versión de Beat Saber. Como resultado, ningún {contentType} permanecerá en tu versión de Beat Saber después de desvincular.", + "valid-btn": "Desvincular los {contentType}" + }, "download-maps": { "search-btn": "Buscar", "loading-maps": "Cargando mapas...", @@ -1027,86 +1030,6 @@ "no-models": "No se encontraron modelos.", "no-internet": "Sin conexión a Internet.", "error-occured": "Ocurrió un error, inténtalo de nuevo más tarde." - }, - "link-models": { - "avatar": { - "title": "Vincular avatares", - "desc": "La vinculación de avatares permite compartir avatares entre todas las versiones. Una vez vinculada, esta versión se beneficiará de los avatares compartidos", - "info": "La adición y eliminación de avatares también se compartirá", - "keep-models": { - "label": "Conservar los avatares", - "title": "Conservar los avatares moverá los avatares de la versión actual a la carpeta de avatares compartidos. De lo contrario, se perderán" - }, - "valid-btn": "Vincular avatares" - }, - "saber": { - "title": "Vincular sables", - "desc": "La vinculación de sables permite compartir sables entre todas las versiones. Una vez vinculada, esta versión se beneficiará de los sables compartidos", - "info": "La adición y eliminación de sables también se compartirá", - "keep-models": { - "label": "Conservar los sables", - "title": "Conservar los sables moverá los sables de la versión actual a la carpeta de sables compartidos. De lo contrario, se perderán" - }, - "valid-btn": "Vincular sables" - }, - "platform": { - "title": "Vincular plataformas", - "desc": "La vinculación de plataformas permite compartir plataformas entre todas las versiones. Una vez vinculada, esta versión se beneficiará de las plataformas compartidas", - "info": "La adición y eliminación de plataformas también se compartirá", - "keep-models": { - "label": "Conservar las plataformas", - "title": "Conservar las plataformas moverá las plataformas de la versión actual a la carpeta de plataformas compartidas. De lo contrario, se perderán" - }, - "valid-btn": "Vincular plataformas" - }, - "bloq": { - "title": "Vincular bloques", - "desc": "La vinculación de bloques permite compartir bloques entre todas las versiones. Una vez vinculada, esta versión se beneficiará de los bloques compartidos", - "info": "La adición y eliminación de bloques también se compartirá", - "keep-models": { - "label": "Conservar los bloques", - "title": "Conservar los bloques moverá los bloques de la versión actual a la carpeta de bloques compartidos. De lo contrario, se perderán" - }, - "valid-btn": "Vincular bloques" - } - }, - "unlink-models": { - "avatar": { - "title": "Desvincular avatares", - "desc": "Atención, desvincular los avatares ya no permitirá el uso de avatares compartidos para esta versión.", - "keep-models": { - "label": "Conservar los avatares", - "title": "Conservar los avatares creará una copia de los avatares compartidos para la versión actual. En caso contrario, ningún avatar se conservará para esta versión." - }, - "valid-btn": "Desvincular avatares" - }, - "saber": { - "title": "Desvincular sables", - "desc": "Atención, desvincular los sables ya no permitirá el uso de sables compartidos para esta versión.", - "keep-models": { - "label": "Conservar los sables", - "title": "Conservar los sables creará una copia de los sables compartidos para la versión actual. En caso contrario, ningún sable se conservará para esta versión." - }, - "valid-btn": "Desvincular sables" - }, - "platform": { - "title": "Desvincular plataformas", - "desc": "Atención, desvincular las plataformas ya no permitirá el uso de plataformas compartidas para esta versión.", - "keep-models": { - "label": "Conservar las plataformas", - "title": "Conservar las plataformas creará una copia de las plataformas compartidas para la versión actual. En caso contrario, ninguna plataforma se conservará para esta versión." - }, - "valid-btn": "Desvincular plataformas" - }, - "bloq": { - "title": "Desvincular bloques", - "desc": "Atención, desvincular los bloques ya no permitirá el uso de bloques compartidos para esta versión.", - "keep-models": { - "label": "Conservar los bloques", - "title": "Conservar los bloques creará una copia de los bloques compartidos para la versión actual. En caso contrario, ningún bloques se conservará para esta versión." - }, - "valid-btn": "Desvincular bloques" - } } }, "notifications": { @@ -1183,14 +1106,6 @@ "stop-download": "Detener descarga", "cancel-download": "Cancelar descarga", "open-file": "Abrir archivo", - "link-playlists": "Vincular listas de reproducción", - "link-playlist-desc": "Vincular listas de reproducción permite compartirlas entre todas las versiones. Una vez vinculada, esta versión se beneficiará de las listas de reproducción compartidas", - "link-playlist-info": "Añadir y eliminar listas de reproducción también se compartirá", - "keep-playlists": "Mantener listas de reproducción", - "keep-playlists-tip": "Mantener las listas de reproducción moverá las listas de la versión actual a la carpeta de listas compartidas. De lo contrario, se perderán", - "unlink-playlists": "Desvincular listas de reproducción", - "unlink-playlist-desc": "Advertencia, desvincular las listas de reproducción ya no permitirá el uso de listas compartidas para esta versión.", - "unlink-keep-playlists-tip": "Mantener las listas de reproducción creará una copia de las listas compartidas para la versión actual. De lo contrario, no se mantendrán listas para esta versión.", "delete-playlist-ask": "¿Eliminar lista de reproducción?", "delete-playlists-ask": "¿Eliminar listas de reproducción?", "delete-playlist-desc": "¿Estás seguro de que quieres eliminar la lista de reproducción \"{playlistTitle}\"?", diff --git a/assets/jsons/translations/fr.json b/assets/jsons/translations/fr.json index 81bc6068..b7d51c7a 100644 --- a/assets/jsons/translations/fr.json +++ b/assets/jsons/translations/fr.json @@ -8,6 +8,10 @@ "maps": "Maps", "playlists": "Playlists", "models": "Modèles", + "avatars": "Avatars", + "sabers": "Sabres", + "platforms": "Plateformes", + "blocks": "Blocs", "cancel": "Annuler", "delete": "Supprimer", "accept": "Accepter", @@ -19,7 +23,8 @@ "choose-folder": "Choisir un dossier", "unknown": "Une erreur inconnue s'est produite ¯\\_(ツ)_/¯", "warning": "Attention", - "continue": "Continuer" + "continue": "Continuer", + "shared": "Partagé" }, "title-bar": { "outdated": "obsolète" @@ -757,31 +762,29 @@ } } }, - "link-maps": { - "title": "Lier les maps", - "desc": "La liaison des maps permet de partager les maps entre toute les version. Une fois liée, cette version profitera des maps partagées", - "info": "L'ajout et la suppression de maps sera également partagé", - "keep-maps": { - "label": "Conserver les maps", - "title": "Conserver les maps déplacera les maps de la version actuelle dans le dossier des maps partagées. Dans le cas contraire elles seront perdues" - }, - "valid-btn": "Lier les maps" - }, - "unlink-maps": { - "title": "Délier les maps", - "desc": "Attention, délier les maps ne permettra plus l'utilisation des maps paratagées pour cette version.", - "keep-maps": { - "label": "Conserver les maps", - "title": "Conserver les maps créera une copie des maps partagées pour la version actuelle. Dans le cas contraire, aucune map ne sera conservée pour cette version." - }, - "valid-btn": "Délier les maps" - }, "delete-duplicate-maps": { "title": "Supprimer les maps ?", "desc": "Seule la map \"{map}\" est en double. Es-tu sûr de vouloir la supprimer ?", "desc-plural": "{nb} maps en double ont été trouvées. Es-tu sûr de vouloir les supprimer ?" } }, + "link-contents": { + "title": "Lier les {contentType}", + "p-1": "Lier les {contentType} permet de partager les {contentType} entre toutes les versions ayant cette fonctionnalité activée. Une fois liés, cette version bénéficiera des {contentType} partagés.", + "p-2": "Pour profiter de la fonctionnalité de liaison, les {itemsHtml} seront déplacés dans le dossier {sharedHtml}. Ensuite, un lien symbolique pointant vers le dossier partagé des {contentType} remplacera votre dossier original des {contentType}.", + "warning": "Veuillez noter que toute modification affectant les {contentType} affectera également toutes les versions ayant cette fonctionnalité activée.", + "what-is-a-symbolic-link": "Qu'est-ce qu'un lien symbolique ?", + "i-need-help": "J'ai besoin d'aide", + "valid-btn": "Lier les {contentType}" + }, + "unlink-contents": { + "title": "Délier les {contentType}", + "p-1": "Attention, délier les {contentType} désactivera l'utilisation des {contentType} partagés pour cette version, jusqu'à ce qu'elle soit réactivée.", + "p-2": "Pour délier vos {contentType}, le lien symbolique pointant vers le dossier {sharedHtml} sera supprimé. Ensuite, les {contentType} dans le dossier partagé seront copiés dans le dossier {itemsHtml} de votre version de Beat Saber.", + "do-not-copy-contents": "Ne pas copier les {contentType}", + "do-not-copy-contents-tip": "Si activé, les {contentType} dans le dossier partagé ne seront pas copiés dans votre version de Beat Saber. En conséquence, aucun(e)s {contentType} ne restera dans votre version de Beat Saber après la suppression de la liaison.", + "valid-btn": "Délier les {contentType}" + }, "download-maps": { "search-btn": "Rechercher", "loading-maps": "Chargement des maps...", @@ -1028,86 +1031,6 @@ "no-models": "Aucun modèles trouvés.", "no-internet": "Pas de connexion internet.", "error-occured": "Une erreur est survenue, réessaye plus tard." - }, - "link-models": { - "avatar": { - "title": "Lier les avatars", - "desc": "La liaison des avatars permet de partager les avatars entre toutes les version. Une fois liée, cette version profitera des avatars partagés", - "info": "L'ajout et la suppression d'avatars seront également partagés", - "keep-models": { - "label": "Conserver les avatars", - "title": "Conserver les avatars déplacera les avatars de la version actuelle dans le dossier des avatars partagés. Dans le cas contraire ils seront perdus" - }, - "valid-btn": "Lier les avatars" - }, - "saber": { - "title": "Lier les sabres", - "desc": "La liaison des sabres permet de partager les sabres entre toutes les version. Une fois liée, cette version profitera des sabres partagés", - "info": "L'ajout et la suppression de sabres seront également partagés", - "keep-models": { - "label": "Conserver les sabres", - "title": "Conserver les sabres déplacera les sabres de la version actuelle dans le dossier des sabres partagés. Dans le cas contraire ils seront perdus" - }, - "valid-btn": "Lier les sabres" - }, - "platform": { - "title": "Lier les plateformes", - "desc": "La liaison des plateformes permet de partager les plateformes entre toutes les version. Une fois liée, cette version profitera des plateformes partagées", - "info": "L'ajout et la suppression de plateformes seront également partagés", - "keep-models": { - "label": "Conserver les plateformes", - "title": "Conserver les plateformes déplacera les plateformes de la version actuelle dans le dossier des plateformes partagées. Dans le cas contraire ils seront perdus" - }, - "valid-btn": "Lier les plateformes" - }, - "bloq": { - "title": "Lier les bloqs", - "desc": "La liaison des bloqs permet de partager les bloqs entre toutes les version. Une fois liée, cette version profitera des bloqs partagés", - "info": "L'ajout et la suppression de bloqs seront également partagés", - "keep-models": { - "label": "Conserver les bloqs", - "title": "Conserver les bloqs déplacera les bloqs de la version actuelle dans le dossier des bloqs partagés. Dans le cas contraire ils seront perdus" - }, - "valid-btn": "Lier les bloqs" - } - }, - "unlink-models": { - "avatar": { - "title": "Délier les avatars", - "desc": "Attention, délier les avatars ne permettra plus l'utilisation des avatars paratagés pour cette version.", - "keep-models": { - "label": "Conserver les avatars", - "title": "Conserver les avatars créera une copie des avatars partagés pour la version actuelle. Dans le cas contraire, aucun avatar ne sera conservé pour cette version." - }, - "valid-btn": "Délier les avatars" - }, - "saber": { - "title": "Délier les sabres", - "desc": "Attention, délier les sabres ne permettra plus l'utilisation des sabres paratagés pour cette version.", - "keep-models": { - "label": "Conserver les sabres", - "title": "Conserver les sabres créera une copie des sabres partagés pour la version actuelle. Dans le cas contraire, aucun sabre ne sera conservé pour cette version." - }, - "valid-btn": "Délier les sabres" - }, - "platform": { - "title": "Délier les plateformes", - "desc": "Attention, délier les plateformes ne permettra plus l'utilisation des plateformes paratagées pour cette version.", - "keep-models": { - "label": "Conserver les plateformes", - "title": "Conserver les plateformes créera une copie des plateformes partagées pour la version actuelle. Dans le cas contraire, aucune plateforme ne sera conservée pour cette version." - }, - "valid-btn": "Délier les plateformes" - }, - "bloq": { - "title": "Délier les bloqs", - "desc": "Attention, délier les bloqs ne permettra plus l'utilisation des bloqs paratagés pour cette version.", - "keep-models": { - "label": "Conserver les bloqs", - "title": "Conserver les bloqs créera une copie des bloqs partagés pour la version actuelle. Dans le cas contraire, aucun bloq ne sera conservé pour cette version." - }, - "valid-btn": "Délier les bloqs" - } } }, "notifications": { @@ -1184,14 +1107,6 @@ "stop-download": "Arrêter le téléchargement", "cancel-download": "Annuler le téléchargement", "open-file": "Ouvrir le fichier", - "link-playlists": "Lier les playlists", - "link-playlist-desc": "La liaison des playlists permet de partager les playlists entre toute les version. Une fois liée, cette version profitera des playlists partagées", - "link-playlist-info": "L'ajout et la suppression de playlists sera également partagé", - "keep-playlists": "Conserver les playlists", - "keep-playlists-tip": "Conserver les playlists déplacera les playlists de la version actuelle dans le dossier des playlists partagées. Dans le cas contraire elles seront perdues", - "unlink-playlists": "Délier les playlists", - "unlink-playlist-desc": "Attention, délier les playlists ne permettra plus l'utilisation des playlists paratagées pour cette version.", - "unlink-keep-playlists-tip": "Conserver les playlists créera une copie des playlists partagées pour la version actuelle. Dans le cas contraire, aucune playlist ne sera conservée pour cette version.", "delete-playlist-ask": "Supprimer la playlist ?", "delete-playlists-ask": "Supprimer les playlists ?", "delete-playlist-desc": "Es-tu sur de vouloir supprimer la playlist \"{playlistTitle}\" ?", diff --git a/assets/jsons/translations/ja.json b/assets/jsons/translations/ja.json index 207b822e..4afba835 100644 --- a/assets/jsons/translations/ja.json +++ b/assets/jsons/translations/ja.json @@ -8,6 +8,10 @@ "maps": "マップ", "playlists": "プレイリスト", "models": "モデル", + "avatars": "アバター", + "sabers": "セイバー", + "platforms": "プラットフォーム", + "blocks": "ブロック", "cancel": "キャンセル", "delete": "削除", "accept": "同意する", @@ -19,7 +23,8 @@ "choose-folder": "フォルダーを選択", "unknown": "不明なエラーが発生しました (´・ω・`)", "warning": "警告", - "continue": "続ける" + "continue": "続ける", + "shared": "共有" }, "title-bar": { "outdated": "時代遅れ" @@ -756,31 +761,29 @@ } } }, - "link-maps": { - "title": "マップをリンク", - "desc": "マップをリンクすると、この機能が有効になっているすべてのバージョン間でマップを共有できます。リンクされると、このバージョンは共有マップの恩恵を受けることができます。", - "info": "マップの追加と削除も共有されます。", - "keep-maps": { - "label": "マップを保持", - "title": "マップを保持すると現在のバージョンのすべてのマップを共有マップフォルダーにコピーします。有効していない場合はこのバージョンのマップは保持されず、失われます。" - }, - "valid-btn": "マップをリンク" - }, - "unlink-maps": { - "title": "マップのリンクを解除", - "desc": "マップのリンクを解除すると、このバージョンでは共有マップを使用できなくなります。", - "keep-maps": { - "label": "マップを保持", - "title": "マップを保持は、リンクを解除した後、共有フォルダから現在のバージョンにすべてのマップをコピーします。これを無効をしても共有マップは失われません。" - }, - "valid-btn": "マップのリンクを解除" - }, "delete-duplicate-maps": { "title": "マップを削除しますか?", "desc": "マップ「{map}」のみが重複しています。削除してもよろしいですか?", "desc-plural": "{nb}個の重複したマップが見つかりました。削除してもよろしいですか?" } }, + "link-contents": { + "title": "{contentType}をリンクする", + "p-1": "{contentType}をリンクすると、この機能が有効なすべてのバージョン間で{contentType}を共有できます。リンクされると、このバージョンは共有された{contentType}を利用できます。", + "p-2": "リンク機能を利用するには、すべての{itemsHtml}を{sharedHtml}フォルダに移動します。その後、共有された{contentType}フォルダを指すシンボリックリンクが元の{contentType}フォルダの代わりになります。", + "warning": "ご注意ください:{contentType}に影響を与える変更は、この機能が有効なすべてのバージョンにも影響を与えます。", + "what-is-a-symbolic-link": "シンボリックリンクとは何ですか?", + "i-need-help": "助けが必要です", + "valid-btn": "{contentType}をリンクする" + }, + "unlink-contents": { + "title": "{contentType}のリンクを解除する", + "p-1": "注意してください:{contentType}のリンクを解除すると、この機能が再度有効化されるまで、このバージョンで共有された{contentType}を使用できなくなります。", + "p-2": "{contentType}のリンクを解除するには、{sharedHtml}を指すシンボリックリンクが削除されます。その後、共有フォルダ内のすべての{contentType}がBeat Saberのバージョン内の{itemsHtml}フォルダにコピーされます。", + "do-not-copy-contents": "{contentType}をコピーしない", + "do-not-copy-contents-tip": "有効にすると、共有フォルダ内の{contentType}はBeat Saberのバージョンにコピーされません。その結果、リンク解除後にBeat Saberバージョン内に{contentType}は残りません。", + "valid-btn": "{contentType}のリンクを解除する" + }, "download-maps": { "search-btn": "検索 ", "loading-maps": "マップを読込中...", @@ -1027,86 +1030,6 @@ "no-models": "モデルは見つかりませんでした。", "no-internet": "インターネットに接続できませんでした。", "error-occured": "エラーが発生しました。もう一度お試しください." - }, - "link-models": { - "avatar": { - "title": "アバターをリンク", - "desc": "アバターをリンクすると、この機能が有効になっているすべてのバージョン間でアバターを共有できます。また、リンクすることでこのバージョンは共有アバターの恩恵を受けることができます。", - "info": "アバターの追加と削除も共有されます", - "keep-models": { - "label": "アバターを保持", - "title": "アバターを保持すると、現在のバージョンからすべてのアバターが共有アバターフォルダーにコピーされます。有効していない場合はこのバージョンのアバターは保持されず、それらは失われます。" - }, - "valid-btn": "アバターをリンク" - }, - "saber": { - "title": "セーバーをリンク", - "desc": "セーバーをリンクすると、この機能が有効になっているすべてのバージョン間でセーバーを共有できます。また、リンクすることでこのバージョンは共有セーバーの恩恵を受けることができます。", - "info": "セーバーの追加と削除も共有されます", - "keep-models": { - "label": "セーバーを保持", - "title": "セーバーを保持すると、現在のバージョンからすべてのセーバーが共有vフォルダーにコピーされます。有効していない場合はこのバージョンのセーバーは保持されず、それらは失われます。" - }, - "valid-btn": "セーバーをリンク" - }, - "platform": { - "title": "プラットフォームをリンク", - "desc": "プラットフォームをリンクすると、この機能が有効になっているすべてのバージョン間でプラットフォームを共有できます。また、リンクすることでこのバージョンは共有プラットフォームの恩恵を受けることができます。", - "info": "プラットフォームの追加と削除も共有されます", - "keep-models": { - "label": "プラットフォームを保持", - "title": "プラットフォームを保持すると、現在のバージョンからすべてのプラットフォームが共有プラットフォームフォルダーにコピーされます。有効していない場合はこのバージョンのプラットフォームは保持されず、それらは失われます。" - }, - "valid-btn": "プラットフォームをリンク" - }, - "bloq": { - "title": "ノーツをリンク", - "desc": "ノーツをリンクすると、この機能が有効になっているすべてのバージョン間でノーツを共有できます。また、リンクすることでこのバージョンは共有ノーツの恩恵を受けることができます。", - "info": "ノーツの追加と削除も共有されます", - "keep-models": { - "label": "ノーツを保持", - "title": "ノーツを保持すると、現在のバージョンからすべてのノーツが共有ノーツフォルダーにコピーされます。有効していない場合はこのバージョンのノーツは保持されず、それらは失われます。" - }, - "valid-btn": "ノーツをリンク" - } - }, - "unlink-models": { - "avatar": { - "title": "アバターのリンクを解除", - "desc": "アバターのリンクを解除すると、このバージョンでは共有アバターが使用できなくなります。", - "keep-models": { - "label": "アバターを保持する", - "title": "アバターを保持すると、リンクを解除した後、共有フォルダにあるすべてのアバターが現在のバージョンにコピーされます。これが無効にしても共有アバターは失われません。" - }, - "valid-btn": "アバターのリンクを解除" - }, - "saber": { - "title": "セーバーのリンクを解除", - "desc": "セーバーのリンクを解除すると、このバージョンでは共有セーバーが使用できなくなります。", - "keep-models": { - "label": "セーバーを保持する", - "title": "セーバーを保持すると、リンクを解除した後、共有フォルダにあるすべてのセーバーが現在のバージョンにコピーされます。これが無効にしても共有セーバーは失われません。" - }, - "valid-btn": "セーバーのリンクを解除" - }, - "platform": { - "title": "プラットフォームのリンクを解除", - "desc": "プラットフォームのリンクを解除すると、このバージョンでは共有プラットフォームが使用できなくなります。", - "keep-models": { - "label": "プラットフォームを保持する", - "title": "プラットフォームを保持すると、リンクを解除した後、共有フォルダにあるすべてのプラットフォームが現在のバージョンにコピーされます。これが無効にしても共有プラットフォームは失われません。" - }, - "valid-btn": "プラットフォームのリンクを解除" - }, - "bloq": { - "title": "ノーツのリンクを解除", - "desc": "ノーツのリンクを解除すると、このバージョンでは共有ノーツが使用できなくなります。", - "keep-models": { - "label": "ノーツを保持する", - "title": "ノーツを保持すると、リンクを解除した後、共有フォルダにあるすべてのノーツが現在のバージョンにコピーされます。これが無効にしても共有ノーツは失われません。" - }, - "valid-btn": "ノーツのリンクを解除" - } } }, "notifications": { @@ -1183,14 +1106,6 @@ "stop-download": "ダウンロードを停止", "cancel-download": "ダウンロードをキャンセル", "open-file": "ファイルを開く", - "link-playlists": "プレイリストをリンク", - "link-playlist-desc": "プレイリストをリンクすると、すべてのバージョン間でプレイリストを共有できます。リンクすると、このバージョンは共有プレイリストの恩恵を受けます", - "link-playlist-info": "プレイリストの追加と削除も共有されます", - "keep-playlists": "プレイリストを保持", - "keep-playlists-tip": "プレイリストを保持すると、現在のバージョンのプレイリストが共有プレイリストフォルダに移動されます。そうしない場合、それらは失われます", - "unlink-playlists": "プレイリストのリンクを解除", - "unlink-playlist-desc": "警告:プレイリストのリンクを解除すると、このバージョンでは共有プレイリストを使用できなくなります。", - "unlink-keep-playlists-tip": "プレイリストを保持すると、現在のバージョン用に共有プレイリストのコピーが作成されます。そうしない場合、このバージョンのプレイリストは保持されません。", "delete-playlist-ask": "プレイリストを削除しますか?", "delete-playlists-ask": "プレイリストを削除しますか?", "delete-playlist-desc": "プレイリスト「{playlistTitle}」を削除してもよろしいですか?", diff --git a/assets/jsons/translations/ko.json b/assets/jsons/translations/ko.json index dc40fd30..d468de79 100644 --- a/assets/jsons/translations/ko.json +++ b/assets/jsons/translations/ko.json @@ -8,6 +8,10 @@ "maps": "맵", "playlists": "재생 목록", "models": "모델", + "avatars": "아바타", + "sabers": "세이버", + "platforms": "플랫폼", + "blocks": "블록", "cancel": "취소", "delete": "삭제", "accept": "동의", @@ -19,7 +23,8 @@ "choose-folder": "폴더를 선택하세요", "unknown": "알 수 없는 오류가 발생했습니다 (´・ω・`)", "warning": "경고", - "continue": "계속" + "continue": "계속", + "shared": "공유" }, "title-bar": { "outdated": "구식" @@ -756,31 +761,29 @@ } } }, - "link-maps": { - "title": "맵 연결", - "desc": "맵을 연결하면 이 기능이 활성화된 모든 버전 간에 맵을 공유할 수 있습니다. 연결되면 이 버전은 공유 맵을 활용할 수 있습니다.", - "info": "맵 추가 및 삭제도 공유됩니다.", - "keep-maps": { - "label": "맵 유지", - "title": "맵 유지를 선택하면 현재 버전의 모든 맵이 공유 맵 폴더에 복사됩니다. 활성화하지 않으면 이 버전의 맵은 유지되지 않고 손실됩니다." - }, - "valid-btn": "맵 연결" - }, - "unlink-maps": { - "title": "맵 연결 해제", - "desc": "맵 연결을 해제하면 이 버전에서 공유 맵을 사용할 수 없습니다.", - "keep-maps": { - "label": "맵 유지", - "title": "맵 유지를 선택하면 연결을 해제한 후 공유 폴더에서 현재 버전으로 모든 맵이 복사됩니다. 이 옵션을 비활성화해도 공유 맵은 손실되지 않습니다." - }, - "valid-btn": "맵 연결 해제" - }, "delete-duplicate-maps": { "title": "맵을 삭제하시겠습니까?", "desc": "맵 {map}만 중복되었습니다. 삭제하시겠습니까?", "desc-plural": "{nb}개의 중복된 맵이 발견되었습니다. 삭제하시겠습니까?" } }, + "link-contents": { + "title": "{contentType} 링크", + "p-1": "{contentType}를 링크하면 이 기능이 활성화된 모든 버전 간에 {contentType}를 공유할 수 있습니다. 링크된 후에는 이 버전이 공유된 {contentType}를 사용할 수 있게 됩니다.", + "p-2": "링크 기능을 사용하려면 모든 {itemsHtml}를 {sharedHtml} 폴더로 이동해야 합니다. 그런 다음, 공유된 {contentType} 폴더를 가리키는 심볼릭 링크가 기존의 {contentType} 폴더를 대체합니다.", + "warning": "주의하세요: {contentType}에 영향을 미치는 모든 변경 사항은 이 기능이 활성화된 모든 버전에 영향을 미칩니다.", + "what-is-a-symbolic-link": "심볼릭 링크란 무엇인가요?", + "i-need-help": "도움이 필요합니다", + "valid-btn": "{contentType} 링크" + }, + "unlink-contents": { + "title": "{contentType} 링크 해제", + "p-1": "주의하세요: {contentType} 링크를 해제하면 이 기능이 다시 활성화될 때까지 이 버전에서 공유된 {contentType}를 사용할 수 없게 됩니다.", + "p-2": "{contentType} 링크를 해제하려면 {sharedHtml}을 가리키는 심볼릭 링크가 제거됩니다. 그 후, 공유 폴더에 있는 모든 {contentType}가 Beat Saber 버전의 {itemsHtml} 폴더로 복사됩니다.", + "do-not-copy-contents": "{contentType}를 복사하지 않기", + "do-not-copy-contents-tip": "활성화되면, 공유 폴더에 있는 {contentType}가 Beat Saber 버전으로 복사되지 않습니다. 그 결과, 링크 해제 후 Beat Saber 버전에 {contentType}가 남지 않게 됩니다.", + "valid-btn": "{contentType} 링크 해제" + }, "download-maps": { "search-btn": "검색", "loading-maps": "맵을 로딩 중...", @@ -1027,86 +1030,6 @@ "no-models": "모델을 찾을 수 없습니다.", "no-internet": "인터넷에 연결할 수 없습니다.", "error-occured": "오류가 발생했습니다. 다시 시도해 주세요." - }, - "link-models": { - "avatar": { - "title": "아바타 링크", - "desc": "아바타를 링크하면 이 기능이 활성화된 모든 버전 간에 아바타를 공유할 수 있습니다. 또한 링크하면 이 버전이 공유 아바타의 혜택을 받을 수 있습니다.", - "info": "아바타의 추가 및 삭제도 공유됩니다.", - "keep-models": { - "label": "아바타 유지", - "title": "아바타를 유지하면 현재 버전에서 모든 아바타가 공유 아바타 폴더에 복사됩니다. 활성화하지 않으면 이 버전의 아바타가 유지되지 않으며, 그들은 사라집니다." - }, - "valid-btn": "아바타 링크" - }, - "saber": { - "title": "세이버 링크", - "desc": "세이버를 링크하면 이 기능이 활성화된 모든 버전 간에 세이버를 공유할 수 있습니다. 또한 링크하면 이 버전이 공유 세이버의 혜택을 받을 수 있습니다.", - "info": "세이버의 추가 및 삭제도 공유됩니다.", - "keep-models": { - "label": "세이버 유지", - "title": "세이버를 유지하면 현재 버전에서 모든 세이버가 공유 세이버 폴더에 복사됩니다. 활성화하지 않으면 이 버전의 세이버가 유지되지 않으며, 그들은 사라집니다." - }, - "valid-btn": "세이버 링크" - }, - "platform": { - "title": "플랫폼 링크", - "desc": "플랫폼을 링크하면 이 기능이 활성화된 모든 버전 간에 플랫폼을 공유할 수 있습니다. 또한 링크하면 이 버전이 공유 플랫폼의 혜택을 받을 수 있습니다.", - "info": "플랫폼의 추가 및 삭제도 공유됩니다.", - "keep-models": { - "label": "플랫폼 유지", - "title": "플랫폼을 유지하면 현재 버전에서 모든 플랫폼이 공유 플랫폼 폴더에 복사됩니다. 활성화하지 않으면 이 버전의 플랫폼이 유지되지 않으며, 그들은 사라집니다." - }, - "valid-btn": "플랫폼 링크" - }, - "bloq": { - "title": "노트 링크", - "desc": "노트를 링크하면 이 기능이 활성화된 모든 버전 간에 노트를 공유할 수 있습니다. 또한 링크하면 이 버전이 공유 노트의 혜택을 받을 수 있습니다.", - "info": "노트의 추가 및 삭제도 공유됩니다.", - "keep-models": { - "label": "노트 유지", - "title": "노트를 유지하면 현재 버전에서 모든 노트가 공유 노트 폴더에 복사됩니다. 활성화하지 않으면 이 버전의 노트가 유지되지 않으며, 그들은 사라집니다." - }, - "valid-btn": "노트 링크" - } - }, - "unlink-models": { - "avatar": { - "title": "아바타 링크 해제", - "desc": "아바타의 링크를 해제하면 이 버전에서는 공유 아바타를 사용할 수 없습니다.", - "keep-models": { - "label": "아바타 유지", - "title": "아바타를 유지하면 링크를 해제한 후 공유 폴더에 있는 모든 아바타가 현재 버전에 복사됩니다. 이것을 비활성화하더라도 공유 아바타는 사라지지 않습니다." - }, - "valid-btn": "아바타 링크 해제" - }, - "saber": { - "title": "세이버 링크 해제", - "desc": "세이버의 링크를 해제하면 이 버전에서는 공유 세이버를 사용할 수 없습니다.", - "keep-models": { - "label": "세이버 유지", - "title": "세이버를 유지하면 링크를 해제한 후 공유 폴더에 있는 모든 세이버가 현재 버전에 복사됩니다. 이것을 비활성화하더라도 공유 세이버는 사라지지 않습니다." - }, - "valid-btn": "세이버 링크 해제" - }, - "platform": { - "title": "플랫폼 링크 해제", - "desc": "플랫폼의 링크를 해제하면 이 버전에서는 공유 플랫폼을 사용할 수 없습니다.", - "keep-models": { - "label": "플랫폼 유지", - "title": "플랫폼을 유지하면 링크를 해제한 후 공유 폴더에 있는 모든 플랫폼이 현재 버전에 복사됩니다. 이것을 비활성화하더라도 공유 플랫폼은 사라지지 않습니다." - }, - "valid-btn": "플랫폼 링크 해제" - }, - "bloq": { - "title": "노트 링크 해제", - "desc": "노트의 링크를 해제하면 이 버전에서는 공유 노트를 사용할 수 없습니다.", - "keep-models": { - "label": "노트 유지", - "title": "노트를 유지하면 링크를 해제한 후 공유 폴더에 있는 모든 노트가 현재 버전에 복사됩니다. 이것을 비활성화하더라도 공유 노트는 사라지지 않습니다." - }, - "valid-btn": "노트 링크 해제" - } } }, "notifications": { @@ -1183,14 +1106,6 @@ "stop-download": "다운로드 중지", "cancel-download": "다운로드 취소", "open-file": "파일 열기", - "link-playlists": "재생목록 링크", - "link-playlist-desc": "재생목록을 링크하면 모든 버전 간에 재생목록을 공유할 수 있습니다. 링크를 클릭하면 이 버전이 공유 재생목록의 혜택을 받습니다.", - "link-playlist-info": "재생목록의 추가 및 삭제도 공유됩니다.", - "keep-playlists": "재생목록 유지", - "keep-playlists-tip": "재생목록을 유지하면 현재 버전의 재생목록이 공유 재생목록 폴더로 이동됩니다. 그렇지 않으면 잃어버리게 됩니다.", - "unlink-playlists": "재생목록 링크 해제", - "unlink-playlist-desc": "경고: 재생목록 링크를 해제하면 이 버전에서는 공유 재생목록을 사용할 수 없습니다.", - "unlink-keep-playlists-tip": "재생목록을 유지하면 현재 버전에 대해 공유 재생목록의 복사본이 생성됩니다. 그렇지 않으면 이 버전의 재생목록이 유지되지 않습니다.", "delete-playlist-ask": "재생목록을 삭제하시겠습니까?", "delete-playlists-ask": "재생목록을 삭제하시겠습니까?", "delete-playlist-desc": "재생목록「{playlistTitle}」을(를) 삭제해도 괜찮습니까?", diff --git a/assets/jsons/translations/ru.json b/assets/jsons/translations/ru.json index 013e151a..d4fada19 100644 --- a/assets/jsons/translations/ru.json +++ b/assets/jsons/translations/ru.json @@ -8,6 +8,10 @@ "maps": "Карты", "playlists": "Плейлисты", "models": "Модели", + "avatars": "Аватары", + "sabers": "Сабли", + "platforms": "Платформы", + "blocks": "Блоки", "cancel": "Отмена", "delete": "Удалить", "accept": "Принять", @@ -19,7 +23,8 @@ "choose-folder": "Изменить папку", "unknown": "Неизвестная ошибка ¯\\_(ツ)_/¯", "warning": "Внимание", - "continue": "Продолжить" + "continue": "Продолжить", + "shared": "Общий" }, "title-bar": { "outdated": "устаревший" @@ -756,31 +761,29 @@ } } }, - "link-maps": { - "title": "Связать карты", - "desc": "Общие карты доступны во всех версиях игры с этой функцией. Пока связь есть, эта версия будет иметь общие карты.", - "info": "Добавление и удаление карт так же будут общими", - "keep-maps": { - "label": "Оставить карты", - "title": "Все карты из этой версии станут общими. Если не включить, то карты этой версии будут потеряны." - }, - "valid-btn": "Связать карты" - }, - "unlink-maps": { - "title": "Отвязать карты", - "desc": "Осторожно, отвязка карт сделает недоступными общие карты для этой версии, пока вы не свяжете их снова.", - "keep-maps": { - "label": "Оставить карты", - "title": "Общие карты будут скопированы в папку карт этой версии. Карты не будут потеряны, если это не выбрано." - }, - "valid-btn": "Отвязать карты" - }, "delete-duplicate-maps": { "title": "Удалить карту?", "desc": "Только карта \"{map}\" является дубликатом. Вы уверены, что хотите ее удалить?", "desc-plural": "Найдено {nb} дубликатов карт. Вы уверены, что хотите их удалить?" } }, + "link-contents": { + "title": "Связать {contentType}", + "p-1": "Связывание {contentType} позволяет делиться {contentType} между всеми версиями с этой функцией. После связывания эта версия будет использовать общие {contentType}.", + "p-2": "Для использования функции связывания все ваши {itemsHtml} будут перемещены в папку {sharedHtml}. После этого символическая ссылка, указывающая на общую папку {contentType}, заменит вашу оригинальную папку {contentType}.", + "warning": "Обратите внимание, что любые изменения, затрагивающие {contentType}, также затронут все версии с этой функцией.", + "what-is-a-symbolic-link": "Что такое символическая ссылка?", + "i-need-help": "Мне нужна помощь", + "valid-btn": "Связать {contentType}" + }, + "unlink-contents": { + "title": "Разорвать связь {contentType}", + "p-1": "Будьте осторожны, разрыв связи {contentType} отключит использование общих {contentType} для этой версии, пока они снова не будут связаны.", + "p-2": "Чтобы разорвать связь ваших {contentType}, символическая ссылка, указывающая на {sharedHtml}, будет удалена. После этого все {contentType} из общей папки будут скопированы в папку {itemsHtml} вашей версии Beat Saber.", + "do-not-copy-contents": "Не копировать {contentType}", + "do-not-copy-contents-tip": "Если включено, {contentType} из общей папки не будут скопированы в вашу версию Beat Saber. В результате, никакие {contentType} не останутся в вашей версии Beat Saber после разрыва связи.", + "valid-btn": "Разорвать связь {contentType}" + }, "download-maps": { "search-btn": "Поиск", "loading-maps": "Загрузка карт...", @@ -1026,86 +1029,6 @@ "no-models": "Модели не найдены.", "no-internet": "Нет интернета.", "error-occured": "Ошибка, повторите попытку позже." - }, - "link-models": { - "avatar": { - "title": "Связать аватары", - "desc": "Общие аватары доступны во всех версиях игры с этой функцией. Пока связь есть, эта версия будет иметь общие аватары.", - "info": "Добавление и удаление аватаров так же будут общими", - "keep-models": { - "label": "Оставить аватары", - "title": "Все аватары из этой версии станут общими. Если не включить, то аватары этой версии будут потеряны." - }, - "valid-btn": "Связать аватары" - }, - "saber": { - "title": "Связать мечи", - "desc": "Общие мечи доступны во всех версиях игры с этой функцией. Пока связь есть, эта версия будет иметь общие мечи.", - "info": "Добавление и удаление мечей так же будут общими", - "keep-models": { - "label": "Оставить мечи", - "title": "Все мечи из этой версии станут общими. Если не включить, то мечи этой версии будут потеряны." - }, - "valid-btn": "Связать мечи" - }, - "platform": { - "title": "Связать платформы", - "desc": "Общие платформы доступны во всех версиях игры с этой функцией. Пока связь есть, эта версия будет иметь общие платформы.", - "info": "Добавление и удаление платформ так же будут общими", - "keep-models": { - "label": "Оставить платформы", - "title": "Все платформы из этой версии станут общими. Если не включить, то платформы этой версии будут потеряны." - }, - "valid-btn": "Связать платформы" - }, - "bloq": { - "title": "Связать кубы", - "desc": "Общие кубы доступны во всех версиях игры с этой функцией. Пока связь есть, эта версия будет иметь общие кубы.", - "info": "Adding and deleting bloqs will also be shared", - "keep-models": { - "label": "Оставить кубы", - "title": "Все кубы из этой версии станут общими. Если не включить, то кубы этой версии будут потеряны." - }, - "valid-btn": "Связать кубы" - } - }, - "unlink-models": { - "avatar": { - "title": "Отвязать аватары", - "desc": "Осторожно, отвязка аватаров сделает недоступными общие аватары для этой версии, пока вы не свяжете их снова.", - "keep-models": { - "label": "Оставить аватары", - "title": "Общие аватары будут скопированы в папку аватаров этой версии. Аватары не будут потеряны, если это не выбрано." - }, - "valid-btn": "Отвязать аватары" - }, - "saber": { - "title": "Отвязать мечи", - "desc": "Осторожно, отвязка мечей сделает недоступными общие мечи для этой версии, пока вы не свяжете их снова.", - "keep-models": { - "label": "Оставить мечи", - "title": "Общие мечи будут скопированы в папку мечей этой версии. Мечи не будут потеряны, если это не выбрано." - }, - "valid-btn": "Отвязать мечи" - }, - "platform": { - "title": "Отвязать платформы", - "desc": "Осторожно, отвязка платформ сделает недоступными общие платформы для этой версии, пока вы не свяжете их снова.", - "keep-models": { - "label": "Оставить платформы", - "title": "Общие платформы будут скопированы в папку платформ этой версии. Платформы не будут потеряны, если это не выбрано." - }, - "valid-btn": "Отвязать платформы" - }, - "bloq": { - "title": "Отвязать кубы", - "desc": "Осторожно, отвязка кубов сделает недоступными общие кубы для этой версии, пока вы не свяжете их снова.", - "keep-models": { - "label": "Оставить кубы", - "title": "Общие кубы будут скопированы в папку кубов этой версии. Кубы не будут потеряны, если это не выбрано." - }, - "valid-btn": "Отвязать кубы" - } } }, "notifications": { @@ -1182,14 +1105,6 @@ "stop-download": "Остановить загрузку", "cancel-download": "Отменить загрузку", "open-file": "Открыть файл", - "link-playlists": "Связать плейлисты", - "link-playlist-desc": "Связывание плейлистов позволяет делиться плейлистами между всеми версиями. После связывания эта версия будет иметь доступ к общим плейлистам", - "link-playlist-info": "Добавление и удаление плейлистов также будет общим", - "keep-playlists": "Сохранить плейлисты", - "keep-playlists-tip": "Сохранение плейлистов переместит плейлисты из текущей версии в папку общих плейлистов. В противном случае они будут потеряны", - "unlink-playlists": "Отвязать плейлисты", - "unlink-playlist-desc": "Внимание, отвязка плейлистов больше не позволит использовать общие плейлисты для этой версии.", - "unlink-keep-playlists-tip": "Сохранение плейлистов создаст копию общих плейлистов для текущей версии. В противном случае для этой версии не будут сохранены плейлисты.", "delete-playlist-ask": "Удалить плейлист?", "delete-playlists-ask": "Удалить плейлисты?", "delete-playlist-desc": "Вы уверены, что хотите удалить плейлист \"{playlistTitle}\"?", diff --git a/assets/jsons/translations/zh-tw.json b/assets/jsons/translations/zh-tw.json index d8016865..59722593 100644 --- a/assets/jsons/translations/zh-tw.json +++ b/assets/jsons/translations/zh-tw.json @@ -8,6 +8,10 @@ "maps": "譜面", "playlists": "歌單", "models": "模型", + "avatars": "頭像", + "sabers": "光劍", + "platforms": "平台", + "blocks": "方塊", "cancel": "取消", "delete": "刪除", "accept": "接受", @@ -19,7 +23,8 @@ "choose-folder": "選擇文件夾", "unknown": "發生了一個錯誤 ¯\\_(ツ)_/¯", "warning": "警告", - "continue": "繼續" + "continue": "繼續", + "shared": "共享" }, "title-bar": { "outdated": "過時" @@ -756,31 +761,29 @@ } } }, - "link-maps": { - "title": "關聯譜面", - "desc": "關聯譜面可以在所有啟用此功能的版本之間共享譜面。一旦關聯,該版本將受益於共享譜面。", - "info": "新增和刪除的譜面也將被共享", - "keep-maps": { - "label": "保留譜面", - "title": "保留譜面將會把當前版本的所有譜面複製到共享譜面文件夾。否則,該版本的譜面將不會被保留,它們將遺失。" - }, - "valid-btn": "關聯譜面" - }, - "unlink-maps": { - "title": "取消關聯譜面", - "desc": "請注意,取消關聯譜面後該版本將無法使用共享譜面,直到重新啟用。", - "keep-maps": { - "label": "保留譜面", - "title": "保留譜面將會在取消關聯後把共享文件夾的所有譜面複製到當前版本。如果此項被禁用,譜面也不會遺失。" - }, - "valid-btn": "取消關聯譜面" - }, "delete-duplicate-maps": { "title": "刪除地圖", "desc": "只有地圖「{map}」是重複的。你確定要刪除它嗎?", "desc-plural": "發現了 {nb} 個重複的地圖。你確定要刪除它們嗎?" } }, + "link-contents": { + "title": "連結{contentType}", + "p-1": "連結{contentType}允許在啟用此功能的所有版本之間共享{contentType}。連結後,該版本將受益於共享的{contentType}。", + "p-2": "為了使用連結功能,您的所有{itemsHtml}將被移動到{sharedHtml}資料夾。之後,一個指向共享{contentType}資料夾的符號連結將取代您原本的{contentType}資料夾。", + "warning": "請注意,任何影響{contentType}的更改也會影響所有啟用此功能的版本。", + "what-is-a-symbolic-link": "什麼是符號連結?", + "i-need-help": "我需要幫助", + "valid-btn": "連結{contentType}" + }, + "unlink-contents": { + "title": "取消連結{contentType}", + "p-1": "注意:取消連結{contentType}將會停用此版本中共享的{contentType}功能,直到該功能再次啟用。", + "p-2": "為了取消連結您的{contentType},指向{sharedHtml}的符號連結將被移除。之後,共享資料夾中的所有{contentType}將被複製到您Beat Saber版本的{itemsHtml}資料夾中。", + "do-not-copy-contents": "不要複製{contentType}", + "do-not-copy-contents-tip": "如果啟用,共享資料夾中的{contentType}將不會被複製到您的Beat Saber版本中。結果是,在取消連結後,您的Beat Saber版本中將不再保留任何{contentType}。", + "valid-btn": "取消連結{contentType}" + }, "download-maps": { "search-btn": "搜尋", "loading-maps": "譜面載入中...", @@ -1027,86 +1030,6 @@ "no-models": "未找到模型", "no-internet": "無網路連接", "error-occured": "發生了一個錯誤,稍後重試。" - }, - "link-models": { - "avatar": { - "title": "關聯 Avatar", - "desc": "關聯 Avatar 允許在所有啟用此功能的版本之間共享 Avatar。一旦關聯,該版本將受益於共享 Avatar。", - "info": "對 Avatar 的新增和刪除也將被共享", - "keep-models": { - "label": "保留 Avatar", - "title": "保留 Avatar 將會把當前版本的所有 Avatar 複製到共享 Avatar文件夾。否則,該版本的 Avatar將不會被保留,它們將遺失。" - }, - "valid-btn": "關聯 Avatar " - }, - "saber": { - "title": "關聯光劍", - "desc": "關聯光劍允許在所有啟用此功能的版本之間共享光劍。一旦關聯,該版本將受益於共享光劍。", - "info": "對光劍的新增和刪除也將被共享", - "keep-models": { - "label": "保留光劍", - "title": "保留光劍將會把當前版本的所有光劍複製到共享光劍文件夾。否則,該版本的光劍將不會被保留,它們將遺失。" - }, - "valid-btn": "關聯光劍" - }, - "platform": { - "title": "關聯平台", - "desc": "關聯平台允許在所有啟用此功能的版本之間共享平台。一旦關聯,該版本將受益於共享平台。", - "info": "對平台的新增和刪除也將被共享", - "keep-models": { - "label": "保留平台", - "title": "保留平台將會把當前版本的所有平台複製到共享平台文件夾。否則,該版本的平台將不會被保留,它們將遺失。" - }, - "valid-btn": "關聯平台" - }, - "bloq": { - "title": "關聯方塊", - "desc": "關聯方塊允許在所有啟用此功能的版本之間共享方塊。一旦關聯,該版本將受益於共享方塊。", - "info": "對方塊的新增和刪除也將被共享", - "keep-models": { - "label": "保留方塊", - "title": "保留方塊將會把當前版本的所有方塊複製到共享方塊文件夾。否則,該版本的方塊將不會被保留,它們將遺失。" - }, - "valid-btn": "關聯方塊" - } - }, - "unlink-models": { - "avatar": { - "title": "取消關聯 Avatar", - "desc": "請注意,取消關聯 Avatar 將禁用該版本的共享 Avatar 使用,直到重新啟用。", - "keep-models": { - "label": "保留 Avatar", - "title": "保留 Avatar 將會在取消關聯後把共享文件夾的所有 Avatar 複製到當前版本。如果此項被禁用,Avatar 將不會遺失。" - }, - "valid-btn": "取消關聯 Avatar" - }, - "saber": { - "title": "取消關聯光劍", - "desc": "請注意,取消關聯光劍將禁用該版本的共享光劍使用,直到重新啟用。", - "keep-models": { - "label": "保留光劍", - "title": "保留光劍將會在取消關聯後把共享文件夾的所有光劍複製到當前版本。如果此項被禁用,光劍將不會遺失。" - }, - "valid-btn": "取消關聯光劍" - }, - "platform": { - "title": "取消關聯平台", - "desc": "請注意,取消關聯平台將禁用該版本的共享平台使用,直到重新啟用。", - "keep-models": { - "label": "保留平台", - "title": "保留平台將會在取消關聯後把共享文件夾的所有平台複製到當前版本。如果此項被禁用,平台將不會遺失。" - }, - "valid-btn": "取消關聯平台" - }, - "bloq": { - "title": "取消關聯方塊", - "desc": "請注意,取消關聯方塊將禁用該版本的共享方塊使用,直到重新啟用。", - "keep-models": { - "label": "保留方塊", - "title": "保留方塊將會在取消關聯後把共享文件夾的所有方塊複製到當前版本。如果此項被禁用,方塊將不會遺失。" - }, - "valid-btn": "取消關聯方塊" - } } }, "notifications": { @@ -1183,14 +1106,6 @@ "stop-download": "停止下載", "cancel-download": "取消下載", "open-file": "開啟檔案", - "link-playlists": "連結播放清單", - "link-playlist-desc": "連結播放清單允許在所有版本之間共享播放清單。一旦連結,此版本將受益於共享播放清單", - "link-playlist-info": "新增和刪除播放清單也將被共享", - "keep-playlists": "保留播放清單", - "keep-playlists-tip": "保留播放清單將把當前版本的播放清單移動到共享播放清單資料夾。否則,它們將遺失", - "unlink-playlists": "取消連結播放清單", - "unlink-playlist-desc": "警告,取消連結播放清單將不再允許此版本使用共享播放清單。", - "unlink-keep-playlists-tip": "保留播放清單將為當前版本建立共享播放清單的副本。否則,此版本將不保留任何播放清單。", "delete-playlist-ask": "刪除播放清單?", "delete-playlists-ask": "刪除播放清單?", "delete-playlist-desc": "您確定要刪除播放清單 \"{playlistTitle}\" 嗎?", diff --git a/assets/jsons/translations/zh.json b/assets/jsons/translations/zh.json index 999685f1..27773aa0 100644 --- a/assets/jsons/translations/zh.json +++ b/assets/jsons/translations/zh.json @@ -8,6 +8,10 @@ "maps": "谱面", "playlists": "歌单", "models": "模型", + "avatars": "头像", + "sabers": "光剑", + "platforms": "平台", + "blocks": "方块", "cancel": "取消", "delete": "删除", "accept": "接受", @@ -19,7 +23,8 @@ "choose-folder": "选择文件夹", "Unknown": "发生了一个错误 ¯\\_(ツ)_/¯", "warning": "警告", - "continue": "继续" + "continue": "继续", + "shared": "共享" }, "title-bar": { "outdated": "过时" @@ -756,31 +761,29 @@ } } }, - "link-maps": { - "title": "关联谱面", - "desc": "关联谱面可以在所有启用此功能的版本之间共享谱面。一旦关联,该版本将受益于共享谱面。", - "info": "添加和删除的谱面也将被共享", - "keep-maps": { - "label": "保留谱面", - "title": "保留谱面将会把当前版本的所有谱面复制到共享谱面文件夹。否则,该版本的谱面将不会被保留,它们将丢失。" - }, - "valid-btn": "关联谱面" - }, - "unlink-maps": { - "title": "取消关联谱面", - "desc": "请注意,取消关联谱面后该版本将无法使用共享谱面,直到重新启用。", - "keep-maps": { - "label": "保留谱面", - "title": "保留谱面将会在取消关联后把共享文件夹的所有谱面复制到当前版本。如果此项被禁用,谱面也不会丢失。" - }, - "valid-btn": "取消关联谱面" - }, "delete-duplicate-maps": { "title": "删除地图", "desc": "只有地图 \"{map}\" 是重复的。你确定要删除它吗?", "desc-plural": "发现了 {nb} 个重复的地图。你确定要删除它们吗?" } }, + "link-contents": { + "title": "链接{contentType}", + "p-1": "链接{contentType}允许在启用此功能的所有版本之间共享{contentType}。链接后,该版本将受益于共享的{contentType}。", + "p-2": "为了使用链接功能,所有的{itemsHtml}将被移动到{sharedHtml}文件夹中。之后,一个指向共享{contentType}文件夹的符号链接将取代您原来的{contentType}文件夹。", + "warning": "请注意,任何影响{contentType}的更改也会影响所有启用此功能的版本。", + "what-is-a-symbolic-link": "什么是符号链接?", + "i-need-help": "我需要帮助", + "valid-btn": "链接{contentType}" + }, + "unlink-contents": { + "title": "取消链接{contentType}", + "p-1": "注意:取消链接{contentType}将禁用此版本中共享的{contentType}功能,直到该功能再次启用。", + "p-2": "为了取消链接您的{contentType},指向{sharedHtml}的符号链接将被删除。之后,共享文件夹中的所有{contentType}将被复制到您Beat Saber版本的{itemsHtml}文件夹中。", + "do-not-copy-contents": "不复制{contentType}", + "do-not-copy-contents-tip": "如果启用,共享文件夹中的{contentType}不会被复制到您的Beat Saber版本中。结果是,取消链接后,您的Beat Saber版本中将不再保留任何{contentType}。", + "valid-btn": "取消链接{contentType}" + }, "download-maps": { "search-btn": "搜索", "loading-maps": "谱面加载中...", @@ -1027,86 +1030,6 @@ "no-models": "未找到模型", "no-internet": "无网络连接", "error-occured": "发生了一个错误,稍后重试。" - }, - "link-models": { - "avatar": { - "title": "关联 Avatar", - "desc": "关联 Avatar 允许在所有启用此功能的版本之间共享 Avatar。一旦关联,该版本将受益于共享 Avatar。", - "info": "对 Avatar 的添加和删除也将被共享", - "keep-models": { - "label": "保留 Avatar", - "title": "保留 Avatar 将会把当前版本的所有 Avatar复制到共享 Avatar文件夹。否则,该版本的 Avatar将不会被保留,它们将丢失。" - }, - "valid-btn": "关联 Avatar " - }, - "saber": { - "title": "关联光剑", - "desc": "关联光剑允许在所有启用此功能的版本之间共享光剑。一旦关联,该版本将受益于共享光剑。", - "info": "对光剑的添加和删除也将被共享", - "keep-models": { - "label": "保留光剑", - "title": "保留光剑将会把当前版本的所有光剑复制到共享光剑文件夹。否则,该版本的光剑将不会被保留,它们将丢失。" - }, - "valid-btn": "关联光剑" - }, - "platform": { - "title": "关联平台", - "desc": "关联平台允许在所有启用此功能的版本之间共享平台。一旦关联,该版本将受益于共享平台。", - "info": "对平台的添加和删除也将被共享", - "keep-models": { - "label": "保留平台", - "title": "保留平台将会把当前版本的所有平台复制到共享平台文件夹。否则,该版本的平台将不会被保留,它们将丢失。" - }, - "valid-btn": "关联平台" - }, - "bloq": { - "title": "关联方块", - "desc": "关联方块允许在所有启用此功能的版本之间共享方块。一旦关联,该版本将受益于共享方块。", - "info": "对方块的添加和删除也将被共享", - "keep-models": { - "label": "保留方块", - "title": "保留方块将会把当前版本的所有方块复制到共享方块文件夹。否则,该版本的方块将不会被保留,它们将丢失。" - }, - "valid-btn": "关联方块" - } - }, - "unlink-models": { - "avatar": { - "title": "取消关联 Avatar", - "desc": "请注意,取消关联 Avatar 将禁用该版本的共享 Avatar 使用,直到重新启用。", - "keep-models": { - "label": "保留 Avatar", - "title": "保留 Avatar 将会在取消关联后把共享文件夹的所有 Avatar 复制到当前版本。如果此项被禁用,Avatar 将不会丢失。" - }, - "valid-btn": "取消关联 Avatar" - }, - "saber": { - "title": "取消关联光剑", - "desc": "请注意,取消关联光剑将禁用该版本的共享光剑使用,直到重新启用。", - "keep-models": { - "label": "保留光剑", - "title": "保留光剑将会在取消关联后把共享文件夹的所有光剑复制到当前版本。如果此项被禁用,光剑将不会丢失。" - }, - "valid-btn": "取消关联光剑" - }, - "platform": { - "title": "取消关联平台", - "desc": "请注意,取消关联平台将禁用该版本的共享平台使用,直到重新启用。", - "keep-models": { - "label": "保留平台", - "title": "保留平台将会在取消关联后把共享文件夹的所有平台复制到当前版本。如果此项被禁用,平台将不会丢失。" - }, - "valid-btn": "取消关联平台" - }, - "bloq": { - "title": "取消关联方块", - "desc": "请注意,取消关联方块将禁用该版本的共享方块使用,直到重新启用。", - "keep-models": { - "label": "保留方块", - "title": "保留方块将会在取消关联后把共享文件夹的所有方块复制到当前版本。如果此项被禁用,方块将不会丢失。" - }, - "valid-btn": "取消关联方块" - } } }, "notifications": { @@ -1183,14 +1106,6 @@ "stop-download": "停止下载", "cancel-download": "取消下载", "open-file": "打开文件", - "link-playlists": "链接播放列表", - "link-playlist-desc": "链接播放列表允许在所有版本之间共享播放列表。一旦链接,此版本将受益于共享播放列表", - "link-playlist-info": "添加和删除播放列表也将被共享", - "keep-playlists": "保留播放列表", - "keep-playlists-tip": "保留播放列表将把当前版本的播放列表移动到共享播放列表文件夹。否则,它们将丢失", - "unlink-playlists": "取消链接播放列表", - "unlink-playlist-desc": "警告,取消链接播放列表将不再允许此版本使用共享播放列表。", - "unlink-keep-playlists-tip": "保留播放列表将为当前版本创建共享播放列表的副本。否则,此版本将不保留任何播放列表。", "delete-playlist-ask": "删除播放列表?", "delete-playlists-ask": "删除播放列表?", "delete-playlist-desc": "您确定要删除播放列表 \"{playlistTitle}\" 吗?", diff --git a/package-lock.json b/package-lock.json index 449fdbed..dd60eacf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bs-manager", - "version": "1.5.0-alpha.5", + "version": "1.5.0-alpha.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "bs-manager", - "version": "1.5.0-alpha.5", + "version": "1.5.0-alpha.6", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/src/main/ipcs/bs-version-ipcs.ts b/src/main/ipcs/bs-version-ipcs.ts index 1e8dde0c..44a3c98b 100644 --- a/src/main/ipcs/bs-version-ipcs.ts +++ b/src/main/ipcs/bs-version-ipcs.ts @@ -2,10 +2,11 @@ import { shell } from "electron"; import { BSVersionLibService } from "../services/bs-version-lib.service"; import { BSLocalVersionService } from "../services/bs-local-version.service"; import { IpcService } from "../services/ipc.service"; -import { from } from "rxjs"; +import { from, of } from "rxjs"; import path from "path"; import { pathExists } from "fs-extra"; import { VersionFolderLinkerService } from "../services/version-folder-linker.service"; +import { FolderLinkerService } from "main/services/folder-linker.service"; const ipc = IpcService.getInstance(); @@ -67,3 +68,8 @@ ipc.on("relink-all-versions-folders", (_, reply) => { const versionLinker = VersionFolderLinkerService.getInstance(); reply(from(versionLinker.relinkAllVersionsFolders())); }); + +ipc.on("get-shared-folder", (_, reply) => { + const versionLinker = FolderLinkerService.getInstance(); + reply(of(versionLinker.sharedFolder())); +}); diff --git a/src/main/services/bs-local-version.service.ts b/src/main/services/bs-local-version.service.ts index 5b8e473e..dcdd4e15 100644 --- a/src/main/services/bs-local-version.service.ts +++ b/src/main/services/bs-local-version.service.ts @@ -104,6 +104,7 @@ export class BSLocalVersionService { const versionFilePath = path.join(bsPath, 'Beat Saber_Data', 'globalgamemanagers'); const folderVersion = await this.getVersionFromGlobalGameManagerFile(versionFilePath); + folderVersion.path = bsPath; if(!folderVersion){ return null; } diff --git a/src/main/services/folder-linker.service.ts b/src/main/services/folder-linker.service.ts index 3aa79353..70f1e48a 100644 --- a/src/main/services/folder-linker.service.ts +++ b/src/main/services/folder-linker.service.ts @@ -36,12 +36,12 @@ export class FolderLinkerService { }); } - private async sharedFolder(): Promise { + public sharedFolder(): string { return this.installLocationService.sharedContentPath(); } private async getSharedFolder(folderPath: string, intermediateFolder?: string): Promise { - return path.join(await this.sharedFolder(), intermediateFolder ?? "", path.basename(folderPath)); + return path.join(this.sharedFolder(), intermediateFolder ?? "", path.basename(folderPath)); } private getBackupFolder(folderPath: string): string { diff --git a/src/renderer/components/modal/modal-types/link-maps-modal.component.tsx b/src/renderer/components/modal/modal-types/link-maps-modal.component.tsx deleted file mode 100644 index 0ed51645..00000000 --- a/src/renderer/components/modal/modal-types/link-maps-modal.component.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { useState } from "react"; -import { BsmButton } from "renderer/components/shared/bsm-button.component"; -import { BsmCheckbox } from "renderer/components/shared/bsm-checkbox.component"; -import { BsmImage } from "renderer/components/shared/bsm-image.component"; -import { useTranslation } from "renderer/hooks/use-translation.hook"; -import { ModalComponent, ModalExitCode } from "renderer/services/modale.service"; -import BeatRunning from "../../../../../assets/images/apngs/beat-running.png"; - -export const LinkMapsModal: ModalComponent = ({ resolver }) => { - const t = useTranslation(); - const [keepMaps, setKeepMaps] = useState(true); - - return ( -
-

{t("modals.maps-actions.link-maps.title")}

- -

{t("modals.maps-actions.link-maps.desc")}

-

{t("modals.maps-actions.link-maps.info")}

-
- - - {t("modals.maps-actions.link-maps.keep-maps.label")} - -
-
- resolver({ exitCode: ModalExitCode.CANCELED })} withBar={false} text="misc.cancel" /> - resolver({ exitCode: ModalExitCode.COMPLETED, data: keepMaps })} withBar={false} text="modals.maps-actions.link-maps.valid-btn" /> -
- - ); -}; diff --git a/src/renderer/components/modal/modal-types/link-playlist-modal.component.tsx b/src/renderer/components/modal/modal-types/link-playlist-modal.component.tsx deleted file mode 100644 index 0388bbd2..00000000 --- a/src/renderer/components/modal/modal-types/link-playlist-modal.component.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { useState } from "react"; -import { BsmButton } from "renderer/components/shared/bsm-button.component"; -import { BsmCheckbox } from "renderer/components/shared/bsm-checkbox.component"; -import { BsmImage } from "renderer/components/shared/bsm-image.component"; -import { useTranslation } from "renderer/hooks/use-translation.hook"; -import { ModalComponent, ModalExitCode } from "renderer/services/modale.service"; -import BeatRunning from "../../../../../assets/images/apngs/beat-running.png"; -import Tippy from "@tippyjs/react"; - -export const LinkPlaylistModal: ModalComponent = ({ resolver }) => { - const t = useTranslation(); - const [keepMaps, setKeepMaps] = useState(true); - - return ( -
-

{t("playlist.link-playlists")}

- -

{t("playlist.link-playlist-desc")}

-

{t("playlist.link-playlist-info")}

-
- - - - {t("playlist.keep-playlists")} - - -
-
- resolver({ exitCode: ModalExitCode.CANCELED })} withBar={false} text="misc.cancel" /> - resolver({ exitCode: ModalExitCode.COMPLETED, data: keepMaps })} withBar={false} text="playlist.link-playlists" /> -
- - ); -}; diff --git a/src/renderer/components/modal/modal-types/models/link-models-modal.component.tsx b/src/renderer/components/modal/modal-types/models/link-models-modal.component.tsx deleted file mode 100644 index 3350200b..00000000 --- a/src/renderer/components/modal/modal-types/models/link-models-modal.component.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { useState } from "react"; -import { BsmButton } from "renderer/components/shared/bsm-button.component"; -import { BsmCheckbox } from "renderer/components/shared/bsm-checkbox.component"; -import { BsmImage } from "renderer/components/shared/bsm-image.component"; -import { useTranslation } from "renderer/hooks/use-translation.hook"; -import { ModalComponent, ModalExitCode } from "renderer/services/modale.service"; -import { MSModelType } from "shared/models/models/model-saber.model"; -import BeatRunning from "../../../../../../assets/images/apngs/beat-running.png"; - -export const LinkModelsModal: ModalComponent = ({ resolver, options: {data} }) => { - const t = useTranslation(); - const [keepMaps, setKeepMaps] = useState(true); - - return ( -
-

{t(`models.modals.link-models.${data}.title`)}

- -

{t(`models.modals.link-models.${data}.desc`)}

-

{t(`models.modals.link-models.${data}.info`)}

-
- - - {t(`models.modals.link-models.${data}.keep-models.label`)} - -
-
- resolver({ exitCode: ModalExitCode.CANCELED })} withBar={false} text="misc.cancel" /> - resolver({ exitCode: ModalExitCode.COMPLETED, data: keepMaps })} withBar={false} text={`models.modals.link-models.${data}.valid-btn`} /> -
- - ); -}; diff --git a/src/renderer/components/modal/modal-types/models/unlink-models-modal.component.tsx b/src/renderer/components/modal/modal-types/models/unlink-models-modal.component.tsx deleted file mode 100644 index 5af7a65b..00000000 --- a/src/renderer/components/modal/modal-types/models/unlink-models-modal.component.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { useState } from "react"; -import { BsmButton } from "renderer/components/shared/bsm-button.component"; -import { BsmCheckbox } from "renderer/components/shared/bsm-checkbox.component"; -import { BsmImage } from "renderer/components/shared/bsm-image.component"; -import { useTranslation } from "renderer/hooks/use-translation.hook"; -import { ModalComponent, ModalExitCode } from "renderer/services/modale.service"; -import BeatConflict from "../../../../../../assets/images/apngs/beat-conflict.png"; -import { MSModelType } from "shared/models/models/model-saber.model"; - -export const UnlinkModelsModal: ModalComponent = ({ resolver, options: {data} }) => { - const t = useTranslation(); - const [keepMaps, setKeepMaps] = useState(true); - - return ( -
-

{t(`models.modals.unlink-models.${data}.title`)}

- -

{t(`models.modals.unlink-models.${data}.desc`)}

-
- - - {t(`models.modals.unlink-models.${data}.keep-models.label`)} - -
-
- resolver({ exitCode: ModalExitCode.CANCELED })} withBar={false} text="misc.cancel" /> - resolver({ exitCode: ModalExitCode.COMPLETED, data: keepMaps })} withBar={false} text={`models.modals.unlink-models.${data}.valid-btn`} /> -
- - ); -}; diff --git a/src/renderer/components/modal/modal-types/unlink-maps-modal.component.tsx b/src/renderer/components/modal/modal-types/unlink-maps-modal.component.tsx deleted file mode 100644 index 2e88a461..00000000 --- a/src/renderer/components/modal/modal-types/unlink-maps-modal.component.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { useState } from "react"; -import { BsmButton } from "renderer/components/shared/bsm-button.component"; -import { BsmCheckbox } from "renderer/components/shared/bsm-checkbox.component"; -import { BsmImage } from "renderer/components/shared/bsm-image.component"; -import { useTranslation } from "renderer/hooks/use-translation.hook"; -import { ModalComponent, ModalExitCode } from "renderer/services/modale.service"; -import BeatConflict from "../../../../../assets/images/apngs/beat-conflict.png"; - -export const UnlinkMapsModal: ModalComponent = ({ resolver }) => { - const t = useTranslation(); - const [keepMaps, setKeepMaps] = useState(true); - - return ( -
-

{t("modals.maps-actions.unlink-maps.title")}

- -

{t("modals.maps-actions.unlink-maps.desc")}

-
- - - {t("modals.maps-actions.unlink-maps.keep-maps.label")} - -
-
- resolver({ exitCode: ModalExitCode.CANCELED })} withBar={false} text="misc.cancel" /> - resolver({ exitCode: ModalExitCode.COMPLETED, data: keepMaps })} withBar={false} text="modals.maps-actions.unlink-maps.valid-btn" /> -
- - ); -}; diff --git a/src/renderer/components/modal/modal-types/unlink-playlist-modal.component.tsx b/src/renderer/components/modal/modal-types/unlink-playlist-modal.component.tsx deleted file mode 100644 index 2105aa39..00000000 --- a/src/renderer/components/modal/modal-types/unlink-playlist-modal.component.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { useState } from "react"; -import { BsmButton } from "renderer/components/shared/bsm-button.component"; -import { BsmCheckbox } from "renderer/components/shared/bsm-checkbox.component"; -import { BsmImage } from "renderer/components/shared/bsm-image.component"; -import { useTranslation } from "renderer/hooks/use-translation.hook"; -import { ModalComponent, ModalExitCode } from "renderer/services/modale.service"; -import BeatConflict from "../../../../../assets/images/apngs/beat-conflict.png"; -import Tippy from "@tippyjs/react"; - -export const UnlinkPlaylistModal: ModalComponent = ({ resolver }) => { - const t = useTranslation(); - const [keepMaps, setKeepMaps] = useState(true); - - return ( -
-

{t("playlist.unlink-playlists")}

- -

{t("playlist.unlink-playlist-desc")}

-
- - - - {t("playlist.keep-playlists")} - - -
-
- resolver({ exitCode: ModalExitCode.CANCELED })} withBar={false} text="misc.cancel" /> - resolver({ exitCode: ModalExitCode.COMPLETED, data: keepMaps })} withBar={false} text="playlist.unlink-playlists" /> -
- - ); -}; diff --git a/src/renderer/services/maps-manager.service.ts b/src/renderer/services/maps-manager.service.ts index da1ac422..ade05567 100644 --- a/src/renderer/services/maps-manager.service.ts +++ b/src/renderer/services/maps-manager.service.ts @@ -1,5 +1,5 @@ -import { LinkMapsModal } from "renderer/components/modal/modal-types/link-maps-modal.component"; -import { UnlinkMapsModal } from "renderer/components/modal/modal-types/unlink-maps-modal.component"; +import { LinkContentModal } from "renderer/components/modal/modal-types/link-contents-modal.component"; +import { UnlinkContentsModal } from "renderer/components/modal/modal-types/unlink-contents-modal.component"; import { Subject, Observable, of, lastValueFrom, Subscription, throwError } from "rxjs"; import { BSVersion } from "shared/bs-version.interface"; import { BsmLocalMapsProgress, BsmLocalMap } from "shared/models/maps/bsm-local-map.interface"; @@ -60,7 +60,7 @@ export class MapsManagerService { } public async linkVersion(version: BSVersion): Promise { - const modalRes = await this.modal.openModal(LinkMapsModal); + const modalRes = await this.modal.openModal(LinkContentModal, { data: { version, contentType: "maps" } }); if (modalRes.exitCode !== ModalExitCode.COMPLETED) { return Promise.resolve(false); @@ -69,12 +69,12 @@ export class MapsManagerService { return this.linker.linkVersionFolder({ version, relativeFolder: MapsManagerService.RELATIVE_MAPS_FOLDER, - options: { keepContents: !!modalRes.data }, + options: { keepContents: true }, }); } public async unlinkVersion(version: BSVersion): Promise { - const modalRes = await this.modal.openModal(UnlinkMapsModal); + const modalRes = await this.modal.openModal(UnlinkContentsModal, { data: { version, contentType: "maps" } }); if (modalRes.exitCode !== ModalExitCode.COMPLETED) { return Promise.resolve(false); diff --git a/src/renderer/services/models-management/models-manager.service.ts b/src/renderer/services/models-management/models-manager.service.ts index 6205b2fa..25de8997 100644 --- a/src/renderer/services/models-management/models-manager.service.ts +++ b/src/renderer/services/models-management/models-manager.service.ts @@ -5,8 +5,6 @@ import { MODEL_TYPE_FOLDERS } from "shared/models/models/constants"; import { Observable, lastValueFrom, map } from "rxjs"; import { BSVersion } from "shared/bs-version.interface"; import { ModalExitCode, ModalService } from "../modale.service"; -import { LinkModelsModal } from "renderer/components/modal/modal-types/models/link-models-modal.component"; -import { UnlinkModelsModal } from "renderer/components/modal/modal-types/models/unlink-models-modal.component"; import { Progression } from "main/helpers/fs.helpers"; import { BsmLocalModel } from "shared/models/models/bsm-local-model.interface"; import { ProgressBarService } from "../progress-bar.service"; @@ -14,6 +12,8 @@ import { ProgressionInterface } from "shared/models/progress-bar"; import { NotificationService } from "../notification.service"; import { ConfigurationService } from "../configuration.service"; import { DeleteModelsModal } from "renderer/components/modal/modal-types/models/delete-models-modal.component"; +import { LinkContentModal } from "renderer/components/modal/modal-types/link-contents-modal.component"; +import { UnlinkContentsModal } from "renderer/components/modal/modal-types/unlink-contents-modal.component"; export class ModelsManagerService { private static instance: ModelsManagerService; @@ -72,7 +72,7 @@ export class ModelsManagerService { } public async linkModels(type: MSModelType, version?: BSVersion): Promise { - const res = await this.modalService.openModal(LinkModelsModal, {data: type}); + const res = await this.modalService.openModal(LinkContentModal, {data: { version, contentType: `${type}s` as any }}); if (res.exitCode !== ModalExitCode.COMPLETED) { return null; @@ -86,7 +86,7 @@ export class ModelsManagerService { } public async unlinkModels(type: MSModelType, version?: BSVersion): Promise { - const res = await this.modalService.openModal(UnlinkModelsModal, {data: type}); + const res = await this.modalService.openModal(UnlinkContentsModal, {data: { version, contentType: `${type}s` as any }}); if (res.exitCode !== ModalExitCode.COMPLETED) { return null; diff --git a/src/renderer/services/playlists-manager.service.ts b/src/renderer/services/playlists-manager.service.ts index cdf0606a..c5ec95e7 100644 --- a/src/renderer/services/playlists-manager.service.ts +++ b/src/renderer/services/playlists-manager.service.ts @@ -5,14 +5,14 @@ import { FolderLinkState, VersionFolderLinkerService } from "./version-folder-li import { Progression } from "main/helpers/fs.helpers"; import { LocalBPList, LocalBPListsDetails } from "shared/models/playlists/local-playlist.models"; import { ModalExitCode, ModalService } from "./modale.service"; -import { UnlinkPlaylistModal } from "renderer/components/modal/modal-types/unlink-playlist-modal.component"; -import { LinkPlaylistModal } from "renderer/components/modal/modal-types/link-playlist-modal.component"; import { BsmLocalMap } from "shared/models/maps/bsm-local-map.interface"; import { ProgressBarService } from "./progress-bar.service"; import equal from "fast-deep-equal"; import { noop } from "shared/helpers/function.helpers"; import { NotificationService } from "./notification.service"; import { CustomError } from "shared/models/exceptions/custom-error.class"; +import { LinkContentModal } from "renderer/components/modal/modal-types/link-contents-modal.component"; +import { UnlinkContentsModal } from "renderer/components/modal/modal-types/unlink-contents-modal.component"; export class PlaylistsManagerService { private static instance: PlaylistsManagerService; @@ -123,7 +123,7 @@ export class PlaylistsManagerService { } public async linkVersion(version: BSVersion): Promise { - const modalRes = await this.modal.openModal(LinkPlaylistModal); + const modalRes = await this.modal.openModal(LinkContentModal, { data: { version, contentType: "playlists" } }); if (modalRes.exitCode !== ModalExitCode.COMPLETED) { return Promise.resolve(false); @@ -137,7 +137,7 @@ export class PlaylistsManagerService { } public async unlinkVersion(version: BSVersion): Promise { - const modalRes = await this.modal.openModal(UnlinkPlaylistModal); + const modalRes = await this.modal.openModal(UnlinkContentsModal, { data: { version, contentType: "playlists" } }); if (modalRes.exitCode !== ModalExitCode.COMPLETED) { return Promise.resolve(false); diff --git a/src/renderer/services/version-folder-linker.service.ts b/src/renderer/services/version-folder-linker.service.ts index 8bcbf5be..0b5a5c07 100644 --- a/src/renderer/services/version-folder-linker.service.ts +++ b/src/renderer/services/version-folder-linker.service.ts @@ -182,6 +182,10 @@ export class VersionFolderLinkerService { public relinkAllVersionsFolders(): Observable { return this.ipcService.sendV2("relink-all-versions-folders"); } + + public getSharedFolder(): Observable { + return this.ipcService.sendV2("get-shared-folder"); + } } export const enum VersionLinkerActionType { diff --git a/src/shared/bs-version.interface.ts b/src/shared/bs-version.interface.ts index 4bd6edd3..9d8ff2ad 100644 --- a/src/shared/bs-version.interface.ts +++ b/src/shared/bs-version.interface.ts @@ -17,6 +17,7 @@ export interface BSVersion extends PartialBSVersion { color?: string; // TODO : Should be in metadata OculusBinaryId?: string; metadata?: BSVersionMetadata; + path?: string; recommended?: boolean; } diff --git a/src/shared/models/ipc/ipc-routes.ts b/src/shared/models/ipc/ipc-routes.ts index bd961326..6eaed08e 100644 --- a/src/shared/models/ipc/ipc-routes.ts +++ b/src/shared/models/ipc/ipc-routes.ts @@ -113,6 +113,7 @@ export interface IpcChannelMapping { "link-version-folder-action": { request: VersionLinkerAction, response: void }; "is-version-folder-linked": { request: { version: BSVersion; relativeFolder: string }, response: boolean }; "relink-all-versions-folders": { request: void, response: void }; + "get-shared-folder": { request: void, response: string }; /* ** launcher-ipcs ** */ "download-update": { request: void, response: Progression };