reorder upload and download, fix minor issues

This commit is contained in:
proddy
2024-08-15 16:23:21 +02:00
parent e0765f1c5b
commit b1d5d07cab
18 changed files with 150 additions and 194 deletions

View File

@@ -60,7 +60,7 @@
"rollup-plugin-visualizer": "^5.12.0", "rollup-plugin-visualizer": "^5.12.0",
"terser": "^5.31.6", "terser": "^5.31.6",
"typescript-eslint": "8.1.0", "typescript-eslint": "8.1.0",
"vite": "^5.4.0", "vite": "^5.4.1",
"vite-plugin-imagemin": "^0.6.1", "vite-plugin-imagemin": "^0.6.1",
"vite-tsconfig-paths": "^5.0.1" "vite-tsconfig-paths": "^5.0.1"
}, },

View File

@@ -10,10 +10,10 @@ import Scheduler from 'app/main/Scheduler';
import Sensors from 'app/main/Sensors'; import Sensors from 'app/main/Sensors';
import APSettings from 'app/settings/APSettings'; import APSettings from 'app/settings/APSettings';
import ApplicationSettings from 'app/settings/ApplicationSettings'; import ApplicationSettings from 'app/settings/ApplicationSettings';
import DownloadUpload from 'app/settings/DownloadUpload';
import MqttSettings from 'app/settings/MqttSettings'; import MqttSettings from 'app/settings/MqttSettings';
import NTPSettings from 'app/settings/NTPSettings'; import NTPSettings from 'app/settings/NTPSettings';
import Settings from 'app/settings/Settings'; import Settings from 'app/settings/Settings';
import UploadDownload from 'app/settings/UploadDownload';
import Network from 'app/settings/network/Network'; import Network from 'app/settings/network/Network';
import Security from 'app/settings/security/Security'; import Security from 'app/settings/security/Security';
import APStatus from 'app/status/APStatus'; import APStatus from 'app/status/APStatus';
@@ -54,7 +54,7 @@ const AuthenticatedRouting = () => {
<Route path="/settings/ntp" element={<NTPSettings />} /> <Route path="/settings/ntp" element={<NTPSettings />} />
<Route path="/settings/ap" element={<APSettings />} /> <Route path="/settings/ap" element={<APSettings />} />
<Route path="/settings/modules" element={<Modules />} /> <Route path="/settings/modules" element={<Modules />} />
<Route path="/settings/upload" element={<UploadDownload />} /> <Route path="/settings/upload" element={<DownloadUpload />} />
<Route path="/settings/network/*" element={<Network />} /> <Route path="/settings/network/*" element={<Network />} />
<Route path="/settings/security/*" element={<Security />} /> <Route path="/settings/security/*" element={<Security />} />

View File

@@ -23,7 +23,7 @@ import {
} from 'components'; } from 'components';
import { useI18nContext } from 'i18n/i18n-react'; import { useI18nContext } from 'i18n/i18n-react';
const UploadDownload = () => { const DownloadUpload = () => {
const { LL } = useI18nContext(); const { LL } = useI18nContext();
const { send: sendSettings } = useRequest(getSettings(), { const { send: sendSettings } = useRequest(getSettings(), {
@@ -66,8 +66,13 @@ const UploadDownload = () => {
} = useRequest(SystemApi.readHardwareStatus); } = useRequest(SystemApi.readHardwareStatus);
// called immediately to get the latest version, on page load // called immediately to get the latest version, on page load
const { data: latestVersion } = useRequest(getStableVersion); // set immediate to false to avoid calling the API on page load and GH blocking while testing!
const { data: latestDevVersion } = useRequest(getDevVersion); const { data: latestVersion } = useRequest(getStableVersion, {
immediate: true
});
const { data: latestDevVersion } = useRequest(getDevVersion, {
immediate: true
});
const STABLE_URL = 'https://github.com/emsesp/EMS-ESP32/releases/download/'; const STABLE_URL = 'https://github.com/emsesp/EMS-ESP32/releases/download/';
const STABLE_RELNOTES_URL = const STABLE_RELNOTES_URL =
@@ -138,7 +143,7 @@ const UploadDownload = () => {
}); });
}; };
useLayoutTitle(LL.UPLOAD_DOWNLOAD()); useLayoutTitle(LL.DOWNLOAD_UPLOAD());
const content = () => { const content = () => {
if (!data) { if (!data) {
@@ -148,58 +153,6 @@ const UploadDownload = () => {
return ( return (
<> <>
<Typography sx={{ pb: 2 }} variant="h6" color="primary"> <Typography sx={{ pb: 2 }} variant="h6" color="primary">
{LL.EMS_ESP_VER()}
</Typography>
<Box p={2} border="2px solid grey" borderRadius={2}>
{LL.VERSION_ON() + ' '}
<b>{data.emsesp_version}</b>&nbsp;({getPlatform()})
<Divider />
{latestVersion && (
<Box mt={2}>
{LL.THE_LATEST()}&nbsp;{LL.OFFICIAL()}&nbsp;{LL.RELEASE_IS()}
&nbsp;<b>{latestVersion}</b>
&nbsp;(
<Link target="_blank" href={STABLE_RELNOTES_URL} color="primary">
{LL.RELEASE_NOTES()}
</Link>
)&nbsp;(
<Link
target="_blank"
href={
STABLE_URL + 'v' + latestVersion + '/' + getBinURL(latestVersion)
}
color="primary"
>
{LL.DOWNLOAD(1)}
</Link>
)
</Box>
)}
{latestDevVersion && (
<Box mt={2}>
{LL.THE_LATEST()}&nbsp;{LL.DEVELOPMENT()}&nbsp;{LL.RELEASE_IS()}
&nbsp;
<b>{latestDevVersion}</b>
&nbsp;(
<Link target="_blank" href={DEV_RELNOTES_URL} color="primary">
{LL.RELEASE_NOTES()}
</Link>
)&nbsp;(
<Link
target="_blank"
href={DEV_URL + getBinURL(latestDevVersion)}
color="primary"
>
{LL.DOWNLOAD(1)}
</Link>
)
</Box>
)}
</Box>
<SingleUpload />
<Typography sx={{ pt: 4, pb: 2 }} variant="h6" color="primary">
{LL.DOWNLOAD(0)} {LL.DOWNLOAD(0)}
</Typography> </Typography>
<Box color="warning.main"> <Box color="warning.main">
@@ -215,6 +168,7 @@ const UploadDownload = () => {
> >
{LL.SUPPORT_INFORMATION(0)} {LL.SUPPORT_INFORMATION(0)}
</Button> </Button>
{/* TODO translate All Values */}
<Button <Button
sx={{ ml: 2 }} sx={{ ml: 2 }}
startIcon={<DownloadIcon />} startIcon={<DownloadIcon />}
@@ -278,6 +232,60 @@ const UploadDownload = () => {
{LL.SCHEDULE(0)} {LL.SCHEDULE(0)}
</Button> </Button>
</Box> </Box>
<Box color="warning.main">
<Typography mt={2} variant="body2">
{LL.EMS_ESP_VER()}
</Typography>
</Box>
<Box p={2} mt={2} border="1px solid grey" borderRadius={2}>
{LL.VERSION_ON() + ' '}
<b>{data.emsesp_version}</b>&nbsp;({getPlatform()})
<Divider />
{latestVersion && (
<Box mt={2}>
{LL.THE_LATEST()}&nbsp;{LL.OFFICIAL()}&nbsp;{LL.RELEASE_IS()}
&nbsp;<b>{latestVersion}</b>
&nbsp;(
<Link target="_blank" href={STABLE_RELNOTES_URL} color="primary">
{LL.RELEASE_NOTES()}
</Link>
)&nbsp;(
<Link
target="_blank"
href={
STABLE_URL + 'v' + latestVersion + '/' + getBinURL(latestVersion)
}
color="primary"
>
{LL.DOWNLOAD(1)}
</Link>
)
</Box>
)}
{latestDevVersion && (
<Box mt={2}>
{LL.THE_LATEST()}&nbsp;{LL.DEVELOPMENT()}&nbsp;{LL.RELEASE_IS()}
&nbsp;
<b>{latestDevVersion}</b>
&nbsp;(
<Link target="_blank" href={DEV_RELNOTES_URL} color="primary">
{LL.RELEASE_NOTES()}
</Link>
)&nbsp;(
<Link
target="_blank"
href={DEV_URL + getBinURL(latestDevVersion)}
color="primary"
>
{LL.DOWNLOAD(1)}
</Link>
)
</Box>
)}
</Box>
<SingleUpload />
</> </>
); );
}; };
@@ -285,4 +293,4 @@ const UploadDownload = () => {
return <SectionContent>{content()}</SectionContent>; return <SectionContent>{content()}</SectionContent>;
}; };
export default UploadDownload; export default DownloadUpload;

View File

@@ -136,8 +136,8 @@ const Settings = () => {
<ListMenuItem <ListMenuItem
icon={ImportExportIcon} icon={ImportExportIcon}
bgcolor="#5d89f7" bgcolor="#5d89f7"
label={LL.UPLOAD_DOWNLOAD()} label={LL.DOWNLOAD_UPLOAD()}
text={LL.UPLOAD_DOWNLOAD_1()} text={LL.DOWNLOAD_UPLOAD_1()}
to="upload" to="upload"
/> />
</List> </List>

View File

@@ -1,15 +1,17 @@
// Code inspired by https://medium.com/@dprincecoder/creating-a-drag-and-drop-file-upload-component-in-react-a-step-by-step-guide-4d93b6cc21e0
// (c) Prince Azubuike
import { type ChangeEvent, useRef, useState } from 'react'; import { type ChangeEvent, useRef, useState } from 'react';
import { AiOutlineCloudUpload } from 'react-icons/ai';
import { MdClear } from 'react-icons/md';
import CancelIcon from '@mui/icons-material/Cancel';
import CloudUploadIcon from '@mui/icons-material/CloudUpload';
import UploadIcon from '@mui/icons-material/Upload'; import UploadIcon from '@mui/icons-material/Upload';
import { Button } from '@mui/material'; import { Box, Button } from '@mui/material';
import { useI18nContext } from 'i18n/i18n-react'; import { useI18nContext } from 'i18n/i18n-react';
import './drag-drop.css'; import './drag-drop.css';
const DragNdrop = ({ onFileSelected, width, height }) => { const DragNdrop = ({ onFileSelected }) => {
const [file, setFile] = useState<File>(); const [file, setFile] = useState<File>();
const inputRef = useRef<HTMLInputElement | null>(null); const inputRef = useRef<HTMLInputElement | null>(null);
const { LL } = useI18nContext(); const { LL } = useI18nContext();
@@ -19,6 +21,7 @@ const DragNdrop = ({ onFileSelected, width, height }) => {
return; return;
} }
setFile(e.target.files[0]); setFile(e.target.files[0]);
e.target.value = ''; // this is to allow the same file to be selected again
}; };
const handleDrop = (event) => { const handleDrop = (event) => {
@@ -44,60 +47,55 @@ const DragNdrop = ({ onFileSelected, width, height }) => {
}; };
return ( return (
<section className="drag-drop" style={{ width: width, height: height }}> <div
<div className={`document-uploader ${file ? 'upload-box active' : 'upload-box'}`}
className={`document-uploader ${file ? 'upload-box active' : 'upload-box'}`} onDrop={handleDrop}
onDrop={handleDrop} onDragOver={(event) => event.preventDefault()}
onDragOver={(event) => event.preventDefault()} onClick={handleBrowseClick}
onClick={handleBrowseClick} >
> <div className="upload-info">
<CloudUploadIcon sx={{ marginRight: 4 }} color="primary" fontSize="large" />
{/* TODO translate */}
<p>drag and drop a file here or click to select one</p>
</div>
<input
type="file"
hidden
onChange={handleFileChange}
ref={inputRef}
accept=".json,.txt,.csv,.bin"
multiple={false}
style={{ display: 'none' }}
/>
{file && (
<> <>
<div className="upload-info"> <div className="file-info">
<AiOutlineCloudUpload /> <p>{file.name}</p>
<div>
<p>Drag and drop a file here or click to select one</p>
</div>
</div> </div>
<Box>
<input
type="file"
hidden
id="browse"
onChange={handleFileChange}
ref={inputRef}
accept=".json,.txt,.csv,.bin"
multiple={false}
/>
</>
{file && (
<>
<div className="file-list">
<div className="file-item">
<div className="file-info">
<p>{file.name}</p>
</div>
<div className="file-actions">
<MdClear
style={{ width: 18, verticalAlign: 'middle' }}
onClick={(e) => handleRemoveFile(e)}
/>
</div>
</div>
</div>
<Button <Button
startIcon={<CancelIcon />}
variant="outlined"
color="error"
onClick={(e) => handleRemoveFile(e)}
>
{LL.CANCEL()}
</Button>
<Button
sx={{ ml: 2 }}
startIcon={<UploadIcon />} startIcon={<UploadIcon />}
variant="outlined" variant="outlined"
color="secondary" color="primary"
onClick={handleUploadClick} onClick={handleUploadClick}
> >
{LL.UPLOAD()} {LL.UPLOAD()}
</Button> </Button>
</> </Box>
)} </>
</div> )}
</section> </div>
); );
}; };

View File

@@ -103,7 +103,7 @@ const SingleUpload = () => {
)} )}
</> </>
) : ( ) : (
<DragNdrop onFileSelected={setFile} width="340px" height="140px" /> <DragNdrop onFileSelected={setFile} />
)} )}
{md5 && ( {md5 && (

View File

@@ -1,12 +1,6 @@
.drag-drop {
/* background: #fff; */
border: 1px solid var(--border-color);
border-radius: 8px;
}
.document-uploader { .document-uploader {
border: 2px dashed #4282fe; border: 2px dashed #4282fe;
/* background-color: #f4fbff; */ background-color: #2e3339;
padding: 10px; padding: 10px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -23,61 +17,17 @@
.upload-info { .upload-info {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 1rem;
svg {
font-size: 36px;
margin-right: 1rem;
}
div {
p {
margin: 0;
font-size: 14px;
}
}
} }
.file-list { .file-info {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 0.5rem;
width: 100%; width: 100%;
}
.file-item {
display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
padding: 0.5rem; p {
border: 1px solid var(--border-color); font-size: 14px;
border-radius: 8px; color: #6dc24b;
.file-info {
display: flex;
flex-direction: column;
gap: 0.25rem;
flex: 1;
p {
margin: 0;
font-size: 14px;
color: #6dc24b;
}
} }
.file-actions {
cursor: pointer;
&:hover {
svg {
color: #d44;
}
}
}
}
input[type='file'] {
display: none;
} }
} }

View File

@@ -169,7 +169,7 @@ const de: Translation = {
SYSTEM: 'System', SYSTEM: 'System',
LOG_OF: '{0}protokoll', LOG_OF: '{0}protokoll',
STATUS_OF: '{0} Status', STATUS_OF: '{0} Status',
UPLOAD_DOWNLOAD: 'Hoch-/Herunterladen', DOWNLOAD_UPLOAD: 'Herunterladen/Hochladen',
VERSION_ON: 'Sie verwenden derzeit', VERSION_ON: 'Sie verwenden derzeit',
CLOSE: 'Schließen', CLOSE: 'Schließen',
USE: 'Verwenden Sie', USE: 'Verwenden Sie',
@@ -324,7 +324,7 @@ const de: Translation = {
SYSTEM_MEMORY: 'Systemspeicher', SYSTEM_MEMORY: 'Systemspeicher',
APPLICATION_SETTINGS_1: 'Ändern Sie die EMS-ESP-Anwendungseinstellungen', APPLICATION_SETTINGS_1: 'Ändern Sie die EMS-ESP-Anwendungseinstellungen',
SECURITY_1: 'Benutzer hinzufügen oder entfernen', SECURITY_1: 'Benutzer hinzufügen oder entfernen',
UPLOAD_DOWNLOAD_1: 'Einstellungen und Firmware hochladen/herunterladen', DOWNLOAD_UPLOAD_1: 'Einstellungen und Firmware herunterladen/hochladen',
MODULES: 'Module', MODULES: 'Module',
MODULES_1: 'Externe Module aktivieren oder deaktivieren', MODULES_1: 'Externe Module aktivieren oder deaktivieren',
MODULES_UPDATED: 'Module aktualisiert', MODULES_UPDATED: 'Module aktualisiert',

View File

@@ -169,7 +169,7 @@ const en: Translation = {
SYSTEM: 'System', SYSTEM: 'System',
LOG_OF: '{0} Log', LOG_OF: '{0} Log',
STATUS_OF: '{0} Status', STATUS_OF: '{0} Status',
UPLOAD_DOWNLOAD: 'Upload/Download', DOWNLOAD_UPLOAD: 'Download/Upload',
VERSION_ON: 'You are currently on version', VERSION_ON: 'You are currently on version',
CLOSE: 'Close', CLOSE: 'Close',
USE: 'Use', USE: 'Use',
@@ -324,7 +324,7 @@ const en: Translation = {
SYSTEM_MEMORY: 'System Memory', SYSTEM_MEMORY: 'System Memory',
APPLICATION_SETTINGS_1: 'Modify EMS-ESP Application Settings', APPLICATION_SETTINGS_1: 'Modify EMS-ESP Application Settings',
SECURITY_1: 'Add or remove users', SECURITY_1: 'Add or remove users',
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', DOWNLOAD_UPLOAD_1: 'Download and Upload Settings and Firmware',
MODULES: 'Modules', MODULES: 'Modules',
MODULES_1: 'Activate or deactivate external modules', MODULES_1: 'Activate or deactivate external modules',
MODULES_UPDATED: 'Modules updated', MODULES_UPDATED: 'Modules updated',

View File

@@ -169,7 +169,7 @@ const fr: Translation = {
SYSTEM: 'Système', SYSTEM: 'Système',
LOG_OF: '{0} Log', LOG_OF: '{0} Log',
STATUS_OF: 'Statut {0}', STATUS_OF: 'Statut {0}',
UPLOAD_DOWNLOAD: 'Upload/Download', DOWNLOAD_UPLOAD: 'Download/Upload', // TODO translate
VERSION_ON: 'You are currently on', // TODO translate VERSION_ON: 'You are currently on', // TODO translate
CLOSE: 'Fermer', CLOSE: 'Fermer',
USE: 'Utiliser', USE: 'Utiliser',
@@ -324,7 +324,7 @@ const fr: Translation = {
SYSTEM_MEMORY: 'System Memory', // TODO translate SYSTEM_MEMORY: 'System Memory', // TODO translate
APPLICATION_SETTINGS_1: 'Modify EMS-ESP Application Settings', // TODO translate APPLICATION_SETTINGS_1: 'Modify EMS-ESP Application Settings', // TODO translate
SECURITY_1: 'Add or remove users', // TODO translate SECURITY_1: 'Add or remove users', // TODO translate
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate DOWNLOAD_UPLOAD_1: 'Download and Upload Settings and Firmware', // TODO translate
MODULES: 'Module', // TODO translate MODULES: 'Module', // TODO translate
MODULES_1: 'Activer ou désactiver les modules externes', // TODO translate MODULES_1: 'Activer ou désactiver les modules externes', // TODO translate
MODULES_UPDATED: 'Modules updated', // TODO translate MODULES_UPDATED: 'Modules updated', // TODO translate

View File

@@ -169,7 +169,7 @@ const it: Translation = {
SYSTEM: 'Sistema', SYSTEM: 'Sistema',
LOG_OF: 'Registro {0}', LOG_OF: 'Registro {0}',
STATUS_OF: 'Stato {0}', STATUS_OF: 'Stato {0}',
UPLOAD_DOWNLOAD: 'Caricamento/Scaricamento', DOWNLOAD_UPLOAD: 'Scaricamento/Caricamento',
VERSION_ON: 'Attualmente stai eseguendo la versione', VERSION_ON: 'Attualmente stai eseguendo la versione',
CLOSE: 'Chiudere', CLOSE: 'Chiudere',
USE: 'Usa', USE: 'Usa',
@@ -324,7 +324,7 @@ const it: Translation = {
SYSTEM_MEMORY: 'System Memory', // TODO translate SYSTEM_MEMORY: 'System Memory', // TODO translate
APPLICATION_SETTINGS_1: 'Modify EMS-ESP Application Settings', // TODO translate APPLICATION_SETTINGS_1: 'Modify EMS-ESP Application Settings', // TODO translate
SECURITY_1: 'Add or remove users', // TODO translate SECURITY_1: 'Add or remove users', // TODO translate
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate DOWNLOAD_UPLOAD_1: 'Download and Upload Settings and Firmware', // TODO translate
MODULES: 'Module', // TODO translate MODULES: 'Module', // TODO translate
MODULES_1: 'Attiva o disattiva i moduli esterni', // TODO translate MODULES_1: 'Attiva o disattiva i moduli esterni', // TODO translate
MODULES_UPDATED: 'Modules updated', // TODO translate MODULES_UPDATED: 'Modules updated', // TODO translate

View File

@@ -169,7 +169,7 @@ const nl: Translation = {
SYSTEM: 'Systeem', SYSTEM: 'Systeem',
LOG_OF: '{0} Log', LOG_OF: '{0} Log',
STATUS_OF: '{0} Status', STATUS_OF: '{0} Status',
UPLOAD_DOWNLOAD: 'Upload/Download', DOWNLOAD_UPLOAD: 'Download/Upload',
VERSION_ON: 'U bevindt zich momenteel op versie', VERSION_ON: 'U bevindt zich momenteel op versie',
CLOSE: 'Sluiten', CLOSE: 'Sluiten',
USE: 'Gebruik', USE: 'Gebruik',
@@ -324,7 +324,7 @@ const nl: Translation = {
SYSTEM_MEMORY: 'System Geheugen', SYSTEM_MEMORY: 'System Geheugen',
APPLICATION_SETTINGS_1: 'Applicatie-instellingen wijzigen', APPLICATION_SETTINGS_1: 'Applicatie-instellingen wijzigen',
SECURITY_1: 'Gebruikers toevoegen of verwijderen', SECURITY_1: 'Gebruikers toevoegen of verwijderen',
UPLOAD_DOWNLOAD_1: 'Upload-/downloadinstellingen en firmware', DOWNLOAD_UPLOAD_1: 'Download en upload instellingen en firmware',
MODULES: 'Module', MODULES: 'Module',
MODULES_1: 'Externe modules activeren of deactiveren', // TODO translate MODULES_1: 'Externe modules activeren of deactiveren', // TODO translate
MODULES_UPDATED: 'Modules geüpdatet', MODULES_UPDATED: 'Modules geüpdatet',

View File

@@ -169,7 +169,7 @@ const no: Translation = {
SYSTEM: 'System', SYSTEM: 'System',
LOG_OF: '{0} Logg', LOG_OF: '{0} Logg',
STATUS_OF: '{0} Status', STATUS_OF: '{0} Status',
UPLOAD_DOWNLOAD: 'Opp/Nedlasting', DOWNLOAD_UPLOAD: 'Nedlasting/Opp',
VERSION_ON: 'You are currently on', // TODO translate VERSION_ON: 'You are currently on', // TODO translate
CLOSE: 'Steng', CLOSE: 'Steng',
USE: 'Bruk', USE: 'Bruk',
@@ -324,7 +324,7 @@ const no: Translation = {
SYSTEM_MEMORY: 'System Memory', // TODO translate SYSTEM_MEMORY: 'System Memory', // TODO translate
APPLICATION_SETTINGS_1: 'Modify EMS-ESP Application Settings', // TODO translate APPLICATION_SETTINGS_1: 'Modify EMS-ESP Application Settings', // TODO translate
SECURITY_1: 'Add or remove users', // TODO translate SECURITY_1: 'Add or remove users', // TODO translate
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate DOWNLOAD_UPLOAD_1: 'Download and Upload Settings and Firmware', // TODO translate
MODULES: 'Module', // TODO translate MODULES: 'Module', // TODO translate
MODULES_1: 'Aktiver eller deaktiver eksterne moduler', // TODO translate MODULES_1: 'Aktiver eller deaktiver eksterne moduler', // TODO translate
MODULES_UPDATED: 'Modules updated', // TODO translate MODULES_UPDATED: 'Modules updated', // TODO translate

View File

@@ -169,7 +169,7 @@ const pl: BaseTranslation = {
SYSTEM: '{{S|s||s}}yste{{m|mu||mowy}}', SYSTEM: '{{S|s||s}}yste{{m|mu||mowy}}',
LOG_OF: 'Log {0}', LOG_OF: 'Log {0}',
STATUS_OF: 'Status {0}', STATUS_OF: 'Status {0}',
UPLOAD_DOWNLOAD: 'Przesyłanie plików', DOWNLOAD_UPLOAD: 'Plików przesyłanie',
VERSION_ON: 'Aktualnie używasz', VERSION_ON: 'Aktualnie używasz',
CLOSE: 'Zamknij', CLOSE: 'Zamknij',
USE: 'Aby zaktualizować firmware skorzystaj z funkcji', USE: 'Aby zaktualizować firmware skorzystaj z funkcji',
@@ -324,7 +324,7 @@ const pl: BaseTranslation = {
SYSTEM_MEMORY: 'Pamięć systemowa', SYSTEM_MEMORY: 'Pamięć systemowa',
APPLICATION_SETTINGS_1: 'Modyfikacja ustawień aplikacji EMS-ESP', APPLICATION_SETTINGS_1: 'Modyfikacja ustawień aplikacji EMS-ESP',
SECURITY_1: 'Dodawanie i usuwanie użytkowników', SECURITY_1: 'Dodawanie i usuwanie użytkowników',
UPLOAD_DOWNLOAD_1: 'Wysyłanie/pobieranie ustawień i firmware', DOWNLOAD_UPLOAD_1: 'Pobieranie/wysyłanie ustawień i firmware',
MODULES: 'Module', // TODO translate MODULES: 'Module', // TODO translate
MODULES_1: 'Aktywuj lub dezaktywuj moduły zewnętrzne', // TODO translate MODULES_1: 'Aktywuj lub dezaktywuj moduły zewnętrzne', // TODO translate
MODULES_UPDATED: 'Modules updated', // TODO translate MODULES_UPDATED: 'Modules updated', // TODO translate

View File

@@ -169,7 +169,7 @@ const sk: Translation = {
SYSTEM: 'Systém', SYSTEM: 'Systém',
LOG_OF: '{0} Log', LOG_OF: '{0} Log',
STATUS_OF: '{0} Stav', STATUS_OF: '{0} Stav',
UPLOAD_DOWNLOAD: 'Nahrať/Stiahnuť', DOWNLOAD_UPLOAD: 'Stiahnuť/Nahrať',
VERSION_ON: 'Momentálne nainštalovaná verzia: ', VERSION_ON: 'Momentálne nainštalovaná verzia: ',
CLOSE: 'Zatvoriť', CLOSE: 'Zatvoriť',
USE: 'Použiť', USE: 'Použiť',
@@ -324,7 +324,7 @@ const sk: Translation = {
SYSTEM_MEMORY: 'System Memory', // TODO translate SYSTEM_MEMORY: 'System Memory', // TODO translate
APPLICATION_SETTINGS_1: 'Modify EMS-ESP Application Settings', // TODO translate APPLICATION_SETTINGS_1: 'Modify EMS-ESP Application Settings', // TODO translate
SECURITY_1: 'Add or remove users', // TODO translate SECURITY_1: 'Add or remove users', // TODO translate
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate DOWNLOAD_UPLOAD_1: 'Download and Upload Settings and Firmware', // TODO translate
MODULES: 'Module', // TODO translate MODULES: 'Module', // TODO translate
MODULES_1: 'Aktivujte alebo deaktivujte externé moduly', // TODO translate MODULES_1: 'Aktivujte alebo deaktivujte externé moduly', // TODO translate
MODULES_UPDATED: 'Modules updated', // TODO translate MODULES_UPDATED: 'Modules updated', // TODO translate

View File

@@ -169,7 +169,7 @@ const sv: Translation = {
SYSTEM: 'System', SYSTEM: 'System',
LOG_OF: '{0} Logg', LOG_OF: '{0} Logg',
STATUS_OF: '{0} Status', STATUS_OF: '{0} Status',
UPLOAD_DOWNLOAD: 'Upp/Nedladdning', DOWNLOAD_UPLOAD: 'Nedladdning/Upp',
VERSION_ON: 'You are currently on', // TODO translate VERSION_ON: 'You are currently on', // TODO translate
CLOSE: 'Stäng', CLOSE: 'Stäng',
USE: 'Använd', USE: 'Använd',
@@ -324,7 +324,7 @@ const sv: Translation = {
SYSTEM_MEMORY: 'System Memory', // TODO translate SYSTEM_MEMORY: 'System Memory', // TODO translate
APPLICATION_SETTINGS_1: 'Modify EMS-ESP Application Settings', // TODO translate APPLICATION_SETTINGS_1: 'Modify EMS-ESP Application Settings', // TODO translate
SECURITY_1: 'Add or remove users', // TODO translate SECURITY_1: 'Add or remove users', // TODO translate
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate DOWNLOAD_UPLOAD_1: 'Download and Upload Settings and Firmware', // TODO translate
MODULES: 'Module', // TODO translate MODULES: 'Module', // TODO translate
MODULES_1: 'Aktivera eller avaktivera externa moduler', // TODO translate MODULES_1: 'Aktivera eller avaktivera externa moduler', // TODO translate
MODULES_UPDATED: 'Modules updated', // TODO translate MODULES_UPDATED: 'Modules updated', // TODO translate

View File

@@ -169,7 +169,7 @@ const tr: Translation = {
SYSTEM: 'Sistem', SYSTEM: 'Sistem',
LOG_OF: '{0} Kaydı', LOG_OF: '{0} Kaydı',
STATUS_OF: '{0} Durumu', STATUS_OF: '{0} Durumu',
UPLOAD_DOWNLOAD: 'Yükleme/İndirme', DOWNLOAD_UPLOAD: 'İndirme/Yükleme',
VERSION_ON: 'You are currently on', // TODO translate VERSION_ON: 'You are currently on', // TODO translate
CLOSE: 'Kapat', CLOSE: 'Kapat',
USE: 'KUllan', USE: 'KUllan',
@@ -324,7 +324,7 @@ const tr: Translation = {
SYSTEM_MEMORY: 'System Memory', // TODO translate SYSTEM_MEMORY: 'System Memory', // TODO translate
APPLICATION_SETTINGS_1: 'Modify EMS-ESP Application Settings', // TODO translate APPLICATION_SETTINGS_1: 'Modify EMS-ESP Application Settings', // TODO translate
SECURITY_1: 'Add or remove users', // TODO translate SECURITY_1: 'Add or remove users', // TODO translate
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate DOWNLOAD_UPLOAD_1: 'Download and Upload Settings and Firmware', // TODO translate
MODULES: 'Module', // TODO translate MODULES: 'Module', // TODO translate
MODULES_1: 'Harici modülleri etkinleştirin veya devre dışı bırakın', // TODO translate MODULES_1: 'Harici modülleri etkinleştirin veya devre dışı bırakın', // TODO translate
MODULES_UPDATED: 'Modules updated', // TODO translate MODULES_UPDATED: 'Modules updated', // TODO translate

View File

@@ -1701,7 +1701,7 @@ __metadata:
typesafe-i18n: "npm:^5.26.2" typesafe-i18n: "npm:^5.26.2"
typescript: "npm:^5.5.4" typescript: "npm:^5.5.4"
typescript-eslint: "npm:8.1.0" typescript-eslint: "npm:8.1.0"
vite: "npm:^5.4.0" vite: "npm:^5.4.1"
vite-plugin-imagemin: "npm:^0.6.1" vite-plugin-imagemin: "npm:^0.6.1"
vite-tsconfig-paths: "npm:^5.0.1" vite-tsconfig-paths: "npm:^5.0.1"
languageName: unknown languageName: unknown
@@ -5620,7 +5620,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"postcss@npm:^8.4.40": "postcss@npm:^8.4.41":
version: 8.4.41 version: 8.4.41
resolution: "postcss@npm:8.4.41" resolution: "postcss@npm:8.4.41"
dependencies: dependencies:
@@ -7037,13 +7037,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"vite@npm:^5.4.0": "vite@npm:^5.4.1":
version: 5.4.0 version: 5.4.1
resolution: "vite@npm:5.4.0" resolution: "vite@npm:5.4.1"
dependencies: dependencies:
esbuild: "npm:^0.21.3" esbuild: "npm:^0.21.3"
fsevents: "npm:~2.3.3" fsevents: "npm:~2.3.3"
postcss: "npm:^8.4.40" postcss: "npm:^8.4.41"
rollup: "npm:^4.13.0" rollup: "npm:^4.13.0"
peerDependencies: peerDependencies:
"@types/node": ^18.0.0 || >=20.0.0 "@types/node": ^18.0.0 || >=20.0.0
@@ -7076,7 +7076,7 @@ __metadata:
optional: true optional: true
bin: bin:
vite: bin/vite.js vite: bin/vite.js
checksum: 10c0/122de7795e1c3c08cd0acc7d77296f908398266b424492be7310400107f37a3cf4c9506f2b4b16619e57299ca2859b8ca187aac5e25f8e66d84f9204a1d72d18 checksum: 10c0/b9ea824f1a946aa494f756e6d9dd88869baa62ae5ba3071b32b6a20958fd622cb624c860bdd7daee201c83ca029feaf8bbe2d2a6e172a5d49308772f8899d86d
languageName: node languageName: node
linkType: hard linkType: hard