diff --git a/assets/jsons/translations/en-EN.json b/assets/jsons/translations/en-EN.json index 31537be2..89939718 100644 --- a/assets/jsons/translations/en-EN.json +++ b/assets/jsons/translations/en-EN.json @@ -1,5 +1,12 @@ { + "misc":{ + "download": "Download", + "verify": "Verify" + }, "pages":{ + "available-versions":{ + "title": "Select a version" + }, "settings":{ "steam":{ "title":"Steam", diff --git a/assets/jsons/translations/en-US.json b/assets/jsons/translations/en-US.json index 6f5c4fd2..ba8bb60b 100644 --- a/assets/jsons/translations/en-US.json +++ b/assets/jsons/translations/en-US.json @@ -1,5 +1,12 @@ { + "misc":{ + "download": "Download", + "verify": "Verify" + }, "pages":{ + "available-versions":{ + "title": "Select a version" + }, "settings":{ "steam":{ "title":"Steam", diff --git a/assets/jsons/translations/es-ES.json b/assets/jsons/translations/es-ES.json index b8340e17..7b0d49fd 100644 --- a/assets/jsons/translations/es-ES.json +++ b/assets/jsons/translations/es-ES.json @@ -1,5 +1,12 @@ { + "misc":{ + "download": "Descargar", + "verify": "Verificar" + }, "pages":{ + "available-versions":{ + "title": "Seleccione una versión" + }, "settings":{ "steam":{ "title":"Steam", diff --git a/assets/jsons/translations/fr-FR.json b/assets/jsons/translations/fr-FR.json index f7044ebb..01a4eca0 100644 --- a/assets/jsons/translations/fr-FR.json +++ b/assets/jsons/translations/fr-FR.json @@ -1,5 +1,12 @@ { + "misc":{ + "download": "Télécharger", + "verify": "Vérifier" + }, "pages":{ + "available-versions":{ + "title": "Choisi une version" + }, "settings":{ "steam":{ "title":"Steam", diff --git a/src/renderer/hooks/use-translation.hook.ts b/src/renderer/hooks/use-translation.hook.ts index 9484b475..74fceca6 100644 --- a/src/renderer/hooks/use-translation.hook.ts +++ b/src/renderer/hooks/use-translation.hook.ts @@ -6,6 +6,9 @@ export function useTranslation(): (translationKey: string) => string{ const i18nService = I18nService.getInstance(); return (key: string) => { - return useMemo(() => i18nService.translate(key), [key, i18nService.currentLanguage]); + return useMemo(() => { + const tranlatables = key.split(" "); + return tranlatables.map((key) => i18nService.translate(key)).join(" "); + }, [key, i18nService.currentLanguage]); } } \ No newline at end of file diff --git a/src/renderer/pages/available-versions-list.components.tsx b/src/renderer/pages/available-versions-list.components.tsx index d5310674..89b92e1a 100644 --- a/src/renderer/pages/available-versions-list.components.tsx +++ b/src/renderer/pages/available-versions-list.components.tsx @@ -6,8 +6,9 @@ import { BSVersion } from "main/services/bs-version-manager.service"; import { ProgressBarService } from "renderer/services/progress-bar.service"; import { BsmButton } from "renderer/components/shared/bsm-button.component"; import { AnimatePresence, motion } from "framer-motion"; -import { distinctUntilChanged } from "rxjs"; import { NotificationService } from "renderer/services/notification.service"; +import { useTranslation } from "renderer/hooks/use-translation.hook"; +import { BSVersionManagerService } from "renderer/services/bs-version-manager.service"; export function AvailableVersionsList() { @@ -23,9 +24,10 @@ export function AvailableVersionsList() { const bsDownloaderService: BsDownloaderService = BsDownloaderService.getInstance(); const progressBarService: ProgressBarService = ProgressBarService.getInstance(); const notificationService: NotificationService = NotificationService.getInstance(); + const versionManagerService: BSVersionManagerService = BSVersionManagerService.getInstance(); const [versionSelected, setVersionSelected] = useState(null as BSVersion); - const [progressBarVisible, setProgressBarVisible] = useState(false); + const t = useTranslation(); const startDownload = () => { if(progressBarService.visible$.value){ return; } @@ -44,10 +46,6 @@ export function AvailableVersionsList() { setVersionSelected(version); }); - const progressBarVisibleSub = progressBarService.visible$.pipe(distinctUntilChanged()).subscribe(visible => { - setProgressBarVisible(visible); - }) - return () => { versionSelectedSub.unsubscribe(); } @@ -57,13 +55,13 @@ export function AvailableVersionsList() { return (
-

Select a Version

+

{t("pages.available-versions.title")}

{ versionSelected && !progressBarService.visible$.value && ( - + )} diff --git a/src/renderer/services/bs-version-manager.service.ts b/src/renderer/services/bs-version-manager.service.ts index 0b0d8ba6..358fa5f5 100644 --- a/src/renderer/services/bs-version-manager.service.ts +++ b/src/renderer/services/bs-version-manager.service.ts @@ -51,6 +51,10 @@ export class BSVersionManagerService { return [...new Set(this.availableVersions$.value.map(v => v.year))].sort((a, b) => b.localeCompare(a)); } + public isVersionInstalled(version: BSVersion): boolean{ + return !!this.getInstalledVersions().find(v => v.BSVersion === version.BSVersion && v.steam === version.steam); + } + public getAvaibleVersionsOfYear(year: string): BSVersion[]{ return this.availableVersions$.value.filter(v => v.year === year).sort((a, b) => +b.ReleaseDate - +a.ReleaseDate); }