diff --git a/css/themes/dark.css b/css/themes/dark.css index 58b7033..3a8c843 100644 --- a/css/themes/dark.css +++ b/css/themes/dark.css @@ -102,6 +102,7 @@ textarea{ */ .mainMenuLink{ + background-color: #161B22 !important; color: #6B7280 !important; } @@ -116,6 +117,7 @@ textarea{ } .mainMenuMobileLink{ + background-color: #161B22 !important; color: #DFE5EB !important; } diff --git a/css/themes/light.css b/css/themes/light.css index 3f0c28d..8d7e3f4 100644 --- a/css/themes/light.css +++ b/css/themes/light.css @@ -102,6 +102,7 @@ textarea{ */ .mainMenuLink{ + background-color: #FFFFFF; color: #4B5563 !important; } @@ -116,6 +117,7 @@ textarea{ } .mainMenuMobileLink{ + background-color: #FFFFFF; color: #4B5563 !important; } diff --git a/export.html b/export.html index c1e2c14..c5cc784 100644 --- a/export.html +++ b/export.html @@ -32,9 +32,13 @@ Theme - - Language - + Sign out @@ -59,7 +63,13 @@ Passwords Import & Export Theme - Language + Sign out diff --git a/js/default-functions.js b/js/default-functions.js index 11e16bd..2f2e103 100644 --- a/js/default-functions.js +++ b/js/default-functions.js @@ -60,16 +60,10 @@ function changeTheme(){ } function changeLanguage(){ - switch(localStorage.lang){ - case "en": - localStorage.lang = "nl"; - break; - case "nl": - localStorage.lang = "sl"; - break; - default: - localStorage.lang = "en"; - break; + if(document.getElementById('mobile-menu').className == 'hidden pt-2 pb-3 space-y-1'){ + localStorage.lang = document.getElementById("lang-link").value; + }else{ + localStorage.lang = document.getElementById("lang-link-mobile").value; } location.reload(); } diff --git a/js/export.js b/js/export.js index 411add8..7bbf69c 100644 --- a/js/export.js +++ b/js/export.js @@ -19,20 +19,8 @@ switch(localStorage.theme){ break; } -switch(localStorage.lang){ - case "nl": - document.getElementById("lang-link").innerText = "Language (Dutch)"; - document.getElementById("lang-link-mobile").innerText = "Language (Dutch)"; - break; - case "sl": - document.getElementById("lang-link").innerText = "Language (Slovenian)"; - document.getElementById("lang-link-mobile").innerText = "Language (Slovenian)"; - break; - default: - document.getElementById("lang-link").innerText = "Language (English)"; - document.getElementById("lang-link-mobile").innerText = "Language (English)"; - break; -} +document.getElementById("lang-link").value = localStorage.lang; +document.getElementById("lang-link-mobile").value = localStorage.lang; document.getElementById("passky-backup-btn-text").innerText = lang[localStorage.lang]["backup"]; diff --git a/js/lang.js b/js/lang.js index 49d20cc..d7d08af 100644 --- a/js/lang.js +++ b/js/lang.js @@ -20,9 +20,9 @@ const lang = { "delete": "Delete", "import": "Import", "import_from": "Import from {name}", - "import_invalid": "Data in import is invalid!", - "import_success": "{success_number} passwords has been successfully imported!", - "import_errors": "{success_number} passwords has been successfully imported, but {error_number} passwords has not been imported!", + "import_invalid": "The data in your import is invalid!", + "import_success": "{success_number} passwords imported successfully!", + "import_errors": "{success_number} passwords imported successfully, but {error_number} passwords NOT imported!", "backup": "Backup", "export": "Export", "passwords": "Passwords", @@ -34,24 +34,78 @@ const lang = { "add_password_success": "Password has been added successfully", "change_password_success": "Password has been changed successfully", "remove_password_success": "Password has been removed successfully", - "edit_password": "Edit password", - "password_generator": "Password Generator", + "edit_password": "Change password", + "password_generator": "Generate password", "delete_password": "Delete password", - "delete_password_confirmation": "Are you sure you want to delete your password? Your password will be permanently removed from server forever. This action cannot be undone.", + "delete_password_confirmation": "Are you sure you want to delete your password? Your password will be permanently removed from the server. This action can NOT be undone.", "delete_account": "Delete account", "delete_account_info": "Once you delete your account, you will lose all data associated with it.", - "delete_account_confirmation": "Are you sure you want to delete your account? All of your data will be permanently removed from server forever. This action cannot be undone.", + "delete_account_confirmation": "Are you sure you want to delete your account? All of your data will be permanently removed from the server. This action can NOT be undone.", "url_invalid": "Server url is invalid!", "server_unreachable": "Server is unreachable!", "registration_completed": "Registration is completed!", - "dont_have_account_link": "Don't have account yet? Sign up here.", - "already_have_account_link": "Already have account? Sign in here.", - "username_validation": "Username must be between 3 and 255 character long and can't contain spaces!", - "username_validation2": "Username can't contains provided special characters: ' \" \\", - "password_validation": "Password must be between 8 and 255 character long and can't contain spaces!", - "password_validation2": "Password can't contains provided special characters: ' \" \\", - "website_validation": "Website much be between 5 and 255 character long and can't contain spaces!", - "website_validation2": "Website can't contains provided special characters: ' \" \\" + "dont_have_account_link": "Don't have an account yet? Sign up here.", + "already_have_account_link": "Already registered? Sign in here.", + "username_validation": "Username should be between 3 to 255 characters long and can not contain any spaces!", + "username_validation2": "Username may not contain the following special characters: ' \" \\", + "password_validation": "Password should be from 8 to 255 characters long and can not contain any spaces!", + "password_validation2": "Password may not contain provided special characters: ' \" \\", + "website_validation": "Website should be from 5 to 255 characters long, and must not have any spaces!", + "website_validation2": "Website may not contain the following special characters: ' \" \\" + }, + "de": { + "server": "Server", + "website": "Webseite", + "username": "Nutzername", + "email": "Email", + "password": "Passwort", + "signin": "Anmelden", + "signup": "Anmelden", + "signout": "Abmelden", + "okay": "Okay", + "add": "Hinzufügen", + "change": "änderung", + "use": "benutzen", + "copy": "Kopieren", + "cancel": "Abbrechen", + "try_again": "Versuchen Sie es erneut", + "success": "ERFOLG", + "error": "FEHLER", + "delete": "Löschen", + "import": "Importieren", + "import_from": "Importieren von {name}", + "import_invalid": "Daten beim Import sind ungültig!", + "import_success": "{success_number} passwörter wurden erfolgreich importiert!", + "import_errors": "{success_number} passwörter wurden erfolgreich importiert, aber {error_number} Passwörter wurden nicht importiert!", + "backup": "Backup", + "export": "Exportieren", + "passwords": "Passwörter", + "import_export": "Import & Export", + "theme": "Thema", + "search": "Suche", + "length": "Länge", + "add_password": "Passwort hinzufügen", + "add_password_success": "Passwort wurde erfolgreich hinzugefügt", + "change_password_success": "Passwort wurde erfolgreich geändert", + "remove_password_success": "Passwort wurde erfolgreich entfernt", + "edit_password": "Passwort bearbeiten", + "password_generator": "Passwort Generator", + "delete_password": "Passwort löschen", + "delete_password_confirmation": "Sind Sie sicher, dass Sie Ihr Passwort löschen möchten? Ihr Passwort wird für immer vom Server entfernt. Diese Aktion kann nicht rückgängig gemacht werden.", + "delete_account": "Konto löschen", + "delete_account_info": "Sobald Sie Ihr Konto löschen, verlieren Sie alle damit verbundenen Daten.", + "delete_account_confirmation": "Sind Sie sicher, dass Sie Ihr Konto löschen möchten? Alle Ihre Daten werden für immer vom Server entfernt. Diese Aktion kann nicht rückgängig gemacht werden.", + "url_invalid": "Server-URL ist ungültig!", + "server_unreachable": "Server ist nicht erreichbar!", + "registration_completed": "Registrierung ist abgeschlossen!", + "dont_have_account_link": "Sie haben noch kein Konto? Melden Sie sich hier an.", + "already_have_account_link": "Sie haben bereits ein Konto? Melden Sie sich hier an.", + "username_validation": "Der Benutzername muss zwischen 3 und 255 Zeichen lang sein und darf keine Leerzeichen enthalten!", + "username_validation2": "Benutzername darf keine angegebenen Sonderzeichen enthalten: ' \" \\", + "password_validation": "Passwort muss zwischen 8 und 255 Zeichen lang sein und darf keine Leerzeichen enthalten!", + "password_validation2": "Passwort darf keine angegebenen Sonderzeichen enthalten: ' \" \\", + "website_validation": "Website kann zwischen 5 und 255 Zeichen lang sein und darf keine Leerzeichen enthalten!", + "website_validation2": "Website darf keine angegebenen Sonderzeichen enthalten: ' \" \\" }, "nl": { "server": "Server", @@ -160,6 +214,60 @@ const lang = { "password_validation2": "Geslo ne more vsebovati predvidenih posebnih znakov: ' \" \\", "website_validation": "Spletno mesto mora biti dolgo med 5 in 255 znaki in ne sme vsebovati presledkov!", "website_validation2": "Spletno mesto ne more vsebovati predvidenih posebnih znakov: ' \" \\" + }, + "bs": { + "server": "Server", + "website": "Web stranica", + "username": "Korisničko ime", + "email": "Email", + "password": "Lozinka", + "signin": "Prijava", + "signup": "Registracija", + "signout": "Odjava", + "okay": "U redu", + "add": "Dodaj", + "change": "Promjena", + "use": "Upotrebi", + "copy": "Kopiraj", + "cancel": "Odustani", + "try_again": "Pokušaj ponovo", + "success": "USPJEH", + "error": "GREŠKA", + "delete": "Izbriši", + "import": "Uvoz", + "import_from": "Uvoz iz {name}", + "import_invalid": "Podaci u uvozu su nevaljani!", + "import_success": "Lozinka za {success_number} je uspješno uvezena!", + "import_errors": "Lozinke za {success_number} su uspješno uvezene, ali lozinke za {error_number} nisu uvezene!", + "backup": "Sigurnosna kopija", + "export": "Izvoz", + "passwords": "Lozinke", + "import_export": "Uvoz i izvoz", + "theme": "Teme", + "search": "Pretraži", + "length": "Dužina", + "add_password": "Dodaj lozinku", + "add_password_success": "Lozinka je uspješno dodana", + "change_password_success": "Lozinka je uspješno promijenjena", + "remove_password_success": "Lozinka je uspješno uklonjena", + "edit_password": "Uredi lozinku", + "password_generator": "Generator lozinki", + "delete_password": "Izbriši lozinku", + "delete_password_confirmation": "Jeste li sigurni da želite izbrisati lozinku? Vaša lozinka će biti zauvijek uklonjena sa servera. Ova radnja se ne može poništiti.", + "delete_account": "Obriši račun", + "delete_account_info": "Jednom kada izbrišete svoj račun, izgubit ćete sve podatke povezane s njim.", + "delete_account_confirmation": "Jeste li sigurni da želite izbrisati svoj račun? Svi će vaši podaci biti zauvijek uklonjeni sa servera. Ova radnja se ne može poništiti.", + "url_invalid": "Server url is invalid!", + "server_unreachable": "Server je nedostupan", + "registration_completed": "Registracija je završena!", + "dont_have_account_link": "Još nemate račun? Registrirajte se ovdje.", + "already_have_account_link": "Već imate račun? Prijavite se ovdje.", + "username_validation": "Korisničko ime mora imati između 3 i 255 znakova i ne smije sadržavati razmake!", + "username_validation2": "Korisničko ime ne može sadržavati posebne znakove: ' \" \\", + "password_validation": "Lozinka mora imati između 8 i 255 znakova i ne smije sadržavati razmake!", + "password_validation2": "Lozinka ne može sadržavati posebne znakove: ' \" \\", + "website_validation": "Web stranica može biti dugačka između 5 i 255 znakova i ne može sadržavati razmake!", + "website_validation2": "Web stranica ne može sadržavati posebne znakove: ' \" \\" } } @@ -168,27 +276,53 @@ const errors = { "0": "Successful", "1": "Username is invalid!", "2": "Password is incorrect!", - "3": "Something went wrong while inserting data to database!", + "3": "Something went wrong while uploading data to the database!", "4": "Username is already registered!", - "5": "Password must be between 8 and 255 characters long and have at least one letter, one number and one special character!", + "5": "Password must be 8 to 255 characters long, have at least one letter, one number and one special character!", "6": "Email is invalid!", - "7": "Username doesn't exist!", + "7": "Username does not exist!", "8": "You don't have any saved password.", "9": "Domain is invalid!", "10": "User does not own this password!", "11": "Something went wrong while deleting data from database!", - "12": "Username must be between 6 and 30 characters long and can only contains letters, numbers and dots!", + "12": "Username must be 6 to 30 characters long, and may only contain letters, numbers and dots!", "13": "Something went wrong while updating data in database!", "14": "Json is invalid!", - "15": "This server can't accept more users!", - "16": "You have reached maximum amount of stored passwords!", + "15": "This server cannot accept more users!", + "16": "You have reached the maximum amount of stored passwords!", "400": "Action was not provided in POST!", "401": "Action is invalid!", "403": "You didn't provide all required values in POST.", "404": "Can't connect into API.", - "429": "You are sending too many requests! Please wait some time before executing this action.", - "505": "Something went wrong while connecting to database!", - "999": "You don't have permission to use this endpoint." + "429": "You are sending too many requests! Please wait before executing this action again.", + "505": "Something went wrong while connecting to the database!", + "999": "You do NOT have permission to use this endpoint." + }, + "de": { + "0": "Erfolgreich", + "1": "Benutzername ist ungültig!", + "2": "Passwort ist falsch!", + "3": "Beim Einfügen von Daten in die Datenbank ist etwas schief gelaufen!", + "4": "Benutzername ist bereits registriert!", + "5": "Passwort muss zwischen 8 und 255 Zeichen lang sein und mindestens einen Buchstaben, eine Zahl und ein Sonderzeichen enthalten!", + "6": "E-Mail ist ungültig!", + "7": "Benutzername existiert nicht!", + "8": "Sie haben kein gespeichertes Passwort.", + "9": "Domain ist ungültig!", + "10": "Benutzer besitzt dieses Passwort nicht!", + "11": "Beim Löschen der Daten aus der Datenbank ist ein Fehler aufgetreten!", + "12": "Der Benutzername muss zwischen 6 und 30 Zeichen lang sein und darf nur Buchstaben, Zahlen und Punkte enthalten!", + "13": "Beim Aktualisieren der Daten in der Datenbank ist etwas schief gelaufen!", + "14": "Json ist ungültig!", + "15": "Dieser Server kann keine weiteren Benutzer akzeptieren!", + "16": "Sie haben die maximale Anzahl gespeicherter Passwörter erreicht!", + "400": "Aktion wurde im POST nicht bereitgestellt!", + "401": "Aktion ist ungültig!", + "403": "Sie haben nicht alle erforderlichen Werte im POST angegeben.", + "404": "Kann keine Verbindung zur API herstellen.", + "429": "Sie senden zu viele Anfragen! Bitte warten Sie einige Zeit, bevor Sie diese Aktion ausführen.", + "505": "Beim Verbinden mit der Datenbank ist etwas schief gelaufen!", + "999": "Sie sind nicht berechtigt, diesen Endpunkt zu verwenden." }, "nl": { "0": "Voltooid", @@ -241,5 +375,31 @@ const errors = { "429": "Pošiljate preveč zahtev! Počakajte nekaj časa, preden izvedete to dejanje. ", "505": "Med povezovanjem z bazo podatkov je prišlo do napake!", "999": "Nimate dovoljenja za uporabo te točke." + }, + "bs": { + "0": "Uspješno", + "1": "Korisničko ime je nevažeće!", + "2": "Lozinka je netačna!", + "3": "Nešto je naopako prilikom umetanja podataka u bazu podataka!", + "4": "Korisničko ime je već registrovano", + "5": "Lozinka mora imati između 8 i 255 znakova i mora sadržavati najmanje jedno slovo, jedan broj i jedan specijalni znak!", + "6": "Email adresa je nevažeća!", + "7": "Korisničko ime ne postoji!", + "8": "You don't have any saved password.", + "9": "Domena je nevaljana!", + "10": "Korisnik nije vlasnik ove lozinke!", + "11": "Nešto je pošlo naopako prilikom brisanja podataka iz baze podataka!", + "12": "Korisničko ime mora imati između 6 i 30 znakova i može sadržavati samo slova, brojeve i tačke!", + "13": "Nešto je pošlo naopako prilikom ažuriranja podataka u bazi podataka!", + "14": "Json je nevaljan!", + "15": "Ovaj poslužitelj ne može prihvatiti više korisnika!", + "16": "Dosegli ste maksimalnu količinu sačuvanih lozinki", + "400": "Akcija nije osigurana u POST-u!", + "401": "Akcija je nevažeća!", + "403": "Niste naveli sve potrebne vrijednosti u POST-u.", + "404": "Ne može se povezati na API", + "429": "You are sending too many requests! Please wait some time before executing this action.", + "505": "Nešto je pošlo naopako prilikom povezivanja na bazu podataka!", + "999": "Nemate dozvolu za upotrebu ovog endpointa." } -} \ No newline at end of file +} diff --git a/js/passwords.js b/js/passwords.js index c217437..d488d8e 100644 --- a/js/passwords.js +++ b/js/passwords.js @@ -19,20 +19,8 @@ switch(localStorage.theme){ break; } -switch(localStorage.lang){ - case "nl": - document.getElementById("lang-link").innerText = "Language (Dutch)"; - document.getElementById("lang-link-mobile").innerText = "Language (Dutch)"; - break; - case "sl": - document.getElementById("lang-link").innerText = "Language (Slovenian)"; - document.getElementById("lang-link-mobile").innerText = "Language (Slovenian)"; - break; - default: - document.getElementById("lang-link").innerText = "Language (English)"; - document.getElementById("lang-link-mobile").innerText = "Language (English)"; - break; -} +document.getElementById("lang-link").value = localStorage.lang; +document.getElementById("lang-link-mobile").value = localStorage.lang; document.getElementById("search").placeholder = lang[localStorage.lang]["search"]; document.getElementById("add-password-btn").innerText = lang[localStorage.lang]["add_password"]; diff --git a/passwords.html b/passwords.html index d889d90..9f1d0f2 100644 --- a/passwords.html +++ b/passwords.html @@ -32,9 +32,13 @@ Theme - - Language - + Sign out @@ -67,7 +71,13 @@ Passwords Import & Export Theme - Language + Sign out