mirror of
https://github.com/Zagrios/bs-manager.git
synced 2026-07-03 14:08:25 +02:00
[578] Some adjustments
This commit is contained in:
@@ -835,10 +835,11 @@
|
||||
"default": "Standard",
|
||||
"default-tooltip": "Standardmäßig in Ihrem persönlichen Ordner"
|
||||
},
|
||||
"linux-setup": {
|
||||
"title": "Linux-Setup",
|
||||
"proton-folder": "Proton-Ordner",
|
||||
"proton-folder-description": "Wählen Sie den Ordner zum Proton-Pfad aus. (z. B. Proton - Experimental)"
|
||||
"choose-proton-folder": {
|
||||
"title": "Proton-Ordner",
|
||||
"proton-folder-description": "Unter Linux benötigt BSManager Proton, um zu funktionieren. Wählen Sie den Installationsordner von Proton, um fortzufahren.",
|
||||
"proton-folder-placeholder": "Proton-Installationsordner",
|
||||
"where-is-proton-installed": "Wo ist Proton installiert?"
|
||||
}
|
||||
},
|
||||
"maps": {
|
||||
|
||||
@@ -835,10 +835,11 @@
|
||||
"default": "Default",
|
||||
"default-tooltip": "Defaults to your home folder"
|
||||
},
|
||||
"linux-setup": {
|
||||
"title": "Linux Setup",
|
||||
"proton-folder": "Proton folder",
|
||||
"proton-folder-description": "Choose the folder to the Proton path. (eg. Proton - Experimental)"
|
||||
"choose-proton-folder": {
|
||||
"title": "Proton Folder",
|
||||
"proton-folder-description": "On Linux, BSManager requires Proton to work. Choose the Proton installation folder to continue.",
|
||||
"proton-folder-placeholder": "Proton installation folder",
|
||||
"where-is-proton-installed": "Where is Proton installed?"
|
||||
}
|
||||
},
|
||||
"maps": {
|
||||
|
||||
@@ -835,10 +835,11 @@
|
||||
"default": "Predeterminado",
|
||||
"default-tooltip": "Por defecto, en su carpeta personal"
|
||||
},
|
||||
"linux-setup": {
|
||||
"title": "Configuración de Linux",
|
||||
"proton-folder": "Carpeta de Proton",
|
||||
"proton-folder-description": "Elige la carpeta en la ruta de Proton. (por ejemplo, Proton - Experimental)"
|
||||
"choose-proton-folder": {
|
||||
"title": "Carpeta de Proton",
|
||||
"proton-folder-description": "En Linux, BSManager necesita Proton para funcionar. Elija la carpeta de instalación de Proton para continuar.",
|
||||
"proton-folder-placeholder": "Carpeta de instalación de Proton",
|
||||
"where-is-proton-installed": "¿Dónde está instalado Proton?"
|
||||
}
|
||||
},
|
||||
"maps": {
|
||||
|
||||
@@ -836,10 +836,11 @@
|
||||
"default": "Par défaut",
|
||||
"default-tooltip": "Par défaut, dans votre dossier personnel"
|
||||
},
|
||||
"linux-setup": {
|
||||
"title": "Configuration de Linux",
|
||||
"proton-folder": "Dossier Proton",
|
||||
"proton-folder-description": "Choisissez le dossier vers le chemin de Proton. (par exemple, Proton - Experimental)"
|
||||
"choose-proton-folder": {
|
||||
"title": "Dossier Proton",
|
||||
"proton-folder-description": "Sous Linux, BSManager a besoin de Proton pour fonctionner. Choisissez le dossier d'installation de Proton pour continuer.",
|
||||
"proton-folder-placeholder": "Dossier d'installation de Proton",
|
||||
"where-is-proton-installed": "Où est installé Proton ?"
|
||||
}
|
||||
},
|
||||
"maps": {
|
||||
|
||||
@@ -835,10 +835,11 @@
|
||||
"default": "デフォルト",
|
||||
"default-tooltip": "デフォルトでは、ホームフォルダに設定されます"
|
||||
},
|
||||
"linux-setup": {
|
||||
"title": "Linuxセットアップ",
|
||||
"proton-folder": "Protonフォルダー",
|
||||
"proton-folder-description": "Protonのパスにフォルダーを選択してください。(例:Proton - Experimental)"
|
||||
"choose-proton-folder": {
|
||||
"title": "Protonフォルダ",
|
||||
"proton-folder-description": "Linuxでは、BSManagerを動作させるためにProtonが必要です。続行するには、Protonのインストールフォルダを選択してください。",
|
||||
"proton-folder-placeholder": "Protonのインストールフォルダ",
|
||||
"where-is-proton-installed": "Protonはどこにインストールされていますか?"
|
||||
}
|
||||
},
|
||||
"maps": {
|
||||
|
||||
@@ -834,10 +834,11 @@
|
||||
"default": "По умолчанию",
|
||||
"default-tooltip": "По умолчанию в вашей домашней папке"
|
||||
},
|
||||
"linux-setup": {
|
||||
"title": "Настройка Linux",
|
||||
"proton-folder": "Папка Proton",
|
||||
"proton-folder-description": "Выберите папку для пути к Proton. (например, Proton - Experimental)"
|
||||
"choose-proton-folder": {
|
||||
"title": "Папка Proton",
|
||||
"proton-folder-description": "В Linux BSManager требует Proton для работы. Выберите папку установки Proton, чтобы продолжить.",
|
||||
"proton-folder-placeholder": "Папка установки Proton",
|
||||
"where-is-proton-installed": "Где установлен Proton?"
|
||||
}
|
||||
},
|
||||
"maps": {
|
||||
|
||||
@@ -835,10 +835,11 @@
|
||||
"default": "預設",
|
||||
"default-tooltip": "預設為您的主資料夾"
|
||||
},
|
||||
"linux-setup": {
|
||||
"title": "Linux設置",
|
||||
"proton-folder": "Proton資料夾",
|
||||
"proton-folder-description": "選擇資料夾作為Proton路徑。(例如:Proton - Experimental)"
|
||||
"choose-proton-folder": {
|
||||
"title": "Proton資料夾",
|
||||
"proton-folder-description": "在Linux上,BSManager需要Proton才能運行。請選擇Proton的安裝資料夾以繼續。",
|
||||
"proton-folder-placeholder": "Proton安裝資料夾",
|
||||
"where-is-proton-installed": "Proton安裝在哪裡?"
|
||||
}
|
||||
},
|
||||
"maps": {
|
||||
|
||||
@@ -835,10 +835,11 @@
|
||||
"default": "默认",
|
||||
"default-tooltip": "默认为您的主文件夹"
|
||||
},
|
||||
"linux-setup": {
|
||||
"title": "Linux设置",
|
||||
"proton-folder": "Proton文件夹",
|
||||
"proton-folder-description": "选择文件夹作为Proton路径。(例如:Proton - Experimental)"
|
||||
"choose-proton-folder": {
|
||||
"title": "Proton文件夹",
|
||||
"proton-folder-description": "在Linux上,BSManager需要Proton才能运行。请选择Proton的安装文件夹以继续。",
|
||||
"proton-folder-placeholder": "Proton安装文件夹",
|
||||
"where-is-proton-installed": "Proton安装在哪里?"
|
||||
}
|
||||
},
|
||||
"maps": {
|
||||
|
||||
+27
-33
@@ -9,20 +9,15 @@ import { NotificationService } from "renderer/services/notification.service";
|
||||
import { StaticConfigurationService } from "renderer/services/static-configuration.service";
|
||||
|
||||
import { BsmButton } from "renderer/components/shared/bsm-button.component";
|
||||
import { SettingContainer } from "renderer/components/settings/setting-container.component";
|
||||
|
||||
export const LinuxSetupModal: ModalComponent<{}, {}> = ({ resolver }) => {
|
||||
export const ChooseProtonFolderModal: ModalComponent<{}, {}> = ({ resolver }) => {
|
||||
|
||||
const t = useTranslation();
|
||||
const ipcService = useService(IpcService);
|
||||
const notificationService = useService(NotificationService);
|
||||
const staticConfigService = useService(StaticConfigurationService);
|
||||
|
||||
const [protonFolder, setProtonFolder] = useState("");
|
||||
|
||||
const validateFields = () => {
|
||||
return !!protonFolder;
|
||||
}
|
||||
const [protonFolder, setProtonFolder] = useState(null);
|
||||
|
||||
const selectProtonPath = async () => {
|
||||
const response = await lastValueFrom(ipcService.sendV2("choose-folder", {
|
||||
@@ -30,23 +25,23 @@ export const LinuxSetupModal: ModalComponent<{}, {}> = ({ resolver }) => {
|
||||
defaultPath: ".local/share/Steam/steamapps/common",
|
||||
showHidden: true,
|
||||
}));
|
||||
|
||||
if (response.canceled || !response.filePaths?.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
const path = response.filePaths[0];
|
||||
try {
|
||||
await staticConfigService.set("proton-folder", path);
|
||||
|
||||
await staticConfigService.set("proton-folder", path).then(() => {
|
||||
setProtonFolder(path);
|
||||
validateFields();
|
||||
} catch (error: any) {
|
||||
}).catch(err => {
|
||||
notificationService.notifyError({
|
||||
title: "pages.settings.proton-folder.errors.title",
|
||||
desc: ["invalid-folder"].includes(error?.code)
|
||||
? `pages.settings.proton-folder.errors.${error.code}`
|
||||
desc: ["invalid-folder"].includes(err?.code)
|
||||
? `pages.settings.proton-folder.errors.${err.code}`
|
||||
: "misc.unknown"
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const onConfirmButtonPressed = async () => {
|
||||
@@ -57,36 +52,35 @@ export const LinuxSetupModal: ModalComponent<{}, {}> = ({ resolver }) => {
|
||||
|
||||
return (
|
||||
<form
|
||||
className="max-w-xl w-max"
|
||||
className="max-w-lg w-max flex flex-col gap-3"
|
||||
onSubmit={event => {
|
||||
event.preventDefault();
|
||||
onConfirmButtonPressed();
|
||||
}}>
|
||||
|
||||
<h1 className="tracking-wide w-full uppercase text-3xl text-center mb-4">
|
||||
{t("modals.linux-setup.title")}
|
||||
</h1>
|
||||
<h1 className="tracking-wide w-full uppercase text-3xl text-center mb-4">{t("modals.choose-proton-folder.title")}</h1>
|
||||
|
||||
<SettingContainer
|
||||
os="linux"
|
||||
title="modals.linux-setup.proton-folder"
|
||||
description="modals.linux-setup.proton-folder-description"
|
||||
>
|
||||
<div className="relative flex items-center justify-between w-full h-8 bg-light-main-color-1 dark:bg-main-color-1 rounded-md pl-2 py-1">
|
||||
<span
|
||||
className="block text-ellipsis overflow-hidden min-w-0 whitespace-nowrap"
|
||||
title={protonFolder}
|
||||
>
|
||||
{protonFolder}
|
||||
</span>
|
||||
<p>{t("modals.choose-proton-folder.proton-folder-description")}</p>
|
||||
|
||||
<a className="underline" href="https://github.com/ValveSoftware/Proton/wiki/Proton-FAQ#where-is-proton-installed" target="_blank">{t("modals.choose-proton-folder.where-is-proton-installed")}</a>
|
||||
<div className="relative flex items-center justify-between w-full h-8 bg-light-main-color-1 dark:bg-main-color-1 rounded-md pl-2 py-1">
|
||||
{protonFolder ? (
|
||||
<span
|
||||
className="block text-ellipsis overflow-hidden min-w-0 whitespace-nowrap"
|
||||
title={protonFolder}
|
||||
>
|
||||
{protonFolder}
|
||||
</span>
|
||||
) : (
|
||||
<span className="text-gray-500 italic font-bold">{t("modals.choose-proton-folder.proton-folder-placeholder")}</span>
|
||||
)}
|
||||
<BsmButton
|
||||
onClick={selectProtonPath}
|
||||
className="shrink-0 whitespace-nowrap mr-2 px-2 font-bold italic text-sm rounded-md"
|
||||
text="misc.choose-folder"
|
||||
withBar={false}
|
||||
/>
|
||||
</div>
|
||||
</SettingContainer>
|
||||
</div>
|
||||
|
||||
<div className="h-8 grid grid-flow-col grid-cols-1">
|
||||
<BsmButton
|
||||
@@ -95,7 +89,7 @@ export const LinuxSetupModal: ModalComponent<{}, {}> = ({ resolver }) => {
|
||||
type="submit"
|
||||
withBar={false}
|
||||
text="misc.confirm"
|
||||
disabled={!validateFields()}
|
||||
disabled={!protonFolder}
|
||||
/>
|
||||
</div>
|
||||
</form>
|
||||
@@ -90,7 +90,7 @@ export const BsmButton = forwardRef<unknown, Props>(({ className, style, iconSty
|
||||
{icon && <BsmIcon icon={icon} className={iconClassName ?? "size-full text-gray-800 dark:text-white"} style={{ ...(iconStyle ?? {}), color: (iconColor || textColor) }} />}
|
||||
{text &&
|
||||
(type === "submit" ? (
|
||||
<button type="submit" className={textClassName || "size-full"} style={{ ...(!!textColor && { color: textColor }) }}>
|
||||
<button type="submit" className={textClassName || "size-full"} style={{ ...(!!textColor && { color: textColor }) }} disabled={disabled}>
|
||||
{t(text)}
|
||||
</button>
|
||||
) : (
|
||||
|
||||
@@ -7,7 +7,7 @@ import { IpcService } from "./ipc.service";
|
||||
import { ModalService } from "./modale.service";
|
||||
|
||||
import { AskInstallPathModal } from "renderer/components/modal/modal-types/setup/ask-install-path.component";
|
||||
import { LinuxSetupModal } from "renderer/components/modal/modal-types/setup/linux-setup-modal.component";
|
||||
import { ChooseProtonFolderModal } from "renderer/components/modal/modal-types/setup/choose-proton-folder-modal.component";
|
||||
|
||||
// Handle setup modals/prompts, ordering of the modals/prompts may be done here
|
||||
export class SetupService {
|
||||
@@ -74,7 +74,7 @@ export class SetupService {
|
||||
}
|
||||
|
||||
await this.modalService.openModal(
|
||||
LinuxSetupModal,
|
||||
ChooseProtonFolderModal,
|
||||
{ closable: false }
|
||||
);
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user