浏览代码

Allow a password length > 35 chars. Only display a warning.

Fixes: https://github.com/lesspass/lesspass/issues/322
pull/342/head
Guillaume Vincent 6 年前
父节点
当前提交
c9d42e5f0a
共有 9 个文件被更改,包括 27 次插入30 次删除
  1. +10
    -8
      scripts/buildI18n.js
  2. +1
    -3
      src/i18n/de.json
  3. +1
    -3
      src/i18n/en.json
  4. +1
    -3
      src/i18n/es.json
  5. +1
    -3
      src/i18n/fr.json
  6. +1
    -3
      src/i18n/pt.json
  7. +1
    -3
      src/i18n/zh-CN.json
  8. +1
    -3
      src/i18n/zh.json
  9. +10
    -1
      src/views/PasswordGenerator.vue

+ 10
- 8
scripts/buildI18n.js 查看文件

@@ -21,7 +21,7 @@ walker.on("file", (root, fileStats, next) => {
});

const I18N_DIR = "../src/i18n";
const LANGUAGES_AVAILABLE = ["zh", "zh-CN", "fr", "es", "de", "en"];
const LANGUAGES_AVAILABLE = ["zh", "zh-CN", "fr", "es", "de", "en", "pt"];
walker.on("end", () => {
LANGUAGES_AVAILABLE.forEach(lang => {
const localeFile = path.join(I18N_DIR, `${lang}.json`);
@@ -31,13 +31,15 @@ walker.on("end", () => {
}

const localeOrdered = {};
Object.keys(locale).sort().forEach(function(key) {
if (key in existingLocale) {
localeOrdered[key] = existingLocale[key];
} else {
localeOrdered[key] = locale[key];
}
});
Object.keys(locale)
.sort()
.forEach(function(key) {
if (key in existingLocale) {
localeOrdered[key] = existingLocale[key];
} else {
localeOrdered[key] = locale[key];
}
});
fs.writeFileSync(localeFile, JSON.stringify(localeOrdered, null, 2));
fs.appendFileSync(localeFile, "\n");
});


+ 1
- 3
src/i18n/de.json 查看文件

@@ -5,7 +5,6 @@
"CounterFieldHelp": "Erhöhen Sie diesen Wert, um das zu erstellende Passwort zu ändern, ohne Ihr Masterpasswort zu ändern.",
"CreatePassword": "Möchten Sie eines erstellen?",
"DBNotRunning": "Ihre LessPass Datenbank läuft nicht",
"DefaultOptionLocalStorage": "Wir benutzen den Cache Ihres Browsers, um Ihre Einstellungen als Standard lokal zu speichern. Jedesmal, wenn Sie die App öffnen, werden diese Einstellungen geladen.",
"Email": "email",
"EmailAlreadyExist": "Diese email-Adresse ist bereits registriert. Möchten Sie sich einloggen oder Ihr Passwort wiederherstellen?",
"EmailInvalid": "Bitte geben Sie eine gültige email-Adresse ein",
@@ -14,6 +13,7 @@
"ForgotPassword": "Passwort vergessen?",
"Generate": "Erstelle",
"Length": "Länge",
"LengthDeprecationWarning": "The maximum length of a password is 35 characters.",
"LessPass Database Url": "LessPass Datenbank Url",
"Login": "Login",
"LoginFormInvalid": "LessPass URL, email-Adresse und Passwort sind obligatorisch",
@@ -29,13 +29,11 @@
"Register": "Registrieren",
"Reset my password": "Mein Passwort zurücksetzen",
"ResetLinkExpired": "Der Link zum Zurücksetzen des Passworts ist abgelaufen.",
"Save options": "Optionen speichern",
"Sign In": "Anmelden",
"Site": "Seite",
"SiteLoginMasterPasswordMandatory": "Die Felder für Seite, Anmeldename und Masterpasswort sind obligatorisch.",
"SorryCopy": "Es tut uns leid, dass die Kopie nur auf modernen Browsern funktioniert",
"UpdateYourSearch": "Bitte erweitern Sie Ihre Suche.",
"WelcomeRegister": "Willkommen {email}, danke für die Anmeldung.",
"Your options have been saved successfully": "Ihre Optionen wurden erfolgreich gespeichert",
"resetPasswordSuccess": "Wenn die E-Mail-Adresse {email} mit einem LessPass-Konto verknüpft ist, erhalten Sie in Kürze eine E-Mail von LessPass mit Anweisungen zum Zurücksetzen Ihres Passworts."
}

+ 1
- 3
src/i18n/en.json 查看文件

@@ -5,7 +5,6 @@
"CounterFieldHelp": "Increment this value to change the generated password without changing your master password.",
"CreatePassword": "Would you like to create one?",
"DBNotRunning": "Your LessPass Database is not running",
"DefaultOptionLocalStorage": "We use local storage to save default options locally. Each time you open the app, these options will be loaded by default.",
"Email": "Email",
"EmailAlreadyExist": "This email is already registered. Want to login or recover your password?",
"EmailInvalid": "Please enter a valid email",
@@ -14,6 +13,7 @@
"ForgotPassword": "Forgot your password?",
"Generate": "Generate",
"Length": "Length",
"LengthDeprecationWarning": "Die maximale Länge eines Passwortes beträgt 35 Zeichen.",
"LessPass Database Url": "LessPass Database Url",
"Login": "Login",
"LoginFormInvalid": "LessPass URL, email, and password are mandatory",
@@ -29,13 +29,11 @@
"Register": "Register",
"Reset my password": "Reset my password",
"ResetLinkExpired": "This password reset link has expired.",
"Save options": "Save options",
"Sign In": "Sign In",
"Site": "Site",
"SiteLoginMasterPasswordMandatory": "Site, login, and master password fields are mandatory.",
"SorryCopy": "We are sorry the copy only works on modern browsers",
"UpdateYourSearch": "Please try broadening your search.",
"WelcomeRegister": "Welcome {email}, thank you for signing up.",
"Your options have been saved successfully": "Your options have been saved successfully",
"resetPasswordSuccess": "If the email address {email} is associated with a LessPass account, you will shortly receive an email from LessPass with instructions on how to reset your password."
}

+ 1
- 3
src/i18n/es.json 查看文件

@@ -5,7 +5,6 @@
"CounterFieldHelp": "Aumente este valor para cambiar la contraseña generada sin cambiar su contraseña maestra.",
"CreatePassword": "¿Quiere crear una?",
"DBNotRunning": "Su base de datos de LessPass no está ejecutando",
"DefaultOptionLocalStorage": "Usamos almacenamiento local para guardar las opciones predeterminadas de forma local. Cada vez que abre la aplicación, estas opciones se cargan de forma predeterminada",
"Email": "Correo electrónico",
"EmailAlreadyExist": "Este correo electrónico ya está registrado. ¿Quiere iniciar sesión o recuperar su contraseña?",
"EmailInvalid": "Ingrese un correo elecrónico válido",
@@ -14,6 +13,7 @@
"ForgotPassword": "¿Olvidó su contraseña?",
"Generate": "Generar",
"Length": "Tamaño",
"LengthDeprecationWarning": "La longitud máxima de una contraseña es de 35 caracteres.",
"LessPass Database Url": "URL de la base de datos LessPass",
"Login": "Iniciar sesión",
"LoginFormInvalid": "URL, correo electrónico y contraseña de LessPass URL son obligatorios",
@@ -29,13 +29,11 @@
"Register": "Registrar",
"Reset my password": "Reestablecer mi contraseña",
"ResetLinkExpired": "El enlace para reestablecer esta contraseña ha expirado.",
"Save options": "Guardar opciones",
"Sign In": "Registrarse",
"Site": "Sitio",
"SiteLoginMasterPasswordMandatory": "Los campos sitio, usuario y contraseña maestra son obligatorios.",
"SorryCopy": "Lamentamos que la copia sólo funcione en navegadores modernos",
"UpdateYourSearch": "Trate de ampliar su búsqueda.",
"WelcomeRegister": "Bienvenido o bienvenida {email}, gracias por registrarse.",
"Your options have been saved successfully": "Sus opciones se han guardado correctamente",
"resetPasswordSuccess": "Si la dirección de correo electrónico {email} está asociada a una cuenta LessPass, recibirá un correo electrónico de LessPass con instrucciones sobre cómo restablecer su contraseña."
}

+ 1
- 3
src/i18n/fr.json 查看文件

@@ -5,7 +5,6 @@
"CounterFieldHelp": "Augmenter cette valeur pour changer de mot de passe sans changer de mot de passe fort.",
"CreatePassword": "Voulez-vous en créer un ?",
"DBNotRunning": "Votre base de données LessPass n'est pas démarrée.",
"DefaultOptionLocalStorage": "Pour enregistrer les options par défaut, nous utilisons le stockage du navigateur. Chaque fois que vous ouvrez l'application, ces options sont chargées par defaut.",
"Email": "Email",
"EmailAlreadyExist": "Cet email est déjà enregistré. Vous voulez peut-être vous connecter ?",
"EmailInvalid": "Entrez un email valide",
@@ -14,6 +13,7 @@
"ForgotPassword": "Mot de passe oublié ?",
"Generate": "Générer",
"Length": "Longueur",
"LengthDeprecationWarning": "La longueur maximale d'un mot de passe est de 35 caractères.",
"LessPass Database Url": "URL de la base de données LessPass",
"Login": "Login",
"LoginFormInvalid": "L'URL LessPass, l'email et le mot de passe sont obligatoires.",
@@ -29,13 +29,11 @@
"Register": "S'enregistrer",
"Reset my password": "Changer mon mot de passe",
"ResetLinkExpired": "Ce lien a expiré.",
"Save options": "Enregistrer les options",
"Sign In": "Se connecter",
"Site": "Site",
"SiteLoginMasterPasswordMandatory": "Les champs site, login et mot de passe fort sont obligatoires.",
"SorryCopy": "Nous sommes désolés, la copie ne fonctionne que sur les navigateurs modernes",
"UpdateYourSearch": "Merci de modifier votre recherche.",
"WelcomeRegister": "Bienvenue {email}, merci de vous être enregistré.",
"Your options have been saved successfully": "Vos options ont été enregistrées avec succès",
"resetPasswordSuccess": "Si l'adresse email {email} est associée avec un compte LessPass, vous allez recevoir un email de la part de LessPass avec les instructions pour changer votre mot de passe."
}

+ 1
- 3
src/i18n/pt.json 查看文件

@@ -5,7 +5,6 @@
"CounterFieldHelp": "Incremente este valor para mudar a senha gerada sem mudar sua senha mestre.",
"CreatePassword": "Gostaria de criar um?",
"DBNotRunning": "Seu banco de dados LessPass não está rodando",
"DefaultOptionLocalStorage": "Nós salvamos as opções padrão no armazenamento local. Cada vez que você abrir o aplicativo, essas opções serão carregadas por padrão.",
"Email": "Email",
"EmailAlreadyExist": "Este email já foi registrado. Gostaria de entrar ou recuperar sua senha?",
"EmailInvalid": "Por favor entre um email válido",
@@ -14,6 +13,7 @@
"ForgotPassword": "Esqueceu sua senha?",
"Generate": "Gerar",
"Length": "Comprimento",
"LengthDeprecationWarning": "O comprimento máximo de uma senha é de 35 caracteres.",
"LessPass Database Url": "URL do banco de dados LessPass",
"Login": "Entrar",
"LoginFormInvalid": "URL, email, e senha do LessPass são obrigatórios",
@@ -29,13 +29,11 @@
"Register": "Registrar",
"Reset my password": "Resetar minha senha",
"ResetLinkExpired": "Esse link para resetar a senha já expirou.",
"Save options": "Salvar opções",
"Sign In": "Se autenticar",
"Site": "Site",
"SiteLoginMasterPasswordMandatory": "Campos de site e credenciais de autenticação são obrigatórios.",
"SorryCopy": "Infelizmente a cópia somente funciona em navegadores modernos",
"UpdateYourSearch": "Por favor tente ampliar sua busca.",
"WelcomeRegister": "Bem vindo {email}, obrigado por se registrar.",
"Your options have been saved successfully": "Suas opções foram salvas com sucesso",
"resetPasswordSuccess": "Se o seu endereço de email {email} estiver associado com uma conta LessPass, você receberá logo um email do LessPass com instruções de como resetar a sua senha."
}

+ 1
- 3
src/i18n/zh-CN.json 查看文件

@@ -5,7 +5,6 @@
"CounterFieldHelp": "增加这个值就可以在不改变主密码的前提下生成全新的密码。",
"CreatePassword": "您要生成一个密码吗?",
"DBNotRunning": "您的 LessPass 数据库没有运行",
"DefaultOptionLocalStorage": "我们使用“本地存储”在本机保存默认选项。每次您开启本应用时,会默认加载这些选项。",
"Email": "邮件地址",
"EmailAlreadyExist": "这个邮件地址已被注册。登录或找回您的密码?",
"EmailInvalid": "请输入一个有效的电子邮件地址",
@@ -14,6 +13,7 @@
"ForgotPassword": "忘记了您的密码?",
"Generate": "生成",
"Length": "长度",
"LengthDeprecationWarning": "密码的最大长度是35个字符。",
"LessPass Database Url": "LessPass 数据库网址",
"Login": "登录名",
"LoginFormInvalid": "LessPass 网址、电子邮件地址以及密码均为必填信息。",
@@ -29,13 +29,11 @@
"Register": "注册",
"Reset my password": "重置我的登录密码",
"ResetLinkExpired": "此登录密码重置链接已过期。",
"Save options": "保存选项",
"Sign In": "登录",
"Site": "网站名",
"SiteLoginMasterPasswordMandatory": "网站名、登录名以及主密码均为必填信息。",
"SorryCopy": "很抱歉,但复制功能仅适用于现代浏览器",
"UpdateYourSearch": "请尝试放宽您的搜索条件。",
"WelcomeRegister": "你好 {email},欢迎您的注册。",
"Your options have been saved successfully": "您的选项已成功保存",
"resetPasswordSuccess": "如果电子邮件地址 {email} 与一个 LessPass 账户相关联,您将很快收到 LessPass 的电子邮件,里面提供有重置密码的操作说明。"
}

+ 1
- 3
src/i18n/zh.json 查看文件

@@ -5,7 +5,6 @@
"CounterFieldHelp": "改變這個值,就可以在不改變主密碼的狀況下,產生新的密碼。",
"CreatePassword": "您要產生一組密碼嗎?",
"DBNotRunning": "您的 LessPass 資料庫並未執行",
"DefaultOptionLocalStorage": "我們將預設選項儲存在本機。每當您開啟程式,這些設定將會被自動載入。",
"Email": "郵件位址",
"EmailAlreadyExist": "這個郵件位址已被註冊。想要登入或取回您的密碼嗎?",
"EmailInvalid": "請輸入一個有效的郵件位址",
@@ -14,6 +13,7 @@
"ForgotPassword": "忘記您的登入密碼了嗎?",
"Generate": "產生",
"Length": "長度",
"LengthDeprecationWarning": "密碼的最大長度是35個字符。",
"LessPass Database Url": "LessPass數據庫URL",
"Login": "登入帳號",
"LoginFormInvalid": "LessPass URL、郵件位址、登入密碼皆為必填欄位。",
@@ -29,13 +29,11 @@
"Register": "註冊",
"Reset my password": "重置我的登入密碼",
"ResetLinkExpired": "此登入密碼重設連結已過期。",
"Save options": "保存選項",
"Sign In": "登入",
"Site": "網站位址",
"SiteLoginMasterPasswordMandatory": "網站位址、登入帳號、主密碼皆為必填欄位。",
"SorryCopy": "我們很抱歉,該副本僅適用於現代瀏覽器",
"UpdateYourSearch": "請試著放寬您的搜尋條件。",
"WelcomeRegister": "歡迎 {email},謝謝您的註冊。",
"Your options have been saved successfully": "您的選項已成功保存",
"resetPasswordSuccess": "如果电子邮件地址 {email} 与LessPass帐户相关联,您将很快收到LessPass的电子邮件,并提供如何重置密码的说明。"
}

+ 10
- 1
src/views/PasswordGenerator.vue 查看文件

@@ -12,7 +12,7 @@ div.awesomplete > ul {
}
</style>
<template>
<form id="password-generator" v-on:submit.prevent="generatePassword">
<form id="password-generator" v-on:submit.prevent="generatePassword" novalidate>
<div class="form-group">
<input-site ref="site"
v-model="password.site"
@@ -193,6 +193,15 @@ export default {
);
return;
}
const length = this.password.length;
if (length > 35){
message.warning(
this.$t(
"LengthDeprecationWarning",
"The maximum length of a password is 35 characters."
)
);
}
this.cleanErrors();
const passwordProfile = {
lowercase: this.password.lowercase,


正在加载...
取消
保存