;
+}
+
+/**
+ * JSON structure, contains only icon data
+ */
+export interface IconifyJSONIconsData extends IconifyDimenisons {
+ // Prefix for icons in JSON file, required.
+ prefix: string;
+
+ // API provider, optional.
+ provider?: string;
+
+ // List of icons, required.
+ icons: IconifyIcons;
+
+ // Optional aliases.
+ aliases?: IconifyAliases;
+
+ // IconifyDimenisons properties that are used as default viewbox for icons when icon is missing value.
+ // If viewbox exists in both icon and root, use value from icon.
+ // This is used to reduce duplication.
+}
+
+/**
+ * JSON structure.
+ *
+ * All optional values can exist in root of JSON file, used as defaults.
+ */
+export interface IconifyJSON extends IconifyJSONIconsData, IconifyMetaData {
+ // Last modification time of icons. Unix time stamp in seconds.
+ // Time is calculated only for icon data, ignoring metadata.
+ // Used to invalidate icons cache in components.
+ lastModified?: number;
+
+ // Optional list of missing icons. Returned by Iconify API when querying for icons that do not exist.
+ not_found?: string[];
+}
+
+/**
+ * Structure of exports '@iconify-json/*' packages.
+ *
+ * These are small packages, one per icon set, that split JSON structure into multiple files to reduce
+ * amount of data imported from package.
+ */
+export interface IconifyJSONPackageExports {
+ info: IconifyInfo;
+ icons: IconifyJSON;
+ metadata: IconifyMetaData;
+ chars: IconifyChars;
+}
diff --git a/node_modules/@iconify/types/types.js b/node_modules/@iconify/types/types.js
new file mode 100644
index 00000000..059949c0
--- /dev/null
+++ b/node_modules/@iconify/types/types.js
@@ -0,0 +1,3 @@
+/**
+ * Empty file. This repository contains only TypeScript types
+ */
diff --git a/package.json b/package.json
index e34f042e..bf358775 100644
--- a/package.json
+++ b/package.json
@@ -9,6 +9,7 @@
"start": "NODE_ENV=production bun src/index.tsx"
},
"dependencies": {
+ "@iconify/react": "^6.0.0",
"@mui/icons-material": "^7.3.1",
"i18next": "^25.3.2",
"i18next-browser-languagedetector": "^8.2.0",
diff --git a/src/GarageApp/App.tsx b/src/GarageApp/App.tsx
index 633bc233..f6464ef9 100644
--- a/src/GarageApp/App.tsx
+++ b/src/GarageApp/App.tsx
@@ -2,6 +2,8 @@ import { APITester } from "../APITester";
import "./index.css";
import { useTranslation, withTranslation, Trans } from 'react-i18next';
+import AppBar from './modules/MenuBar';
+
import logo from "./logo.svg";
import reactLogo from "./react.svg";
@@ -9,28 +11,18 @@ import Button from '@mui/material/Button';
import Box from '@mui/material/Box';
import Grid from '@mui/material/Grid';
-import VehicleCard from "./modules/VehicleCards";
import YourVehicleList from "./modules/YourVehicles";
+import MenuLanguages from "./modules/MenuLanguages";
+import StatisticsView from "./modules/StatisticsView"
export function App() {
const { t, i18n } = useTranslation();
return (
-
-

-

-
-
-
Bun + React | GarageApp
-
- Edit src/App.tsx and save to test HMR
-
-
-
{t ('statistics')}
-
+
+
+
-
-
test
);
}
diff --git a/src/GarageApp/i18n.js b/src/GarageApp/i18n.js
index dabb551c..d0ca8cbd 100644
--- a/src/GarageApp/i18n.js
+++ b/src/GarageApp/i18n.js
@@ -15,7 +15,7 @@ i18n
backend: {
loadPath: '/GarageApp/locales/{{lng}}/{{ns}}.json'
},
- lng: 'da',
+ lng: 'en',
ns: ['translation']
});
diff --git a/src/GarageApp/index.css b/src/GarageApp/index.css
index d2ae2a0e..0474a2e1 100644
--- a/src/GarageApp/index.css
+++ b/src/GarageApp/index.css
@@ -8,7 +8,7 @@
body {
margin: 0;
display: grid;
- place-items: center;
+ place-items: stretch;
min-width: 320px;
min-height: 100vh;
position: relative;
@@ -34,9 +34,7 @@ body::before {
}
}
.app {
- max-width: 1280px;
margin: 0 auto;
- padding: 2rem;
text-align: center;
position: relative;
z-index: 1;
@@ -48,8 +46,20 @@ body::before {
gap: 2rem;
margin-bottom: 2rem;
}
+.menu-logo-container {
+ display: flex;
+ justify-content: left;
+ align-items: center;
+ gap: 0.4em;
+}
+.menu-logo {
+ height: 2em;
+ padding: 1em
+ will-change: filter;
+ transition: filter 0.3s;
+}
.logo {
- height: 6em;
+ height: 2em;
padding: 1.5em;
will-change: filter;
transition: filter 0.3s;
diff --git a/src/GarageApp/locales/de/translation.json b/src/GarageApp/locales/de/translation.json
new file mode 100644
index 00000000..9d9dd5b4
--- /dev/null
+++ b/src/GarageApp/locales/de/translation.json
@@ -0,0 +1,217 @@
+{
+ "quickentry": "Keine Schnelleinträge | Schnelleintrag | Schnelleinträge",
+ "statistics": "Statistiken",
+ "thisweek": "Diese Woche",
+ "thismonth": "Dieser Monat",
+ "pastxdays": "Letzter Tag | Letzte {count} Tage",
+ "pastxmonths": "Letzter Monat | Letzte {count} Monate",
+ "thisyear": "Dieses Jahr",
+ "alltime": "Gesamt",
+ "noattachments": "Keine Anhänge",
+ "attachments": "Anhänge",
+ "choosefile": "Datei auswählen",
+ "addattachment": "Anhang hinzufügen",
+ "sharedwith": "Geteilt mit",
+ "share": "Teile",
+ "you": "du",
+ "addfillup": "Tankfüllung erfassen",
+ "createfillup": "Erfasse Tankfüllung",
+ "deletefillup": "Lösche diese Tankfüllung",
+ "addexpense": "Ausgabe erfassen",
+ "createexpense": "Erfasse Ausgabe",
+ "deleteexpense": "Lösche diese Ausgabe",
+ "nofillups": "Keine Tankfüllungen",
+ "transfervehicle": "Fahrzeug übertragen",
+ "settingssaved": "Einstellungen erfolgreich gespeichert",
+ "yoursettings": "Deine Einstellungen",
+ "settings": "Einstellungen",
+ "changepassword": "Passwort ändern",
+ "oldpassword": "Bisheriges Passwort",
+ "newpassword": "Neues Passwort",
+ "repeatnewpassword": "Neues Passwort wiederholen",
+ "passworddontmatch": "Passwörter stimmen nicht überein",
+ "save": "Speichern",
+ "supportthedeveloper": "Unterstütze den Entwickler",
+ "buyhimabeer": "Kauf ihm ein Bier!",
+ "moreinfo": "Mehr Info",
+ "currency": "Währung",
+ "distanceunit": "Entfernungseinheit",
+ "dateformat": "Datumsformat",
+ "createnow": "Jetzt erstellen",
+ "yourvehicles": "Deine Fahrzeuge",
+ "menu": {
+ "quickentries": "Schnellinträge",
+ "logout": "Abmelden",
+ "import": "Import",
+ "home": "Start",
+ "settings": "Einstellungen",
+ "admin": "Verwalten",
+ "sitesettings": "Globale Einstellungen",
+ "users": "Benutzer",
+ "login": "Anmelden"
+ },
+ "enterusername": "E-Mail eingeben",
+ "enterpassword": "Passwort eingeben",
+ "email": "E-Mail",
+ "password": "Passwort",
+ "login": "Anmelden",
+ "totalexpenses": "Gesamtausgaben",
+ "fillupcost": "Tank-Ausgaben",
+ "otherexpenses": "Andere Ausgaben",
+ "addvehicle": "Fahrzeug hinzufügen",
+ "editvehicle": "Fahrzeug bearbeiten",
+ "deletevehicle": "Fahrzeug löschen",
+ "sharevehicle": "Fahrzeug teilen",
+ "makeowner": "zum Besitzer machen",
+ "lastfillup": "Letztes Tanken",
+ "quickentrydesc": "Mach ein Foto deiner Rechnung oder der Zapfsäule um den Eintrag später zu ergänzen.",
+ "quickentrycreatedsuccessfully": "Schnelleintrag erfolgreich erstellt",
+ "uploadfile": "Datei hochladen",
+ "uploadphoto": "Foto hochladen",
+ "details": "Details",
+ "odometer": "Kilometerzähler",
+ "language": "Sprache",
+ "date": "Datum",
+ "pastfillups": "Tankfüllungen",
+ "fuelsubtype": "Kraftstofftyp",
+ "fueltype": "Kraftstoff",
+ "quantity": "Menge",
+ "gasstation": "Tankstelle",
+ "fuel": {
+ "petrol": "Benzin",
+ "diesel": "Diesel",
+ "cng": "CNG",
+ "lpg": "LPG",
+ "electric": "Strom",
+ "ethanol": "Ethanol"
+ },
+ "unit": {
+ "long": {
+ "litre": "Liter",
+ "gallon": "Gallone",
+ "kilowatthour": "Kilowattstunde",
+ "kilogram": "Kilogramm",
+ "usgallon": "US-Gallone",
+ "minutes": "Minuten",
+ "kilometers": "Kilometer",
+ "miles": "Meilen"
+ },
+ "short": {
+ "litre": "L",
+ "gallon": "Gal",
+ "kilowatthour": "KwH",
+ "kilogram": "Kg",
+ "usgallon": "US-Gal",
+ "minutes": "Min",
+ "kilometers": "Km",
+ "miles": "Mi"
+ }
+ },
+ "avgfillupqty": "Ø Tankmenge",
+ "avgfillupexpense": "Ø Tankwert",
+ "avgfuelcost": "Ø Spritpreis",
+ "per": "{0} pro {1}",
+ "price": "Preis",
+ "total": "Gesamt",
+ "fulltank": "Voller Tank",
+ "getafulltank": "Hast du vollgetankt?",
+ "by": "Von",
+ "expenses": "Ausgaben",
+ "expensetype": "Ausgaben Typ",
+ "noexpenses": "Keine Ausgaben",
+ "download": "Herunterladen",
+ "title": "Titel",
+ "name": "Name",
+ "delete": "Löschen",
+ "importdata": "Importiere Daten in Hammond",
+ "importdatadesc": "Wähle eine der folgenden Optionen, um Daten in Hammond zu importieren",
+ "import": "Importieren",
+ "importcsv": "Wenn du {name} nutzt, um deine Fahrzeugdaten zu verwalten, exportiere die CSV Datei aus {name} und klicke hier, um zu importieren.",
+ "choosecsv": "CSV auswählen",
+ "choosephoto": "Foto auswählen",
+ "importsuccessfull": "Daten erfolgreich importiert",
+ "importerror": "Beim Importieren der Datei ist ein Fehler aufgetreten. Details findest du in der Fehlermeldung",
+ "importfrom": "Importiere von {name}",
+ "stepstoimport": "Schritte, um Daten aus {name} zu importieren",
+ "choosecsvimport": "Wähle die {name} CSV aus und klicke den Button, um zu importieren.",
+ "dontimportagain": "Achte darauf, dass du die Datei nicht erneut importierst, da dies zu mehrfachen Einträgen führen würde.",
+ "checkpointsimportcsv": "Wenn du alle diese Punkte überprüft hast kannst du unten die CSV importieren.",
+ "importhintunits": "Vergewissere dich ebenfalls, dass die Kraftstoffeinheit und der Kraftstofftyp im Fahrzeug richtig eingestellt sind.",
+ "importhintcurrdist": "Stelle sicher, dass die Währung und die Entfernungseinheit in Hammond korrekt eingestellt sind. Der Import erkennt die Währung nicht automatisch aus der datei, sondern verwendet die für den Benutzer eingestellte Währung.",
+ "importhintnickname": "Vergewissere dich, dass der Fahrzeugname in Hammond genau mit dem Namen in der Fuelly-CSV-Datei übereinstimmt, sonst funktioniert der Import nicht.",
+ "importhintvehiclecreated": "Vergewissere dich, dass du die Fahrzeuge bereits in Hammond erstellt hast.",
+ "importhintcreatecsv": "Exportiere deine Daten aus {name} im CSV-Format. Die Schritte dazu findest du",
+ "here": "hier",
+ "unprocessedquickentries": "Du hast einen Schnelleintrag zum bearbeiten. | Du hast {0} Schnelleinträge zum bearbeiten.",
+ "show": "Anzeigen",
+ "loginerror": "Bei der Anmeldung ist ein Fehler aufgetreten. {msg}",
+ "showunprocessed": "Zeige unbearbeitete",
+ "unprocessed": "unbearbeitet",
+ "sitesettingdesc": "Ändere die globalen Einstellungen. Diese werden als Standard für neue Benutzer verwendet.",
+ "settingdesc": "Diese Einstellungen werden als Standard verwendet wenn du eine neue Ausgabe oder eine Tankfüllung erfasst.",
+ "areyousure": "Bist du dir sicher?",
+ "adduser": "Benutzer hinzufügen",
+ "usercreatedsuccessfully": "Benutzer erfolgreich gespeichert",
+ "role": "Rolle",
+ "created": "Erstellt",
+ "createnewuser": "Erstelle neuen Benutzer",
+ "cancel": "Abbrechen",
+ "novehicles": "Du hast noch kein Fahrzeug erstellt. Lege jetzt einen Eintrag für das zu verwaltende Fahrzeug an.",
+ "processed": "Bearbeitet",
+ "notfound": "Nicht gefunden",
+ "timeout": "Das Laden der Seite hat eine Zeitüberschreitung verursacht. Bist du sicher, dass du noch mit dem Internet verbunden bist?",
+ "clicktoselect": "Klicke, um auszuwählen...",
+ "expenseby": "Ausgabe von",
+ "selectvehicle": "Wähle ein Fahrzeug aus",
+ "expensedate": "Datum der Ausgabe",
+ "totalamountpaid": "Gezahlter Gesamtbetrag",
+ "fillmoredetails": "Weitere Details ausfüllen",
+ "markquickentryprocessed": "Markiere gewählten Schnelleintrag als bearbeitet",
+ "referquickentry": "Wähle Schnelleintrag",
+ "deletequickentry": "Willst du diesen Schnelleintrag wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden!",
+ "fuelunit": "Kraftstoffeinheit",
+ "fillingstation": "Tankstelle",
+ "comments": "Kommentare",
+ "missfillupbefore": "Hast du vergessen, die vorherige Tankfüllung zu erfassen?",
+ "fillupdate": "Tankdatum",
+ "fillupsavedsuccessfully": "Tankfüllung erfolgreich gespeichert",
+ "expensesavedsuccessfully": "Ausgabe erfolgreich gespeichert",
+ "vehiclesavedsuccessfully": "Fahrzeug erfolgreich gespeichert",
+ "back": "Zurück",
+ "nickname": "Bezeichnung",
+ "registration": "Nummernschild",
+ "createvehicle": "Fahrzeug erstellen",
+ "make": "Marke",
+ "model": "Modell",
+ "yearmanufacture": "Jahr der Erstzulassung",
+ "enginesize": "Hubraum (in ccm)",
+ "testconn": "Teste Verbindung",
+ "migrate": "Migrieren",
+ "init": {
+ "migrateclarkson": "Migriere von Clarkson",
+ "migrateclarksondesc": "Wenn du bereits eine Instanz von Clarkson verwendest und die Daten migrieren möchtest, klicke hier.",
+ "freshinstall": "Frische Installation",
+ "freshinstalldesc": "Wenn du eine neue Installation von Hammond starten möchtest, klicke hier.",
+ "clarkson": {
+ "desc": "Zuerst musst du sicherstellen, dass das Deployment von Hammond die von Clarkson verwendete MySQL Datenbank erreichen kann.
Wenn dies nicht möglich ist kannst du eine Kopie erstellen die für Hammond erreichbar ist.
Wenn das erledigt ist, füge hier den Connection String im folgenden Format ein.
Alle aus Clarkson importierten Nutzer bekommen ihren Benutzernamen als E-Mail und das Passwort wird geändert zu hammond
user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local
",
+ "success": "Deine Daten wurden erfolgreich von Clarkson migriert. Du wirst in kürze zur Anmeldung weitergeleitet wo du dich mit deiner E-Mail und dem passwort `hammond` anmelden kannst."
+ },
+ "fresh": {
+ "setupadminuser": "Erstelle einen Administrator",
+ "yourpassword": "Dein Passwort",
+ "youremail": "Deine E-Mail-Adresse",
+ "yourname": "Dein Name",
+ "success": "Du hast dich erfolgreich registriert. Du wirst in kürze zur Anmeldung weitergeleitet und kannst Anfangen Hammond zu verwenden."
+ }
+ },
+ "roles": {
+ "ADMIN": "Adminstrator",
+ "USER": "Benutzer"
+ },
+ "profile": "Profil",
+ "processedon": "Bearbeitet am",
+ "enable": "Entsperren",
+ "disable": "Sperren",
+ "confirm": "Bestätigen",
+ "labelforfile": "Bezeichnung für diese Datei"
+ }
diff --git a/src/GarageApp/locales/fr/translation.json b/src/GarageApp/locales/fr/translation.json
new file mode 100644
index 00000000..df8214e9
--- /dev/null
+++ b/src/GarageApp/locales/fr/translation.json
@@ -0,0 +1,231 @@
+{
+ "quickentry": "Pas d'entrée rapide | Entrée rapide | Entrées rapides",
+ "statistics": "Statistiques",
+ "thisweek": "Cette semaine",
+ "thismonth": "Ce mois",
+ "pastxdays": "Dernier jour | Derniers {count} jours",
+ "pastxmonths": "Dernier mois | Derniers {count} mois",
+ "thisyear": "Cette année",
+ "alltime": "Tout le temps",
+ "noattachments": "Pas de piece jointe",
+ "attachments": "Pièces jointes",
+ "choosefile": "Choose File",
+ "addattachment": "Ajouter une pièce jointe",
+ "sharedwith": "Partager avec",
+ "share": "Partager",
+ "you": "Vous",
+ "addfillup": "Ajouter un plein",
+ "createfillup": "Créer un plein",
+ "deletefillup": "Supprimer ce plein",
+ "addexpense": "Ajouter une dépense",
+ "createexpense": "Créer une dépense",
+ "deleteexpense": "Supprimer cette dépense",
+ "nofillups": "Pas de plein",
+ "transfervehicle": "Transferer le Véhicule",
+ "settingssaved": "Paramètres sauvegardés avec succès",
+ "yoursettings": "Vos paramètres",
+ "settings": "Paramètres",
+ "changepassword": "Changer votre mot de passe",
+ "oldpassword": "Ancien mot de passe",
+ "newpassword": "Nouveau mot de passe",
+ "repeatnewpassword": "Répéter votre nouveau mot de passe",
+ "passworddontmatch": "Les mots de passe ne correspondent pas",
+ "save": "Sauvegarder",
+ "supportthedeveloper": "Supporter le développeur",
+ "buyhimabeer": "Acheter lui un café!",
+ "featurerequest": "Demande de fonctionnalité",
+ "foundabug": "Trouvé un bug",
+ "currentversion": "Version actuelle",
+ "moreinfo": "Plus d'informations",
+ "currency": "Monnaie",
+ "distanceunit": "Unité de distance",
+ "dateformat": "Format de data",
+ "createnow": "Créer Maintenant",
+ "yourvehicles": "Vos Véhicules",
+ "menu": {
+ "quickentries": "Entrée rapide",
+ "logout": "Se déconnecter",
+ "import": "Importer",
+ "home": "Accueil",
+ "settings": "Paramètres",
+ "admin": "Admin",
+ "sitesettings": "Paramètres du site",
+ "users": "Utilisateurs",
+ "login": "Connexion"
+ },
+ "enterusername": "Entrez votre nom d'utilisateur",
+ "enterpassword": "Entrez votre mot de passe",
+ "email": "Email",
+ "password": "Mot de passe",
+ "login": "connexion",
+ "totalexpenses": "Dépenses totales",
+ "fillupcost": "Coût des pleins",
+ "otherexpenses": "Autres dépenses",
+ "addvehicle": "Ajouter un Véhicule",
+ "editvehicle": "Editer un Véhicule",
+ "deletevehicle": "Supprimer un Véhicule",
+ "sharevehicle": "Partager un Véhicule",
+ "makeowner": "Changer le propriétaire",
+ "lastfillup": "Dernier plein",
+ "quickentrydesc": "Prendre une photo de la facture ou de l'écran de la pompe à essence pour créer une entrée plus tard.",
+ "quickentrycreatedsuccessfully": "Entrée rapide créée avec succès",
+ "uploadfile": "Téléverser un fichier",
+ "uploadphoto": "Téléverser une photo",
+ "details": "Détails",
+ "odometer": "Odomètre",
+ "language": "Langue",
+ "date": "Date",
+ "pastfillups": "Derniers pleins",
+ "fuelsubtype": "Sous-type de combustible",
+ "fueltype": "Type de combustible",
+ "quantity": "Quantité",
+ "gasstation": "Station service",
+ "fuel": {
+ "petrol": "Pétrol",
+ "diesel": "Diesel",
+ "cng": "CNG",
+ "lpg": "LPG",
+ "electric": "Electrique",
+ "ethanol": "Éthanol"
+ },
+ "unit": {
+ "long": {
+ "litre": "Litre",
+ "gallon": "Gallon",
+ "kilowatthour": "Kilowatt Heure",
+ "kilogram": "Kilogram",
+ "usgallon": "US Gallon",
+ "minutes": "Minutes",
+ "kilometers": "Kilometres",
+ "miles": "Miles"
+ },
+ "short": {
+ "litre": "Lt",
+ "gallon": "Gal",
+ "kilowatthour": "KwH",
+ "kilogram": "Kg",
+ "usgallon": "US Gal",
+ "minutes": "Mins",
+ "kilometers": "Km",
+ "miles": "Mi"
+ }
+ },
+ "avgfillupqty": "Qté de plein moyen",
+ "avgfillupexpense": "Prix du plein moyen",
+ "avgfuelcost": "Prix de l'essence moyen",
+ "per": "{0} par {1}",
+ "price": "Prix",
+ "total": "Total",
+ "fulltank": "Reservoir complet",
+ "partialfillup": "Plein partiel",
+ "getafulltank": "Est-ce que vous avez rempli tout votre reservoir?",
+ "tankpartialfull": "Le quel traquez-vous?",
+ "by": "Par",
+ "expenses": "Dépenses",
+ "expensetype": "Type de dépense",
+ "noexpenses": "Pas de dépense",
+ "download": "Télécharger",
+ "title": "Titre",
+ "name": "Nom",
+ "delete": "Supprimer",
+ "importdata": "Importer des données dans Hammond",
+ "importdatadesc": "Choisissez une option pour importer des données dans Hammond",
+ "import": "Importer",
+ "importcsv": "Si vous utilisiez {name} pour stocker les données de vos véhicules, exportez les données en format CSV depuis {name} et cliquez ici pour importer.",
+ "importgeneric": "Importation de plein générique",
+ "importgenericdesc": "Importation de plein avec un SVC.",
+ "choosecsv": "Choisir un CSV",
+ "choosephoto": "Choisir une Photo",
+ "importsuccessfull": "Données importée avec succès",
+ "importerror": "Il y a eu un problème lors de l'importation. Veuillez regarder le message d'erreur",
+ "importfrom": "Importer depuis {0}",
+ "stepstoimport": "Étapes pour importer des données depuis {name}",
+ "choosecsvimport": "Choisissez le fichier CSV de {name} et appuyez sur le bouton pour importer.",
+ "choosedatafile": "Choisissez le fichier CSV et appuyez sur le bouton pour importer.",
+ "dontimportagain": "Faites attention à ne pas importer le fichier à nouveau car cela va créer des entrées dupliquées.",
+ "checkpointsimportcsv": "Dès que vous avez vérifié tous ces points, importez le CSV ci-dessous.",
+ "importhintunits": "De la même manière, make sure that the Fuel Unit and Fuel Type are correctly set in the Vehicle.",
+ "importhintcurrdist": "Soyez sûre que la Monnaie et l'Unité de distance sont mises correctement dans Hammond. L'importation ne detectera pas automatiquement la Monnaie du fichier mais utilisera les valeurs de l'utilisateur.",
+ "importhintnickname": "Soyez sûre que le nom du véhicule dans Hammon est exactement le même que le nom dans Fuelly, sinon, l'importation ne fonctionnera pas.",
+ "importhintvehiclecreated": "Soyez sûre d'avoir déjà créé le véhicule dans la plate-forme Hammond.",
+ "importhintcreatecsv": "Exportez vos données depuis {name} en format CSV. Les étapes pour faire ceci peuvent être trouvées",
+ "importgenerichintdata": "Les données doivent être au format CSV.",
+ "here": "ici",
+ "unprocessedquickentries": "Vous avez 1 entrée rapide en attente d'être traîtée. | Vous avez {0} entrée rapide en attente d'être traîtée.",
+ "show": "montrer",
+ "loginerror": "Il y a eu une erreur lors de la connexion a votre compte: {msg}",
+ "showunprocessed": "Montrer seulement les non-traîtées",
+ "unprocessed": "non-traîtée",
+ "sitesettingdesc": "Mettre à jour les paramètres du site. Ces valeurs seront utilisées par défaut pour les nouveaux utilisateurs.",
+ "settingdesc": "Ces valeurs seront utilisées par défaut lorsque vous créez un nouveau plein ou une nouvelle dépense.",
+ "areyousure": "Êtes-vous sûre de vouloir faire ceci?",
+ "adduser": "Ajouter un utilisateur",
+ "usercreatedsuccessfully": "Utilisateur créé avec succès",
+ "userdisabledsuccessfully": "Utilisateur désactivé avec succès",
+ "userenabledsuccessfully": "Utilisateur activé avec succès",
+ "role": "Rôle",
+ "created": "Créé",
+ "createnewuser": "Créer un nouvel utilisateur",
+ "cancel": "Annuler",
+ "novehicles": "Il semble que vous n'avez pas encore créé de véhicule dans le système pour le moment. Commencez par créer une entrée pour un des véhicule que vous voulez traquer.",
+ "processed": "Marquer en tant que traîté",
+ "notfound": "Non Trouvé",
+ "timeout": "La page a expiré lors du chargement. Êtes-vous sûre d'être toujours connecté à Internet?",
+ "clicktoselect": "Cliquer pour sélectionner...",
+ "expenseby": "Dépense par",
+ "selectvehicle": "Selectionner un véhicule",
+ "expensedate": "Date de la dépense",
+ "totalamountpaid": "Montant payé total",
+ "fillmoredetails": "Entrer plus de détails",
+ "markquickentryprocessed": "Marquer l'entrée rapide séléctionnée en tant que traîtée",
+ "referquickentry": "Faire référence à une entrée rapide",
+ "deletequickentry": "Ceci va supprimer l'entrée rapide. Cette action ne peut pas être annulée. Êtes-vous sûre?",
+ "fuelunit": "Unité de combustible",
+ "fillingstation": "Nom de la station service",
+ "comments": "Commentaires",
+ "missfillupbefore": "Est-ce que vous avez manqué un plein avant celui-ci?",
+ "missedfillup": "Plein manqué",
+ "fillupdate": "Date du plein",
+ "fillupsavedsuccessfully": "Plein sauvegardé avec succès",
+ "expensesavedsuccessfully": "Dépense sauvegardé avec succès",
+ "vehiclesavedsuccessfully": "Véhicule sauvegardé avec succès",
+ "settingssavedsuccessfully": "Paramètres sauvegardés avec succès",
+ "back": "Retour",
+ "nickname": "Surnom",
+ "registration": "Immatriculation",
+ "createvehicle": "Créer un Véhicule",
+ "make": "Marque",
+ "model": "Modèle",
+ "yearmanufacture": "Année de production",
+ "enginesize": "Taille du moteur (en chevaux)",
+ "mysqlconnstr": "Chaîne de caractère pour la connexion MySQL",
+ "testconn": "Tester la Connexion",
+ "migrate": "Migrer",
+ "init": {
+ "migrateclarkson": "Migrer depuis Clarkson",
+ "migrateclarksondesc": "Si vous avez un déploiement Clarkson existant et que vous souhaitez migrer vos données à partir de celui-ci, appuyez sur le bouton suivant.",
+ "freshinstall": "Nouvelle Installation",
+ "freshinstalldesc": "Si vous voulez une nouvelle installation de Hammond, appuyez sur le bouton suivant.",
+ "clarkson": {
+ "desc": "Vous devez vous assurer que ce déploiement de Hammond peut accéder à la base de données MySQL utilisée par Clarkson.
Si ce n'est pas directement possible, vous pouvez faire une copie de cette base de données autre part qui est accessible à partir de cette instance.
Une fois cela fait, entrez la chaîne de connexion à l'instance MySQL au format suivant.
Tous les utilisateurs importés de Clarkson auront leur nom d'utilisateur comme e-mail dans la base de données Clarkson et le mot de passe défini sur hammond
user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local
",
+ "success": "Nous avons migré avec succès les données depuis Clarkson. Vous serez bientôt redirigé vers l'écran de connexion où vous pourrez vous connecter en utilisant votre adresse e-mail et votre mot de passe existants : hammond"
+ },
+ "fresh": {
+ "setupadminuser": "Configurer le compte administrateur",
+ "yourpassword": "Votre Mot de passe",
+ "youremail": "Votre Email",
+ "yourname": "Votre Nom",
+ "success": "Vous avez été inscrit avec succès. Vous allez être redirigé vers la page de connexion très bientôt, vous pourrez vous connecter et commencer à utiliser le système."
+ }
+ },
+ "roles": {
+ "ADMIN": "ADMIN",
+ "USER": "USER"
+ },
+ "profile": "Profile",
+ "processedon": "Traîté le",
+ "enable": "Activer",
+ "disable": "Désactiver",
+ "confirm": "Continuer",
+ "labelforfile": "Label pour ce fichier"
+}
diff --git a/src/GarageApp/locales/hu/translation.json b/src/GarageApp/locales/hu/translation.json
new file mode 100644
index 00000000..dfd2a849
--- /dev/null
+++ b/src/GarageApp/locales/hu/translation.json
@@ -0,0 +1,231 @@
+{
+ "quickentry": "Nincs gyors bejegyzés | Gyors bejegyzés | Gyors bejegyzések",
+ "statistics": "Statisztikák",
+ "thisweek": "Ez a hét",
+ "thismonth": "Ez a hónap",
+ "pastxdays": "Elmúlt 1 nap | Elmúlt {count} nap",
+ "pastxmonths": "Elmúlt 1 hónap | Past {count} hónap",
+ "thisyear": "Ez az év",
+ "alltime": "Összes",
+ "noattachments": "Nincs csatolmány eddig",
+ "attachments": "Csatolmányok",
+ "choosefile": "Válassz fájlt",
+ "addattachment": "Csatolmány hozzáadása",
+ "sharedwith": "Megosztva vele",
+ "share": "Megosztás",
+ "you": "Te",
+ "addfillup": "Tankolás hozzáadása",
+ "createfillup": "Tankolás létrehozása",
+ "deletefillup": "Tankolás törlése",
+ "addexpense": "Kiadás hozzáadása",
+ "createexpense": "Kiadás létrehozása",
+ "deleteexpense": "Kiads törlése",
+ "nofillups": "Nincs tankolás eddig",
+ "transfervehicle": "Jármű átruházása",
+ "settingssaved": "Beállítások sikeresen mentve",
+ "yoursettings": "Beállításaid",
+ "settings": "Beállítások",
+ "changepassword": "Jelszó megváltoztatása",
+ "oldpassword": "Régi jelszó",
+ "newpassword": "Új jelszó",
+ "repeatnewpassword": "Jelszó mégegyszer",
+ "passworddontmatch": "Jelszavak nem egyeznek",
+ "save": "Mentés",
+ "supportthedeveloper": "Támogsad a fejlesztőt",
+ "buyhimabeer": "Vegyél neki egy sört!",
+ "featurerequest": "Funkció kérése",
+ "foundabug": "Hibát találtam",
+ "currentversion": "Aktuális verzió",
+ "moreinfo": "Több információ",
+ "currency": "Pénznem",
+ "distanceunit": "Távolság mértékegysége",
+ "dateformat": "Dátum formátuma",
+ "createnow": "Létrehozás most",
+ "yourvehicles": "Járműveid",
+ "menu": {
+ "quickentries": "Gyors bejegyzések",
+ "logout": "Kijelentkezés",
+ "import": "Betöltés",
+ "home": "Kezdőlap",
+ "settings": "Beállítások",
+ "admin": "Adminisztrátor",
+ "sitesettings": "Oldal beállításai",
+ "users": "Felhasználók",
+ "login": "Bejelentkezés"
+ },
+ "enterusername": "Írd be a felhasználó neved",
+ "enterpassword": "Írd be a jelszavad",
+ "email": "Email",
+ "password": "Jelszó",
+ "login": "bejelentkezés",
+ "totalexpenses": "Összeskiadás",
+ "fillupcost": "Tankolás költsége",
+ "otherexpenses": "Egyéb kiadás",
+ "addvehicle": "Jármű hozzáadása",
+ "editvehicle": "Jármű szerkesztése",
+ "deletevehicle": "Jármű törlése",
+ "sharevehicle": "Jármű megosztása",
+ "makeowner": "Tulajdonosnak jelölés",
+ "lastfillup": "Utolsó tankolás",
+ "quickentrydesc": "Csinálj képet a blokkról/számláról vagy a tankoló mérőóráról hogy fel tudd vinni később az adatokat.",
+ "quickentrycreatedsuccessfully": "Gyors bejegyzés sikeresen létrehozva",
+ "uploadfile": "Fájl feltöltése",
+ "uploadphoto": "Fotó feltöltése",
+ "details": "Részletek",
+ "odometer": "Kilóméter óra",
+ "language": "Nyelv",
+ "date": "Dátum",
+ "pastfillups": "Előző tankolások",
+ "fuelsubtype": "Üzemanyag altípus",
+ "fueltype": "Üzemanyag típus",
+ "quantity": "Mennyiség",
+ "gasstation": "Benzinkút",
+ "fuel": {
+ "petrol": "Benzin",
+ "diesel": "Dízel",
+ "cng": "CNG",
+ "lpg": "LPG",
+ "electric": "Elektromos",
+ "ethanol": "Etanol"
+ },
+ "unit": {
+ "long": {
+ "litre": "Liter",
+ "gallon": "Gallon",
+ "kilowatthour": "Kilowattóra",
+ "kilogram": "Kilogram",
+ "usgallon": "US Gallon",
+ "minutes": "Perc",
+ "kilometers": "Kilóméter",
+ "miles": "Mérföld"
+ },
+ "short": {
+ "litre": "L",
+ "gallon": "Gal",
+ "kilowatthour": "KwH",
+ "kilogram": "Kg",
+ "usgallon": "US Gal",
+ "minutes": "P",
+ "kilometers": "Km",
+ "miles": "Mérf"
+ }
+ },
+ "avgfillupqty": "Átl. tankolási menny.",
+ "avgfillupexpense": "Átl. tankolási kiadás",
+ "avgfuelcost": "Átl. üzemanyag ár",
+ "per": "{0} per {1}",
+ "price": "Ár",
+ "total": "Összesen",
+ "fulltank": "Tele tank",
+ "partialfillup": "Részleges tankolás",
+ "getafulltank": "Teletankoltál?",
+ "tankpartialfull": "Which do you track?",
+ "by": "által",
+ "expenses": "Kiadások",
+ "expensetype": "Kiadás típusa",
+ "noexpenses": "Nincs kiadás eddig",
+ "download": "Letöltés",
+ "title": "Címe",
+ "name": "Neve",
+ "delete": "Törlés",
+ "importdata": "Adata betöltésa Hammondba",
+ "importdatadesc": "Válassz az alábbi lehetőségek közül, hogy betöltsd az adatokat",
+ "import": "Betöltés",
+ "importcsv": "Ha már használtad {name}-t hogy tárold a jármű adatait, exportáld CSV-be {name}-ból/ből majd kattints it a Betöltésre.",
+ "importgeneric": "Általános tanoklások betöltése",
+ "importgenericdesc": "Tankolás CSV betöltés.",
+ "choosecsv": "CSV választása",
+ "choosephoto": "Fotó választása",
+ "importsuccessfull": "Adat sikeresen betöltve",
+ "importerror": "Betöltés közben hiba lépett fel. Kérem ellenőrizze a hibaüzenetet.",
+ "importfrom": "Betöltés innen: {0}",
+ "stepstoimport": "Lépések az adat betöltéséhez {name}-ból/ből",
+ "choosecsvimport": "Válassza a/az {name} CSV-t és nyomja meg a betöltés gombot.",
+ "choosedatafile": "Válassza a CSV fájlt majd nyomja meg az importálás gombot.",
+ "dontimportagain": "Legyen biztos benne, hogy nem importálja újra ugyan azt a fájlt. Dublikált bejegyzéseket eredményez.",
+ "checkpointsimportcsv": "Amikor végzett az összes ponttal, töltse be a CSV-t lejjebb.",
+ "importhintunits": "Hasonlóan, legyen biztos benne, hogy az Üzemanyag egysége és az Üzemanyag Típúsa helyesek a Jármű beállításaiban.",
+ "importhintcurrdist": "Ellenőrizze, hogy a Pénznem és a Távolság mértékegysége be lettek állítva a Hammond-ban. A betöltés automatikusan nem ismeri fel a bejegyzések Pénznemét, helyette a felhaszáló alapértlemzett beállítása lesz alkalmazva.",
+ "importhintnickname": "Ellenőrizze, hogy a Jármű neve Hammond-ban megegyezik a Fuelly CSV-ben használttal vagy a betöltés nem fog működni.",
+ "importhintvehiclecreated": "Ellenőrizze, hogy a Járművek már léteznek a Hammond rendszerében.",
+ "importhintcreatecsv": "Mentse adatát {name}-ból/ből CSV formátumba. Steps to do that can be found",
+ "importgenerichintdata": "Az adatnak CSV formátumban kell lennie.",
+ "here": "itt",
+ "unprocessedquickentries": "Egy gyors bejegyzés feldolgozva. | {0} gyorsbejegyzés vár feldolgozásra.",
+ "show": "Mutasd",
+ "loginerror": "Hiba történt a bejelentkezés során. {msg}",
+ "showunprocessed": "Csak nem feldolgozottak",
+ "unprocessed": "feldolgozatlan",
+ "sitesettingdesc": "Oldal beállításainak módosítása. Ezek lesznek használva új felhazsnálók létrehozásakor.",
+ "settingdesc": "Ezek lesznak alkalmazva alapértelmezett értékként, tankolásnál vagy kiadásnál.",
+ "areyousure": "Biztos hogy ezt akarja?",
+ "adduser": "Felhasználó hozzáadása",
+ "usercreatedsuccessfully": "Felhasználó sikeresen létrehozva",
+ "userdisabledsuccessfully": "Felhasználó sikeresen letiltva",
+ "userenabledsuccessfully": "Felhasználó sikeresen engedélyezve",
+ "role": "Szerepkör",
+ "created": "Létrehozva",
+ "createnewuser": "Új felhasználó létrehozása",
+ "cancel": "Mégsem",
+ "novehicles": "Eddig nem hozott létre járművet a rendszerében. Hozzon létre egyet amelynek adatait követni szeretné.",
+ "processed": "Megjelölés feldolgozottnak",
+ "notfound": "Nem talált",
+ "timeout": "A lap túl sokáig nem töltött be. Biztos benne, hogy még mindig van \ninternet elérése?",
+ "clicktoselect": "Válasszon...",
+ "expenseby": "Kiadások ez szerint",
+ "selectvehicle": "Válassz járművet",
+ "expensedate": "Kiadás dátuma",
+ "totalamountpaid": "Összes kifizetés",
+ "fillmoredetails": "Több részlet kitöltése",
+ "markquickentryprocessed": "Kiválasztott gyorsbejegyzések megjelölése feldolgozottként",
+ "referquickentry": "Gzorsbejegzy;s referencia",
+ "deletequickentry": "Ez kitörli ezt a gyorsbejegyzést. Ez a lépés visszafordíthatatlan. Biztos benne?",
+ "fuelunit": "Üzemenyag egység",
+ "fillingstation": "Benzinkút neve",
+ "comments": "Komment",
+ "missfillupbefore": "Nem töltötte ki az előző tankolást?",
+ "missedfillup": "Kihagyott tankolás",
+ "fillupdate": "Tankolás dátuma",
+ "fillupsavedsuccessfully": "Tankolás sikeresen mentve",
+ "expensesavedsuccessfully": "Kiadás sikeresen mentve",
+ "vehiclesavedsuccessfully": "Jármű sikeresen mentve",
+ "settingssavedsuccessfully": "Beállítások sikeresen mentve",
+ "back": "Vissza",
+ "nickname": "Becenév",
+ "registration": "Rendszám",
+ "createvehicle": "Jármű létrehozása",
+ "make": "Gyártó",
+ "model": "Model",
+ "yearmanufacture": "Gyártás éve",
+ "enginesize": "Motorméret (cm3)",
+ "mysqlconnstr": "Mysql Connection String",
+ "testconn": "Kapcsolat tesztelése",
+ "migrate": "Migrálás",
+ "init": {
+ "migrateclarkson": "Migrálás Clarkson-ból",
+ "migrateclarksondesc": "Ha van egy meglévő Clarkson telepítése, és szeretné adatait átmozgatni onnan, nyomja meg a következő gombot.",
+ "freshinstall": "Tiszta telepítés",
+ "freshinstalldesc": "Ha szeretné a Hammond tiszta telepítését, nyomja meg a következő gombot.",
+ "clarkson": {
+ "desc": "Biztosítania kell, hogy ez a Hammond telepítés el tudja érni a Clarkson által készített MySQL adatbázist.
Ha ez nem megoldható, készíthet egy másolatot az adatbázisról, és elhelyzheti olyan helyre amely elérhető innen.
Amikor ezzel kész van, Állítsa me a connection String-et a MySQL-hez a következő formátumban.
Az összes Clarkson-ból migrált felhasználónak az e-mail címük lesz a felhasználó nevük, és a jelszavuk hammond lesz
user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local
",
+ "success": "Sikeresen migráltuk az adatot Clarkson-ból. Hamarosan át lesz irányítva a bejelentkezési oldalra, ahol használhatja a meglévő fiókját, és jelszavát: hammond"
+ },
+ "fresh": {
+ "setupadminuser": "Adminisztrátor felhasználó beállítása",
+ "yourpassword": "Ön jelszava",
+ "youremail": "Ön e-mailcíme",
+ "yourname": "Ön neve",
+ "success": "Ön sikeresen regisztrált. Át lesz irányítva a bejelentkezési képernyőre, ahol be tud jelentkezni és elkezdheti használni a rendszert."
+ }
+ },
+ "roles": {
+ "ADMIN": "ADMIN",
+ "USER": "FELHASZNÁLÓ"
+ },
+ "profile": "Profil",
+ "processedon": "Felfdolgozva ekkor",
+ "enable": "Engedélyezve",
+ "disable": "Letiltva",
+ "confirm": "Megerősítés",
+ "labelforfile": "Címke ehheza fájlhoz"
+}
\ No newline at end of file
diff --git a/src/GarageApp/locales/index.tsx b/src/GarageApp/locales/index.tsx
index 061cdda2..b94c51ae 100644
--- a/src/GarageApp/locales/index.tsx
+++ b/src/GarageApp/locales/index.tsx
@@ -1,7 +1,10 @@
export const LANGUAGES = [
- { label: "Spanish", code: "es" },
- { label: "English", code: "en" },
- { label: "Italian", code: "it" },
- { label: "Danish", code: "da" },
+ { label: "english | english", code: "en" },
+ { label: "danish | dansk", code: "da" },
+ { label: "german | deutch", code: "de" },
+ { label: "frensh | français", code: "fr" },
+ { label: "hungarian | magyar", code: "hu" },
+ { label: "slovenian | slovenski", code: "sl" },
+ { label: "Chinese (simplified) | 简体中文", code: "zh" },
];
diff --git a/src/GarageApp/locales/sl/translation.json b/src/GarageApp/locales/sl/translation.json
new file mode 100644
index 00000000..541420c7
--- /dev/null
+++ b/src/GarageApp/locales/sl/translation.json
@@ -0,0 +1,231 @@
+{
+ "quickentry": "Ni hitrih vnosov | Hiter vnos | Hitri vnosi",
+ "statistics": "Statistika",
+ "thisweek": "Ta teden",
+ "thismonth": "Ta mesec",
+ "pastxdays": "Zadnji dan | Zadnjih {count} dni",
+ "pastxmonths": "Zadnji mesec | Zadnji {count} mesecev",
+ "thisyear": "To leto",
+ "alltime": "Celoten čas",
+ "noattachments": "Zaenkrat še ni priponk",
+ "attachments": "Priloge",
+ "choosefile": "Izberi datoteko",
+ "addattachment": "Dodaj prilogo",
+ "sharedwith": "V skupni rabi z",
+ "share": "Deli",
+ "you": "Ti",
+ "addfillup": "Dodaj polnjenje",
+ "createfillup": "Ustvarite polnjenje",
+ "deletefillup": "Izbriši to polnjenje",
+ "addexpense": "Dodaj strošek",
+ "createexpense": "Ustvari strošek",
+ "deleteexpense": "Izbriši ta strošek",
+ "nofillups": "Zaenkrat še brez polnjenja",
+ "transfervehicle": "Prevozno sredstvo",
+ "settingssaved": "Nastavitve so uspešno shranjene",
+ "yoursettings": "Vaše nastavitve",
+ "settings": "Nastavitve",
+ "changepassword": "Spremeni geslo",
+ "oldpassword": "Staro geslo",
+ "newpassword": "Novo geslo",
+ "repeatnewpassword": "Ponovite novo geslo",
+ "passworddontmatch": "Vrednosti gesel se ne ujemajo",
+ "save": "Shrani",
+ "supportthedeveloper": "Podprite razvijalca",
+ "buyhimabeer": "Kupi mu pivo!",
+ "featurerequest": "Nova funkcionalnost",
+ "foundabug": "Našel sem hrošča",
+ "currentversion": "Trenutna verzija",
+ "moreinfo": "Več informacij",
+ "currency": "Valuta",
+ "distanceunit": "Enota razdalje",
+ "dateformat": "Format datuma",
+ "createnow": "Ustvari zdaj",
+ "yourvehicles": "Vaša vozila",
+ "menu": {
+ "quickentries": "Hitri vnosi",
+ "logout": "Odjava",
+ "import": "Uvoz",
+ "home": "Domov",
+ "settings": "Nastavitve",
+ "admin": "Skrbnik",
+ "sitesettings": "Nastavitve spletnega mesta",
+ "users": "Uporabniki",
+ "login": "Vpiši se"
+ },
+ "enterusername": "Vnesite svoje uporabniško ime",
+ "enterpassword": "Vnesite vaše geslo",
+ "email": "E-naslov",
+ "password": "Geslo",
+ "login": "Vpiši se",
+ "totalexpenses": "Skupni stroški",
+ "fillupcost": "Stroški polnjenja",
+ "otherexpenses": "Drugi stroški",
+ "addvehicle": "Dodaj vozilo",
+ "editvehicle": "Uredi vozilo",
+ "deletevehicle": "Izbriši vozilo",
+ "sharevehicle": "Deli vozilo",
+ "makeowner": "Postani lastnik",
+ "lastfillup": "Zadnje polnjenje",
+ "quickentrydesc": "Posnemite sliko računa ali zaslona črpalke za gorivo, da ju lahko vnesete pozneje.",
+ "quickentrycreatedsuccessfully": "Hitri vnos je bil uspešno ustvarjen",
+ "uploadfile": "Naloži datoteko",
+ "uploadphoto": "Naloži fotografijo",
+ "details": "Podrobnosti",
+ "odometer": "Odometer",
+ "language": "Jezik",
+ "date": "Datum",
+ "pastfillups": "Prejšnja polnjenja",
+ "fuelsubtype": "Podvrsta goriva",
+ "fueltype": "Vrsta goriva",
+ "quantity": "Količina",
+ "gasstation": "Bencinska črpalka",
+ "fuel": {
+ "petrol": "Bencin",
+ "diesel": "Dizelsko gorivo",
+ "cng": "CNG",
+ "lpg": "LPG",
+ "electric": "Elektrika",
+ "ethanol": "Etanol"
+ },
+ "unit": {
+ "long": {
+ "litre": "Liter",
+ "gallon": "Galon",
+ "kilowatthour": "Kilovatna ura",
+ "kilogram": "Kilogram",
+ "usgallon": "Ameriška galona",
+ "minutes": "Minute",
+ "kilometers": "Kilometri",
+ "miles": "Milje"
+ },
+ "short": {
+ "litre": "Lit",
+ "gallon": "Gal",
+ "kilowatthour": "KwH",
+ "kilogram": "Kg",
+ "usgallon": "US Gal",
+ "minutes": "Min",
+ "kilometers": "Km",
+ "miles": "Mi"
+ }
+ },
+ "avgfillupqty": "Povprečna količina polnjenja",
+ "avgfillupexpense": "Povprečni stroški polnjenja",
+ "avgfuelcost": "Povprečni strošek goriva",
+ "per": "{0} na {1}",
+ "price": "Cena",
+ "total": "Skupaj",
+ "fulltank": "Rezervoar poln",
+ "partialfillup": "Delno polnjenje",
+ "getafulltank": "Ste dobili poln rezervoar?",
+ "tankpartialfull": "Kateremu sledite?",
+ "by": "Od",
+ "expenses": "Stroški",
+ "expensetype": "Vrsta stroška",
+ "noexpenses": "Zaenkrat ni bilo stroškov",
+ "download": "Prenesi",
+ "title": "Naslov",
+ "name": "Ime",
+ "delete": "Izbriši",
+ "importdata": "Uvozite podatke v Hammond",
+ "importdatadesc": "Za uvoz podatkov v Hammond izberite med naslednjimi možnostmi",
+ "import": "Uvozi",
+ "importcsv": "Če ste za shranjevanje podatkov o vozilu uporabljali {name}, izvozite datoteko CSV iz {name} in kliknite tukaj za uvoz.",
+ "importgeneric": "Generični uvoz polnjenja",
+ "importgenericdesc": "CSV uvoz poljenja.",
+ "choosecsv": "Izberite CSV",
+ "choosephoto": "Izberite fotografijo",
+ "importsuccessfull": "Podatki so bili uspešno uvoženi",
+ "importerror": "Pri uvozu datoteke je prišlo do težave. ",
+ "importfrom": "Uvoz iz {0}",
+ "stepstoimport": "Koraki za uvoz podatkov iz {name}",
+ "choosecsvimport": "Izberite {name} CSV in pritisnite gumb za uvoz.",
+ "choosedatafile": "Izberite datoteko CSV in pritisnite gumb za uvoz.",
+ "dontimportagain": "Prepričajte se, da datoteke ne uvozite znova, ker boste s tem ustvarili ponavljajoče se vnose.",
+ "checkpointsimportcsv": "Ko preverite vse te točke, preprosto uvozite spodnji CSV.",
+ "importhintunits": "Podobno se prepričajte, da sta Enota za gorivo in Vrsta goriva pravilno nameščeni pod Vozilo.",
+ "importhintcurrdist": "Prepričajte se, da sta Valuta in Enota razdalje pri Hammondu uporabniku pravilno nastavljeni.",
+ "importhintnickname": "Prepričajte se, da je vzdevek vozila v Hammondu popolnoma enak imenu v CSV datoteki polnjenj, sicer uvoz ne bo deloval.",
+ "importhintvehiclecreated": "Prepričajte se, da ste že ustvarili vozila na platformi Hammond.",
+ "importhintcreatecsv": "Izvozite svoje podatke iz {name} v formatu CSV. ",
+ "importgenerichintdata": "Podatki morajo biti v formatu CSV.",
+ "here": "tukaj",
+ "unprocessedquickentries": "Za obdelavo imate en hiter vnos. | Za obdelavo imate {0} hitrih vnosov.",
+ "show": "Prikaži",
+ "loginerror": "Pri prijavi v vaš račun je prišlo do napake. ",
+ "showunprocessed": "Pokaži samo neobdelano",
+ "unprocessed": "neobdelano",
+ "sitesettingdesc": "Posodobite nastavitve na ravni aplikacije. Te bodo uporabljene kot privzete vrednosti za nove uporabnike.",
+ "settingdesc": "Te bodo uporabljene kot privzete vrednosti vsakič, ko ustvarite novo polnjenje ali strošek.",
+ "areyousure": "Ste prepričani, da želite to narediti?",
+ "adduser": "Dodaj uporabnika",
+ "usercreatedsuccessfully": "Uporabnik je bil uspešno ustvarjen",
+ "userdisabledsuccessfully": "Uporabnik uspešno onemogočen",
+ "userenabledsuccessfully": "Uporabnik je uspešno omogočen",
+ "role": "Vloga",
+ "created": "Ustvarjeno",
+ "createnewuser": "Ustvari novega uporabnika",
+ "cancel": "Prekliči",
+ "novehicles": "Videti je, da še niste ustvarili vozila v sistemu. ",
+ "processed": "Označi obdelano",
+ "notfound": "Ni najdeno",
+ "timeout": "Med nalaganjem strani je potekla časovna omejitev. ",
+ "clicktoselect": "Kliknite za izbiro ...",
+ "expenseby": "Stroški po",
+ "selectvehicle": "Izberite vozilo",
+ "expensedate": "Datum izdatka",
+ "totalamountpaid": "Skupni plačani znesek",
+ "fillmoredetails": "Izpolnite več podrobnosti",
+ "markquickentryprocessed": "Označi izbrani hitri vnos kot obdelan",
+ "referquickentry": "Oglejte si hiter vnos",
+ "deletequickentry": "S tem boste izbrisali ta hitri vnos. ",
+ "fuelunit": "Enota za gorivo",
+ "fillingstation": "Ime bencinske postaje",
+ "comments": "Komentarji",
+ "missfillupbefore": "Ste pred tem zamudili vnos zapolnitve?",
+ "missedfillup": "Zamujeno polnjenje",
+ "fillupdate": "Datum polnjenja",
+ "fillupsavedsuccessfully": "Polnjenje je bil uspešno shranjeno",
+ "expensesavedsuccessfully": "Stroški so uspešno shranjeni",
+ "vehiclesavedsuccessfully": "Vozilo je uspešno shranjeno",
+ "settingssavedsuccessfully": "Nastavitve so uspešno shranjene",
+ "back": "Nazaj",
+ "nickname": "Vzdevek",
+ "registration": "Registracija",
+ "createvehicle": "Ustvarite vozilo",
+ "make": "Znamka / Podjetje",
+ "model": "Model",
+ "yearmanufacture": "Leto izdelave",
+ "enginesize": "Prostornina motorja (v cc)",
+ "mysqlconnstr": "Niz povezave Mysql",
+ "testconn": "Testna povezava",
+ "migrate": "Preseli",
+ "init": {
+ "migrateclarkson": "Selitev iz Clarksona",
+ "migrateclarksondesc": "Če imate obstoječo Clarkson namestitev in želite iz nje preseliti svoje podatke, pritisnite naslednji gumb.",
+ "freshinstall": "Sveža namestitev",
+ "freshinstalldesc": "Če želite novo namestitev Hammonda, pritisnite naslednji gumb.",
+ "clarkson": {
+ "desc": "Zagotoviti morate, da lahko ta uvedba Hammonda dostopa do baze podatkov MySQL, ki jo uporablja Clarkson.
Če to ni neposredno mogoče, lahko naredite kopijo te zbirke podatkov nekje, kjer je dostopna iz tega primerka.
Ko je to storjeno, vnesite povezovalni niz v primerek MySQL v naslednji obliki.
Vsi uporabniki, uvoženi iz Clarksona, bodo imeli svoje uporabniško ime kot e-pošto v bazi podatkov Clarkson in geslo nastavljeno nahammond
uporabnik:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4
",
+ "success": "Uspešno smo prenesli podatke iz Clarksona. "
+ },
+ "fresh": {
+ "setupadminuser": "Nastavitev skrbniških uporabnikov",
+ "yourpassword": "Vaše geslo",
+ "youremail": "Vaš e-poštni naslov",
+ "yourname": "Vaše ime",
+ "success": "Uspešno ste se registrirali. "
+ }
+ },
+ "roles": {
+ "ADMIN": "SKRBNIK",
+ "USER": "UPORABNIK"
+ },
+ "profile": "Profil",
+ "processedon": "Obdelano dne",
+ "enable": "Omogoči",
+ "disable": "Onemogoči",
+ "confirm": "Kar daj",
+ "labelforfile": "Oznaka za to datoteko"
+}
\ No newline at end of file
diff --git a/src/GarageApp/locales/zh/translation.json b/src/GarageApp/locales/zh/translation.json
new file mode 100644
index 00000000..3a565af7
--- /dev/null
+++ b/src/GarageApp/locales/zh/translation.json
@@ -0,0 +1,231 @@
+{
+ "quickentry": "没有速记 | 速记 | 速记",
+ "statistics": "统计数据",
+ "thisweek": "本周",
+ "thismonth": "本月",
+ "pastxdays": "过去一天 | 过去 {count} 天",
+ "pastxmonths": "过去一个月 | 过去 {count} 个月",
+ "thisyear": "今年",
+ "alltime": "所有时间",
+ "noattachments": "目前还没有附件",
+ "attachments": "附件",
+ "choosefile": "选择文件",
+ "addattachment": "添加附件",
+ "sharedwith": "共享给",
+ "share": "分享",
+ "you": "您",
+ "addfillup": "添加加注记录",
+ "createfillup": "创建加注记录",
+ "deletefillup": "删除此加注记录",
+ "addexpense": "添加支出",
+ "createexpense": "创建支出记录",
+ "deleteexpense": "删除此支出",
+ "nofillups": "目前还没有加注记录",
+ "transfervehicle": "转让车辆",
+ "settingssaved": "设置保存成功",
+ "yoursettings": "您的设置",
+ "settings": "设置",
+ "changepassword": "更改密码",
+ "oldpassword": "旧密码",
+ "newpassword": "新密码",
+ "repeatnewpassword": "重复新密码",
+ "passworddontmatch": "密码不匹配",
+ "save": "保存",
+ "supportthedeveloper": "支持开发者",
+ "buyhimabeer": "请他喝杯啤酒!",
+ "featurerequest": "功能请求",
+ "foundabug": "发现了错误",
+ "currentversion": "当前版本",
+ "moreinfo": "更多信息",
+ "currency": "货币",
+ "distanceunit": "长度单位",
+ "dateformat": "日期格式",
+ "createnow": "立即创建",
+ "yourvehicles": "您的车辆",
+ "menu": {
+ "quickentries": "速记",
+ "logout": "退出登录",
+ "import": "导入",
+ "home": "主页",
+ "settings": "设置",
+ "admin": "管理",
+ "sitesettings": "全局设置",
+ "users": "用户",
+ "login": "登录"
+ },
+ "enterusername": "输入您的用户名",
+ "enterpassword": "输入您的密码",
+ "email": "邮箱",
+ "password": "密码",
+ "login": "登录",
+ "totalexpenses": "总支出",
+ "fillupcost": "加注花费",
+ "otherexpenses": "其它支出",
+ "addvehicle": "添加车辆",
+ "editvehicle": "编辑车辆",
+ "deletevehicle": "删除车辆",
+ "sharevehicle": "共享车辆",
+ "makeowner": "设为车主",
+ "lastfillup": "上次加注记录",
+ "quickentrydesc": "拍摄发票或加油机显示屏的照片,以便稍后进行记录。",
+ "quickentrycreatedsuccessfully": "速记创建成功",
+ "uploadfile": "上传文件",
+ "uploadphoto": "上传照片",
+ "details": "详情",
+ "odometer": "里程表",
+ "language": "语言",
+ "date": "日期",
+ "pastfillups": "历史加注记录",
+ "fuelsubtype": "燃油型号",
+ "fueltype": "燃油类型",
+ "quantity": "加注量",
+ "gasstation": "加油站",
+ "fuel": {
+ "petrol": "汽油",
+ "diesel": "柴油",
+ "cng": "压缩天然气",
+ "lpg": "液化石油气",
+ "electric": "电力",
+ "ethanol": "乙醇"
+ },
+ "unit": {
+ "long": {
+ "litre": "升",
+ "gallon": "加仑",
+ "kilowatthour": "千瓦时",
+ "kilogram": "千克",
+ "usgallon": "美制加仑",
+ "minutes": "分钟",
+ "kilometers": "千米",
+ "miles": "英里"
+ },
+ "short": {
+ "litre": "升",
+ "gallon": "加仑",
+ "kilowatthour": "度",
+ "kilogram": "千克",
+ "usgallon": "美加仑",
+ "minutes": "分",
+ "kilometers": "千米",
+ "miles": "英里"
+ }
+ },
+ "avgfillupqty": "平均加注量",
+ "avgfillupexpense": "平均加注费用",
+ "avgfuelcost": "平均燃油成本",
+ "per": "每{1}的{0}",
+ "price": "价格",
+ "total": "总价",
+ "fulltank": "加满油箱",
+ "partialfillup": "部分加注",
+ "getafulltank": "您是否加满油箱?",
+ "tankpartialfull": "油箱状态如何标记?",
+ "by": "来自",
+ "expenses": "支出记录",
+ "expensetype": "支出类型",
+ "noexpenses": "目前还没有支出记录",
+ "download": "下载",
+ "title": "文件说明",
+ "name": "文件名",
+ "delete": "删除",
+ "importdata": "将数据导入 Hammond",
+ "importdatadesc": "从以下选项中进行选择以将数据导入 Hammond",
+ "import": "导入",
+ "importcsv": "如果您此前使用 {name} 存储车辆数据,请从 {name} 导出 CSV 文件,然后单击此处进行导入。",
+ "importgeneric": "通用导入",
+ "importgenericdesc": "导入加注信息的 CSV 文件。",
+ "choosecsv": "选择 CSV",
+ "choosephoto": "选择照片",
+ "importsuccessfull": "数据导入成功",
+ "importerror": "导入文件时出现问题,请检查错误信息。",
+ "importfrom": "从 {0} 导入",
+ "stepstoimport": "从 {name} 导入数据的步骤",
+ "choosecsvimport": "选择 {name} 的 CSV 文件,并单击导入按钮。",
+ "choosedatafile": "选择 CSV 文件,然后单击导入按钮。",
+ "dontimportagain": "确保不要再次导入文件,因为这样会产生重复数据。",
+ "checkpointsimportcsv": "检查完所有这些要点后,就在下面导入 CSV。",
+ "importhintunits": "同样,请确保车辆中的燃油单位和燃油类型设置正确。",
+ "importhintcurrdist": "确保在 Hammond 中正确设置了货币和距离单位。导入时不会从文件中自动检测货币,而是直接使用用户设置的货币。",
+ "importhintnickname": "确保 Hammond 中的车辆昵称与 CSV 中的名称完全相同,否则导入将不起作用。",
+ "importhintvehiclecreated": "确保已在 Hammond 中创建车辆。",
+ "importhintcreatecsv": "以 CSV 格式从 {name} 导出数据。可以在这里找到执行此操作的步骤:",
+ "importgenerichintdata": "数据必须为 CSV 格式。",
+ "here": "(文档)",
+ "unprocessedquickentries": "您有一条速记等待处理。 | 您有 {0} 条速记等待处理。",
+ "show": "显示",
+ "loginerror": "登录您的帐户时出错。{msg}",
+ "showunprocessed": "仅显示未处理的",
+ "unprocessed": "未处理的",
+ "sitesettingdesc": "更新全局设置,这些设置将作为新用户的默认值。",
+ "settingdesc": "当您创建新的加注或支出记录时,这些值将作为默认值使用。",
+ "areyousure": "您确定要这样做吗?",
+ "adduser": "添加用户",
+ "usercreatedsuccessfully": "用户创建成功",
+ "userdisabledsuccessfully": "用户禁用成功",
+ "userenabledsuccessfully": "用户启用成功",
+ "role": "角色",
+ "created": "创建",
+ "createnewuser": "创建新用户",
+ "cancel": "取消",
+ "novehicles": "您似乎尚未在系统中创建车辆,请先添加一辆。",
+ "processed": "标记为已处理",
+ "notfound": "未找到",
+ "timeout": "页面加载时超时,您确定仍连接到互联网吗?",
+ "clicktoselect": "单击以选择…",
+ "expenseby": "支出由",
+ "selectvehicle": "选择车辆",
+ "expensedate": "支出日期",
+ "totalamountpaid": "支付总额",
+ "fillmoredetails": "填写更多详细信息",
+ "markquickentryprocessed": "将选定的速记标记为已处理",
+ "referquickentry": "关联速记",
+ "deletequickentry": "此操作将删除这条速记。删除后无法恢复,您确定要继续吗?",
+ "fuelunit": "燃油单位",
+ "fillingstation": "加油站名称",
+ "comments": "注释",
+ "missfillupbefore": "您是否遗漏了之前的一次加注记录?",
+ "missedfillup": "遗漏的加注记录",
+ "fillupdate": "加注日期",
+ "fillupsavedsuccessfully": "加注记录保存成功",
+ "expensesavedsuccessfully": "支出记录保存成功",
+ "vehiclesavedsuccessfully": "车辆保存成功",
+ "settingssavedsuccessfully": "设置保存成功",
+ "back": "返回",
+ "nickname": "昵称",
+ "registration": "车牌号",
+ "createvehicle": "创建车辆",
+ "make": "品牌 / 制造商",
+ "model": "型号",
+ "yearmanufacture": "生产年份",
+ "enginesize": "发动机排量(单位:cc)",
+ "mysqlconnstr": "MySQL 连接字符串",
+ "testconn": "测试连接",
+ "migrate": "迁移",
+ "init": {
+ "migrateclarkson": "从 Clarkson 迁移",
+ "migrateclarksondesc": "如果您已有 Clarkson 部署,并希望从中迁移数据,请单击以下按钮。",
+ "freshinstall": "全新安装",
+ "freshinstalldesc": "如果您想全新安装 Hammond,请单击以下按钮。",
+ "clarkson": {
+ "desc": "您需要此确保 Hammond 的部署可以访问 Clarkson 使用的 MySQL 数据库。
如果无法直接访问,可以在本实例可访问的地方复制该数据库。
<完成后,按以下格式输入与 MySQL 实例的连接字符串。/p>
所有从 Clarkson 导入的用户将使用原邮箱作为用户名,密码设置为hammond
user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local
",
+ "success": "我们已成功从 Clarkson 迁移数据。您将很快被重定向到登录界面,在那里您可以使用现有的邮箱和密码(hammond)登录。"
+ },
+ "fresh": {
+ "setupadminuser": "设置管理员用户",
+ "yourpassword": "您的密码",
+ "youremail": "您的邮箱",
+ "yourname": "您的姓名",
+ "success": "您已注册成功。您将很快被重定向到登录界面,登录后即可开始使用。"
+ }
+ },
+ "roles": {
+ "ADMIN": "管理员",
+ "USER": "普通用户"
+ },
+ "profile": "配置文件",
+ "processedon": "处理于",
+ "enable": "启用",
+ "disable": "禁用",
+ "confirm": "继续",
+ "labelforfile": "文件说明"
+}
diff --git a/src/GarageApp/modules/.VehicleCards.tsx.swp b/src/GarageApp/modules/.StatisticsView.tsx.swp
similarity index 68%
rename from src/GarageApp/modules/.VehicleCards.tsx.swp
rename to src/GarageApp/modules/.StatisticsView.tsx.swp
index 5588ab0d..885372eb 100644
Binary files a/src/GarageApp/modules/.VehicleCards.tsx.swp and b/src/GarageApp/modules/.StatisticsView.tsx.swp differ
diff --git a/src/GarageApp/modules/MenuBar.tsx b/src/GarageApp/modules/MenuBar.tsx
new file mode 100644
index 00000000..3a402d28
--- /dev/null
+++ b/src/GarageApp/modules/MenuBar.tsx
@@ -0,0 +1,176 @@
+import * as React from 'react';
+import AppBar from '@mui/material/AppBar';
+import Box from '@mui/material/Box';
+import Toolbar from '@mui/material/Toolbar';
+import IconButton from '@mui/material/IconButton';
+import Typography from '@mui/material/Typography';
+import Menu from '@mui/material/Menu';
+import MenuIcon from '@mui/icons-material/Menu';
+import Container from '@mui/material/Container';
+import Avatar from '@mui/material/Avatar';
+import Button from '@mui/material/Button';
+import Tooltip from '@mui/material/Tooltip';
+import MenuItem from '@mui/material/MenuItem';
+import AdbIcon from '@mui/icons-material/Adb';
+
+import MenuLanguages from './MenuLanguages';
+import logo from '../logo.svg'
+import reactLogo from '../react.svg'
+
+
+//translation
+import { useTranslation } from 'react-i18next';
+import { LANGUAGES } from '../locales'
+
+// a test to see if this will work in menu
+import ListItemButton from '@mui/material/ListItemButton';
+import ListItemText from '@mui/material/ListItemText';
+
+
+function GarageAppLogo() {
+ return (
+
+
+

+

+
+
+
+ GarageApp
+
+
+
+ )
+}
+const pages = ['Home', 'Quick Entries', 'Import'];
+const settings = ['Profile', 'Admin', 'Logout'];
+function ResponsiveAppBar() {
+ //translation
+ const { t, i18n } = useTranslation();
+
+ //MaterialUI stuff
+ const [anchorElNav, setAnchorElNav] = React.useState(null);
+ const [anchorElUser, setAnchorElUser] = React.useState(null);
+
+ const handleOpenNavMenu = (event: React.MouseEvent) => {
+ setAnchorElNav(event.currentTarget);
+ };
+ const handleOpenUserMenu = (event: React.MouseEvent) => {
+ setAnchorElUser(event.currentTarget);
+ };
+
+ const handleCloseNavMenu = () => {
+ setAnchorElNav(null);
+ };
+
+ const handleCloseUserMenu = () => {
+ setAnchorElUser(null);
+ };
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ LOGO
+
+
+ {pages.map((page) => (
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+export default ResponsiveAppBar;
diff --git a/src/GarageApp/modules/MenuLanguages.tsx b/src/GarageApp/modules/MenuLanguages.tsx
new file mode 100644
index 00000000..4dbd32f0
--- /dev/null
+++ b/src/GarageApp/modules/MenuLanguages.tsx
@@ -0,0 +1,89 @@
+import * as React from 'react';
+import Paper from '@mui/material/Paper';
+import MenuList from '@mui/material/MenuList';
+import MenuItem from '@mui/material/MenuItem';
+import ListItemText from '@mui/material/ListItemText';
+import ListItemIcon from '@mui/material/ListItemIcon';
+import ListItemButton from '@mui/material/ListItemButton';
+import { LANGUAGES } from '../locales'
+import { Icon } from "@iconify/react";
+import { useTranslation } from 'react-i18next';
+import Menu from '@mui/material/Menu';
+
+
+export default function LanguageMenu( {closeAction} ) {
+ const { t, i18n } = useTranslation();
+
+ const handleLanguageChange = (lang: any) => {
+ try {
+ i18n.changeLanguage(lang.code);
+ } catch (error) {
+ console.error(`Error changing language to ${lang.code}:`, error);
+ }
+ };
+
+ const [anchorElUser, setAnchorElUser] = React.useState(null);
+ const [anchorEl, setAnchorEl] = React.useState(null);
+ const [selectedIndex, setSelectedIndex] = React.useState(1);
+ const open = Boolean(anchorEl);
+ const handleClickListItem = (event: React.MouseEvent) => {
+ setAnchorEl(event.currentTarget);
+ };
+
+
+ const handleLanguageSelect = (
+ event: React.MouseEvent,
+ index: number,
+ ) => {
+ setSelectedIndex(index);
+ handleLanguageChange(LANGUAGES[index]);
+ closeAction;
+ setAnchorEl(null);
+ setAnchorElUser(null);
+ };
+
+
+ const handleClose = () => {
+ setAnchorEl(null);
+ };
+
+
+ return (
+
+
+
+
+
+
+ )
+}
diff --git a/src/GarageApp/modules/StatisticsView.tsx b/src/GarageApp/modules/StatisticsView.tsx
new file mode 100644
index 00000000..34d792cf
--- /dev/null
+++ b/src/GarageApp/modules/StatisticsView.tsx
@@ -0,0 +1,13 @@
+import { useTranslation, withTranslation, Trans } from 'react-i18next';
+
+
+
+
+
+
+export default function StatisticsView() {
+ const { t, i18n } = useTranslation();
+ return (
+ {t ('statistics')}
+ )
+}
diff --git a/src/GarageApp/modules/VehicleCards.tsx b/src/GarageApp/modules/VehicleCards.tsx
index 77e37ebc..20f4ddcf 100644
--- a/src/GarageApp/modules/VehicleCards.tsx
+++ b/src/GarageApp/modules/VehicleCards.tsx
@@ -13,8 +13,6 @@ import IconButton, { IconButtonProps } from '@mui/material/IconButton';
import Typography from '@mui/material/Typography';
import { red } from '@mui/material/colors';
-import FavoriteIcon from '@mui/icons-material/Favorite';
-import ShareIcon from '@mui/icons-material/Share';
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
import MoreVertIcon from '@mui/icons-material/MoreVert';
import GasStation from './icons/gasFillup'
diff --git a/src/GarageApp/modules/YourVehicles.tsx b/src/GarageApp/modules/YourVehicles.tsx
index a8b8b9c3..14004376 100644
--- a/src/GarageApp/modules/YourVehicles.tsx
+++ b/src/GarageApp/modules/YourVehicles.tsx
@@ -6,10 +6,10 @@ import Button from '@mui/material/Button';
import { useTranslation, withTranslation, Trans } from 'react-i18next';
- const response = await fetch("/GarageApp/api/vehicles");
- console.log(response)
- const vehicles = await response.json();
- console.log(vehicles)
+const response = await fetch("/GarageApp/api/vehicles");
+// console.log(response)
+const vehicles = await response.json();
+// console.log(vehicles)
export default function YourVehicleList() {
const { t, i18n } = useTranslation();
// const response = await fetch("/GarageApp/api/vehicles");