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 @@
PasswordsImport & ExportTheme
- 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 @@
PasswordsImport & ExportTheme
- Language
+
Sign out