Added some finishing touches here and there
This commit is contained in:
parent
ddd77d9f82
commit
656b1ba417
42 changed files with 9344 additions and 30 deletions
|
|
@ -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 (
|
||||
<div className="app">
|
||||
<div className="logo-container">
|
||||
<img src={logo} alt="Bun Logo" className="logo bun-logo" />
|
||||
<img src={reactLogo} alt="React Logo" className="logo react-logo" />
|
||||
</div>
|
||||
|
||||
<h1>Bun + React | GarageApp</h1>
|
||||
<p>
|
||||
Edit <code>src/App.tsx</code> and save to test HMR
|
||||
</p>
|
||||
|
||||
<h1>{t ('statistics')}</h1>
|
||||
|
||||
<AppBar position="static">
|
||||
</AppBar>
|
||||
<StatisticsView />
|
||||
<YourVehicleList></YourVehicleList>
|
||||
|
||||
<h1>test</h1>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ i18n
|
|||
backend: {
|
||||
loadPath: '/GarageApp/locales/{{lng}}/{{ns}}.json'
|
||||
},
|
||||
lng: 'da',
|
||||
lng: 'en',
|
||||
ns: ['translation']
|
||||
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
217
src/GarageApp/locales/de/translation.json
Normal file
217
src/GarageApp/locales/de/translation.json
Normal file
|
|
@ -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 <u>Kraftstoffeinheit</u> und der <u>Kraftstofftyp</u> im Fahrzeug richtig eingestellt sind.",
|
||||
"importhintcurrdist": "Stelle sicher, dass die <u>Währung</u> und die <u>Entfernungseinheit</u> 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": "<p>Zuerst musst du sicherstellen, dass das Deployment von Hammond die von Clarkson verwendete MySQL Datenbank erreichen kann.</p><p>Wenn dies nicht möglich ist kannst du eine Kopie erstellen die für Hammond erreichbar ist.</p><p>Wenn das erledigt ist, füge hier den Connection String im folgenden Format ein.</p><p>Alle aus Clarkson importierten Nutzer bekommen ihren Benutzernamen als E-Mail und das Passwort wird geändert zu <span class='' style='font-weight:bold'>hammond</span></p><code>user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local</code><br/><br/>",
|
||||
"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"
|
||||
}
|
||||
231
src/GarageApp/locales/fr/translation.json
Normal file
231
src/GarageApp/locales/fr/translation.json
Normal file
|
|
@ -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 <u>Fuel Unit</u> and <u>Fuel Type</u> are correctly set in the Vehicle.",
|
||||
"importhintcurrdist": "Soyez sûre que la <u>Monnaie</u> et l'<u>Unité de distance</u> 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": "<p>Vous devez vous assurer que ce déploiement de Hammond peut accéder à la base de données MySQL utilisée par Clarkson.</p><p>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.</p><p>Une fois cela fait, entrez la chaîne de connexion à l'instance MySQL au format suivant.</p><p>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 <span class='' style='font-weight:bold'>hammond</span></p><code>user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local</code><br/><br/>",
|
||||
"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"
|
||||
}
|
||||
231
src/GarageApp/locales/hu/translation.json
Normal file
231
src/GarageApp/locales/hu/translation.json
Normal file
|
|
@ -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 <u>Üzemanyag egysége</u> és az <u>Üzemanyag Típúsa</u> helyesek a Jármű beállításaiban.",
|
||||
"importhintcurrdist": "Ellenőrizze, hogy a <u>Pénznem</u> és a <u>Távolság mértékegysége</u> 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": "<p>Biztosítania kell, hogy ez a Hammond telepítés el tudja érni a Clarkson által készített MySQL adatbázist.</p><p>Ha ez nem megoldható, készíthet egy másolatot az adatbázisról, és elhelyzheti olyan helyre amely elérhető innen.</p><p>Amikor ezzel kész van, Állítsa me a connection String-et a MySQL-hez a következő formátumban.</p><p>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 <span class='' style='font-weight:bold'>hammond</span> lesz</p><code>user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local</code><br/><br/>",
|
||||
"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"
|
||||
}
|
||||
|
|
@ -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" },
|
||||
];
|
||||
|
||||
|
|
|
|||
231
src/GarageApp/locales/sl/translation.json
Normal file
231
src/GarageApp/locales/sl/translation.json
Normal file
|
|
@ -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 <u>Enota za gorivo</u> in <u>Vrsta goriva</u> pravilno nameščeni pod Vozilo.",
|
||||
"importhintcurrdist": "Prepričajte se, da sta <u>Valuta</u> in <u>Enota razdalje</u> 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": "<p>Zagotoviti morate, da lahko ta uvedba Hammonda dostopa do baze podatkov MySQL, ki jo uporablja Clarkson.</p><p>Če to ni neposredno mogoče, lahko naredite kopijo te zbirke podatkov nekje, kjer je dostopna iz tega primerka.</p><p>Ko je to storjeno, vnesite povezovalni niz v primerek MySQL v naslednji obliki.</p><p>Vsi uporabniki, uvoženi iz Clarksona, bodo imeli svoje uporabniško ime kot e-pošto v bazi podatkov Clarkson in geslo nastavljeno na<span class='' style='font-weight:bold'>hammond</span></p><code>uporabnik:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4</code><br/><br/>",
|
||||
"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"
|
||||
}
|
||||
231
src/GarageApp/locales/zh/translation.json
Normal file
231
src/GarageApp/locales/zh/translation.json
Normal file
|
|
@ -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": "同样,请确保车辆中的<u>燃油单位</u>和<u>燃油类型</u>设置正确。",
|
||||
"importhintcurrdist": "确保在 Hammond 中正确设置了<u>货币</u>和<u>距离单位</u>。导入时不会从文件中自动检测货币,而是直接使用用户设置的货币。",
|
||||
"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": "<p>您需要此确保 Hammond 的部署可以访问 Clarkson 使用的 MySQL 数据库。</p><p>如果无法直接访问,可以在本实例可访问的地方复制该数据库。</p><p><完成后,按以下格式输入与 MySQL 实例的连接字符串。/p><p>所有从 Clarkson 导入的用户将使用原邮箱作为用户名,密码设置为<span class='' style='font-weight:bold'>hammond</span></p><code>user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local</code><br/><br/>",
|
||||
"success": "我们已成功从 Clarkson 迁移数据。您将很快被重定向到登录界面,在那里您可以使用现有的邮箱和密码(hammond)登录。"
|
||||
},
|
||||
"fresh": {
|
||||
"setupadminuser": "设置管理员用户",
|
||||
"yourpassword": "您的密码",
|
||||
"youremail": "您的邮箱",
|
||||
"yourname": "您的姓名",
|
||||
"success": "您已注册成功。您将很快被重定向到登录界面,登录后即可开始使用。"
|
||||
}
|
||||
},
|
||||
"roles": {
|
||||
"ADMIN": "管理员",
|
||||
"USER": "普通用户"
|
||||
},
|
||||
"profile": "配置文件",
|
||||
"processedon": "处理于",
|
||||
"enable": "启用",
|
||||
"disable": "禁用",
|
||||
"confirm": "继续",
|
||||
"labelforfile": "文件说明"
|
||||
}
|
||||
Binary file not shown.
176
src/GarageApp/modules/MenuBar.tsx
Normal file
176
src/GarageApp/modules/MenuBar.tsx
Normal file
|
|
@ -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 (
|
||||
<div className="menu-logo-container">
|
||||
<div className="menu-logo-image">
|
||||
<img src={logo} alt="Bun Logo" className="menu-logo bun-logo" />
|
||||
<img src={reactLogo} alt="React Logo" className="menu-logo react-logo" />
|
||||
</div>
|
||||
<div className="menu-logo-text">
|
||||
<h2>
|
||||
GarageApp
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
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 | HTMLElement>(null);
|
||||
const [anchorElUser, setAnchorElUser] = React.useState<null | HTMLElement>(null);
|
||||
|
||||
const handleOpenNavMenu = (event: React.MouseEvent<HTMLElement>) => {
|
||||
setAnchorElNav(event.currentTarget);
|
||||
};
|
||||
const handleOpenUserMenu = (event: React.MouseEvent<HTMLElement>) => {
|
||||
setAnchorElUser(event.currentTarget);
|
||||
};
|
||||
|
||||
const handleCloseNavMenu = () => {
|
||||
setAnchorElNav(null);
|
||||
};
|
||||
|
||||
const handleCloseUserMenu = () => {
|
||||
setAnchorElUser(null);
|
||||
};
|
||||
|
||||
return (
|
||||
<AppBar position="static">
|
||||
<Container>
|
||||
<Toolbar disableGutters>
|
||||
<GarageAppLogo sx={{ display: { xs: 'none', md: 'flex' }, mr: 1 }} />
|
||||
<Box sx={{ flexGrow: 1, display: { xs: 'end', md: 'none' } }}>
|
||||
<IconButton
|
||||
size="large"
|
||||
aria-label="account of current user"
|
||||
aria-controls="menu-appbar"
|
||||
aria-haspopup="true"
|
||||
onClick={handleOpenNavMenu}
|
||||
color="inherit"
|
||||
>
|
||||
<MenuIcon />
|
||||
</IconButton>
|
||||
<Menu
|
||||
id="menu-appbar"
|
||||
anchorEl={anchorElNav}
|
||||
anchorOrigin={{
|
||||
vertical: 'bottom',
|
||||
horizontal: 'left',
|
||||
}}
|
||||
keepMounted
|
||||
transformOrigin={{
|
||||
vertical: 'top',
|
||||
horizontal: 'left',
|
||||
}}
|
||||
open={Boolean(anchorElNav)}
|
||||
onClose={handleCloseNavMenu}
|
||||
sx={{ display: { xs: 'block', md: 'none' } }}
|
||||
>
|
||||
{pages.map((page) => (
|
||||
<MenuItem key={page} onClick={handleCloseNavMenu}>
|
||||
<Typography sx={{ textAlign: 'right' }}>{page}</Typography>
|
||||
</MenuItem>
|
||||
))}
|
||||
</Menu>
|
||||
</Box>
|
||||
<AdbIcon sx={{ display: { xs: 'flex', md: 'none' }, mr: 1 }} />
|
||||
<Typography
|
||||
variant="h5"
|
||||
noWrap
|
||||
component="a"
|
||||
href="#app-bar-with-responsive-menu"
|
||||
sx={{
|
||||
mr: 2,
|
||||
display: { xs: 'flex', md: 'none' },
|
||||
flexGrow: 1,
|
||||
fontFamily: 'monospace',
|
||||
fontWeight: 700,
|
||||
letterSpacing: '.3rem',
|
||||
color: 'inherit',
|
||||
textDecoration: 'none',
|
||||
}}
|
||||
>
|
||||
LOGO
|
||||
</Typography>
|
||||
<Box sx={{ flexGrow: 1, display: { xs: 'none', md: 'flex' } }}>
|
||||
{pages.map((page) => (
|
||||
<Button
|
||||
key={page}
|
||||
onClick={handleCloseNavMenu}
|
||||
sx={{ my: 2, color: 'white', display: 'block' }}
|
||||
>
|
||||
{page}
|
||||
</Button>
|
||||
))}
|
||||
</Box>
|
||||
<Box sx={{ flexGrow: 0 }}>
|
||||
<Tooltip title="Open settings">
|
||||
<IconButton onClick={handleOpenUserMenu} sx={{ p: 0 }}>
|
||||
<Avatar alt="Remy Sharp" src="/static/images/avatar/2.jpg" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
<Menu
|
||||
sx={{ mt: '45px' }}
|
||||
id="menu-appbar"
|
||||
anchorEl={anchorElUser}
|
||||
anchorOrigin={{
|
||||
vertical: 'top',
|
||||
horizontal: 'right',
|
||||
}}
|
||||
keepMounted
|
||||
transformOrigin={{
|
||||
vertical: 'top',
|
||||
horizontal: 'right',
|
||||
}}
|
||||
open={Boolean(anchorElUser)}
|
||||
onClose={handleCloseUserMenu}
|
||||
>
|
||||
{settings.map((setting) => (
|
||||
<MenuItem key={setting} onClick={handleCloseUserMenu}>
|
||||
<Typography sx={{ textAlign: 'center' }}>{setting}</Typography>
|
||||
</MenuItem>
|
||||
))}
|
||||
<MenuItem>
|
||||
<MenuLanguages onClose={handleCloseUserMenu} />
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
</Toolbar>
|
||||
</Container>
|
||||
</AppBar>
|
||||
);
|
||||
}
|
||||
export default ResponsiveAppBar;
|
||||
89
src/GarageApp/modules/MenuLanguages.tsx
Normal file
89
src/GarageApp/modules/MenuLanguages.tsx
Normal file
|
|
@ -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 | HTMLElement>(null);
|
||||
const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);
|
||||
const [selectedIndex, setSelectedIndex] = React.useState(1);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClickListItem = (event: React.MouseEvent<HTMLElement>) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
|
||||
|
||||
const handleLanguageSelect = (
|
||||
event: React.MouseEvent<HTMLElement>,
|
||||
index: number,
|
||||
) => {
|
||||
setSelectedIndex(index);
|
||||
handleLanguageChange(LANGUAGES[index]);
|
||||
closeAction;
|
||||
setAnchorEl(null);
|
||||
setAnchorElUser(null);
|
||||
};
|
||||
|
||||
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
|
||||
return (
|
||||
<Paper sx={{ minWidth: 320, maxWidth: '100%' }}>
|
||||
<ListItemButton
|
||||
id="language-button"
|
||||
aria-haspopup="listbox"
|
||||
aria-controls="language-menu"
|
||||
aria-label="Language"
|
||||
aria-expanded={open ? 'true' : undefined}
|
||||
onClick={handleClickListItem}
|
||||
>
|
||||
<ListItemText
|
||||
primary={t ('language')}
|
||||
secondary={i18n.resolvedLanguage}
|
||||
/>
|
||||
</ListItemButton>
|
||||
<Menu
|
||||
id="language-menu"
|
||||
anchorEl={anchorEl}
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
slotProps={{
|
||||
list: {
|
||||
'aria-labelledby': 'language-button',
|
||||
role: 'listbox',
|
||||
},
|
||||
}}
|
||||
>
|
||||
{LANGUAGES.map((lang, index) =>
|
||||
<MenuItem key={index} onClick={() => handleLanguageSelect(event, index)}>
|
||||
<ListItemIcon>
|
||||
<Icon icon={"circle-flags:" + lang.code} />
|
||||
</ListItemIcon>
|
||||
<ListItemText>{lang.label}</ListItemText>
|
||||
</MenuItem>
|
||||
)}
|
||||
</Menu>
|
||||
</Paper>
|
||||
)
|
||||
}
|
||||
13
src/GarageApp/modules/StatisticsView.tsx
Normal file
13
src/GarageApp/modules/StatisticsView.tsx
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import { useTranslation, withTranslation, Trans } from 'react-i18next';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
export default function StatisticsView() {
|
||||
const { t, i18n } = useTranslation();
|
||||
return (
|
||||
<h1>{t ('statistics')}</h1>
|
||||
)
|
||||
}
|
||||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue