diff --git a/assets/jsons/translations/de.json b/assets/jsons/translations/de.json index d3772125f..da0793124 100644 --- a/assets/jsons/translations/de.json +++ b/assets/jsons/translations/de.json @@ -56,7 +56,9 @@ "skipsteam": "Steam überspringen", "skipsteam-description": "Verhindert, dass Steam automatisch mit Beat Saber geöffnet wird. Aktivieren Sie dies, wenn Sie eine andere VR-Laufzeit wie WiVRn oder Monado verwenden, mit der SteamVR interferieren könnte.", "map-editor": "Karteneditor", - "map-editor-description": "Starte den offiziellen Beat Saber-Karteneditor anstelle des Spiels." + "map-editor-description": "Starte den offiziellen Beat Saber-Karteneditor anstelle des Spiels.", + "proton-logs": "Proton-Logs", + "proton-logs-description": "Aktiviert die Aufzeichnung von Proton-Logs für diese Beat Saber-Installation auf \"{versionPath}\"." }, "maps": { "search-bar": { diff --git a/assets/jsons/translations/en.json b/assets/jsons/translations/en.json index 1ef9eab92..a995b0042 100644 --- a/assets/jsons/translations/en.json +++ b/assets/jsons/translations/en.json @@ -56,7 +56,9 @@ "skipsteam": "Skip Steam", "skipsteam-description": "Stops Steam from opening automatically with Beat Saber, enable if you are using a different VR runtime like WiVRn or Monado that SteamVR may interfere with.", "map-editor": "Map Editor", - "map-editor-description": "Start the official Beat Saber map editor instead of the game." + "map-editor-description": "Start the official Beat Saber map editor instead of the game.", + "proton-logs": "Proton Logs", + "proton-logs-description": "Enables the recording of proton logs for this Beat Saber install to \"{versionPath}\"." }, "maps": { "search-bar": { diff --git a/assets/jsons/translations/es.json b/assets/jsons/translations/es.json index 553790e09..d38be0a96 100644 --- a/assets/jsons/translations/es.json +++ b/assets/jsons/translations/es.json @@ -52,7 +52,13 @@ "advanced-launch": { "button": "Opciones de lanzamiento", "placeholder": "Argumentos adicionales ej: --revert; --no-wait" - } + }, + "skipsteam": "Saltar Steam", + "skipsteam-description": "Evita que Steam se abra automáticamente con Beat Saber, habilita esto si estás usando un runtime de VR diferente como WiVRn o Monado que SteamVR podría interferir.", + "map-editor": "Editor de mapas", + "map-editor-description": "Inicia el editor oficial de mapas de Beat Saber en lugar del juego.", + "proton-logs": "Registros de Proton", + "proton-logs-description": "Habilita el registro de los logs de Proton para esta instalación de Beat Saber en \"{versionPath}\"." }, "maps": { "search-bar": { @@ -62,11 +68,7 @@ "export-maps": "Exportar mapas", "delete-maps": "Borrar mapas", "delete-duplicate-maps": "Borrar duplicados" - }, - "skipsteam": "Saltar Steam", - "skipsteam-description": "Evita que Steam se abra automáticamente con Beat Saber, habilita esto si estás usando un runtime de VR diferente como WiVRn o Monado que SteamVR podría interferir.", - "map-editor": "Editor de mapas", - "map-editor-description": "Inicia el editor oficial de mapas de Beat Saber en lugar del juego." + } }, "tabs": { "maps": { diff --git a/assets/jsons/translations/fr.json b/assets/jsons/translations/fr.json index ec4d562e0..0a8d6b40d 100644 --- a/assets/jsons/translations/fr.json +++ b/assets/jsons/translations/fr.json @@ -56,7 +56,9 @@ "skipsteam": "Ignorer Steam", "skipsteam-description": "Empêche Steam de s'ouvrir automatiquement avec Beat Saber, activez-le si vous utilisez un autre runtime VR comme WiVRn ou Monado avec lequel SteamVR pourrait interférer.", "map-editor": "Éditeur de map", - "map-editor-description": "Lance l'éditeur officiel de map de Beat Saber au lieu du jeu." + "map-editor-description": "Lance l'éditeur officiel de map de Beat Saber au lieu du jeu.", + "proton-logs": "Journaux de Proton", + "proton-logs-description": "Active l'enregistrement des journaux Proton pour cette installation de Beat Saber sur \"{versionPath}\"." }, "maps": { "search-bar": { diff --git a/assets/jsons/translations/ja.json b/assets/jsons/translations/ja.json index d7d95c143..89dece506 100644 --- a/assets/jsons/translations/ja.json +++ b/assets/jsons/translations/ja.json @@ -54,7 +54,11 @@ "placeholder": "追加引数 例:--revert; --nowait" }, "skipsteam": "Steamをスキップ", - "skipsteam-description": "Beat Saberと一緒にSteamが自動的に開くのを防ぎます。SteamVRが干渉する可能性のあるWiVRnやMonadoなど、別のVRランタイムを使用している場合は有効にしてください。" + "skipsteam-description": "Beat Saberと一緒にSteamが自動的に開くのを防ぎます。SteamVRが干渉する可能性のあるWiVRnやMonadoなど、別のVRランタイムを使用している場合は有効にしてください。", + "map-editor": "マップエディタ", + "map-editor-description": "ゲームの代わりに公式のBeat Saberマップエディタを起動する。", + "proton-logs": "プロトンログ", + "proton-logs-description": "このBeat Saberインストールのプロトンログの記録を「{versionPath}」に有効にします。" }, "maps": { "search-bar": { diff --git a/assets/jsons/translations/ko.json b/assets/jsons/translations/ko.json index 581aca3b9..b3f7ae05e 100644 --- a/assets/jsons/translations/ko.json +++ b/assets/jsons/translations/ko.json @@ -56,7 +56,9 @@ "skipsteam": "Steam 실행 건너뛰기", "skipsteam-description": "Beat Saber와 함께 Steam이 자동으로 열리는 것을 방지합니다. SteamVR이 간섭할 수 있는 WiVRn 또는 Monado와 같은 다른 VR 런타임을 사용하는 경우 활성화하세요.", "map-editor": "맵 편집기", - "map-editor-description": "게임 대신 공식 Beat Saber 맵 편집기를 실행해." + "map-editor-description": "게임 대신 공식 Beat Saber 맵 편집기를 실행해.", + "proton-logs": "프로톤 로그", + "proton-logs-description": "이 Beat Saber 설치에 대한 프로톤 로그 기록을 「{versionPath}」로 활성화합니다." }, "maps": { "search-bar": { diff --git a/assets/jsons/translations/ru.json b/assets/jsons/translations/ru.json index 09a9ea1fa..6880e68a5 100644 --- a/assets/jsons/translations/ru.json +++ b/assets/jsons/translations/ru.json @@ -56,7 +56,9 @@ "skipsteam": "Пропустить Steam", "skipsteam-description": "Предотвращает автоматическое открытие Steam с Beat Saber, включите, если вы используете другую VR-среду, такую как WiVRn или Monado, с которой SteamVR может мешать.", "map-editor": "Редактор карт", - "map-editor-description": "Запусти официальный редактор карт Beat Saber вместо игры." + "map-editor-description": "Запусти официальный редактор карт Beat Saber вместо игры.", + "proton-logs": "Протонные логи", + "proton-logs-description": "Включает запись протонных логов для этой установки Beat Saber в \"{versionPath}\"." }, "maps": { "search-bar": { diff --git a/assets/jsons/translations/zh-tw.json b/assets/jsons/translations/zh-tw.json index 6bf2364ba..77145819d 100644 --- a/assets/jsons/translations/zh-tw.json +++ b/assets/jsons/translations/zh-tw.json @@ -56,7 +56,9 @@ "skipsteam": "跳過 Steam", "skipsteam-description": "防止 Steam 與 Beat Saber 自動打開,如果您使用的是其他 VR 執行時,如 WiVRn 或 Monado,SteamVR 可能會干擾,請啟用此選項。", "map-editor": "地圖編輯器", - "map-editor-description": "啟動官方的 Beat Saber 地圖編輯器,而不是遊戲。" + "map-editor-description": "啟動官方的 Beat Saber 地圖編輯器,而不是遊戲。", + "proton-logs": "Proton紀錄", + "proton-logs-description": "啟用此 Beat Saber 安裝的質子紀錄,路徑為\"{versionPath}\"。" }, "maps": { "search-bar": { diff --git a/assets/jsons/translations/zh.json b/assets/jsons/translations/zh.json index a84ec4923..85a874a11 100644 --- a/assets/jsons/translations/zh.json +++ b/assets/jsons/translations/zh.json @@ -56,7 +56,9 @@ "skipsteam": "跳过 Steam", "skipsteam-description": "防止 Steam 与 Beat Saber 自动打开,如果您使用的是其他 VR 运行时,如 WiVRn 或 Monado,SteamVR 可能会干扰,请启用此选项。", "map-editor": "地图编辑器", - "map-editor-description": "启动官方的 Beat Saber 地图编辑器,而不是游戏。" + "map-editor-description": "启动官方的 Beat Saber 地图编辑器,而不是游戏。", + "proton-logs": "Proton日志", + "proton-logs-description": "启用此 Beat Saber 安装的质子日志,路径为\"{versionPath}\"。" }, "maps": { "search-bar": { diff --git a/src/main/services/bs-launcher/bs-launcher.service.ts b/src/main/services/bs-launcher/bs-launcher.service.ts index 5afe996e9..96011b9bf 100644 --- a/src/main/services/bs-launcher/bs-launcher.service.ts +++ b/src/main/services/bs-launcher/bs-launcher.service.ts @@ -131,6 +131,7 @@ export class BSLauncherService { if(launchOptions.launchMods?.includes(LaunchMods.DEBUG)){ res.debug = "true"; } if(launchOptions.additionalArgs){ res.additionalArgs = launchOptions.additionalArgs; } if(launchOptions.launchMods?.includes(LaunchMods.SKIP_STEAM)){ res.skipSteam = "true"; } + if(launchOptions.launchMods?.includes(LaunchMods.PROTON_LOGS)){ res.protonLogs = "true"; } return res; } @@ -248,6 +249,7 @@ type ShortcutParams = { debug?: string; additionalArgs?: string[]; skipSteam?: string; + protonLogs?: string; version: string; versionName?: string; versionIno?: string; diff --git a/src/main/services/linux.service.ts b/src/main/services/linux.service.ts index 88b22df32..0dba7c0f4 100644 --- a/src/main/services/linux.service.ts +++ b/src/main/services/linux.service.ts @@ -6,6 +6,7 @@ import { StaticConfigurationService } from "./static-configuration.service"; import { CustomError } from "shared/models/exceptions/custom-error.class"; import { BSLaunchError, LaunchOption } from "shared/models/bs-launch"; import { bsmExec } from "main/helpers/os.helpers"; +import { LaunchMods } from "shared/models/bs-launch/launch-option.interface"; export class LinuxService { private static instance: LinuxService; @@ -78,11 +79,15 @@ export class LinuxService { "STEAM_COMPAT_CLIENT_INSTALL_PATH": steamPath, "STEAM_COMPAT_APP_ID": BS_APP_ID, // Run game in steam environment; fixes #585 for unicode song titles - "SteamEnv": "1", - // Uncomment these to create a proton log file in the Beat Saber install directory. - // "PROTON_LOG": 1, - // "PROTON_LOG_DIR": bsFolderPath, + "SteamEnv": 1, }); + + if (launchOptions.launchMods?.includes(LaunchMods.PROTON_LOGS)) { + Object.assign(env, { + "PROTON_LOG": 1, + "PROTON_LOG_DIR": path.join(bsFolderPath, "Logs"), + }); + } } public verifyProtonPath(protonFolder: string = ""): boolean { diff --git a/src/renderer/components/version-viewer/slides/launch/launch-mod-toogle.component.tsx b/src/renderer/components/version-viewer/slides/launch/launch-mod-toogle.component.tsx index e560a7a2d..b5a154652 100644 --- a/src/renderer/components/version-viewer/slides/launch/launch-mod-toogle.component.tsx +++ b/src/renderer/components/version-viewer/slides/launch/launch-mod-toogle.component.tsx @@ -2,7 +2,7 @@ import Tippy from "@tippyjs/react"; import { GlowEffect } from "renderer/components/shared/glow-effect.component"; import { BsmIcon } from "renderer/components/svgs/bsm-icon.component"; import { SvgIcon } from "renderer/components/svgs/svg-icon.type"; -import { useTranslation } from "renderer/hooks/use-translation.hook"; +import { useTranslationV2 } from "renderer/hooks/use-translation.hook"; type Props = { onClick: (active: boolean) => void; @@ -13,7 +13,7 @@ type Props = { }; export function LaunchModToogle({ onClick, active, text, icon: Icon, infoText }: Props) { - const t = useTranslation(); + const { text: t } = useTranslationV2(); return (