فهرست منبع

Merge pull request #28540 from overleaf/oa-punctuation

[web] Notification punctuation

GitOrigin-RevId: ba20f0049a5f72f3ba03917d9fe76b220adffcf0
Olzhas Askar 10 ماه پیش
والد
کامیت
d11674a51f

+ 1 - 1
services/web/locales/cs.json

@@ -154,7 +154,7 @@
   "month": "měsíc",
   "month": "měsíc",
   "monthly": "Měsíční",
   "monthly": "Měsíční",
   "more": "Více",
   "more": "Více",
-  "must_be_email_address": "Musíte zadat emailovou adresu",
+  "must_be_email_address": "Musíte zadat emailovou adresu.",
   "name": "Jméno",
   "name": "Jméno",
   "native": "Výchozí",
   "native": "Výchozí",
   "navigation": "Pro navigaci",
   "navigation": "Pro navigaci",

+ 12 - 12
services/web/locales/da.json

@@ -885,13 +885,13 @@
   "invalid_file_name": "Ugyldigt filnavn",
   "invalid_file_name": "Ugyldigt filnavn",
   "invalid_filename": "Overførsel mislykkedes: Check, at filnavnet ikke indeholder specialtegn eller ekstra mellemrum, og at det er kortere end __nameLimit__ tegn",
   "invalid_filename": "Overførsel mislykkedes: Check, at filnavnet ikke indeholder specialtegn eller ekstra mellemrum, og at det er kortere end __nameLimit__ tegn",
   "invalid_institutional_email": "Din institutions SSO-tjeneste returnerede __email__ som din e-mailadresse, hvilket ligger under et domæne, som vi ikke forventede, og ikke kan se tilhører den institution. Du kan muligvis ændre din primære e-mailadresse via din brugerprofil hos din institution til én, som ligger under din institutions domæne. Hvis du har spørgsmål er det bedst, hvis du kontakter din institutions IT-afdeling.",
   "invalid_institutional_email": "Din institutions SSO-tjeneste returnerede __email__ som din e-mailadresse, hvilket ligger under et domæne, som vi ikke forventede, og ikke kan se tilhører den institution. Du kan muligvis ændre din primære e-mailadresse via din brugerprofil hos din institution til én, som ligger under din institutions domæne. Hvis du har spørgsmål er det bedst, hvis du kontakter din institutions IT-afdeling.",
-  "invalid_password": "Ugyldigt password",
-  "invalid_password_contains_email": "Kodeordet kan ikke indeholde dele af e-mailadressen",
-  "invalid_password_invalid_character": "Kodeordet indeholder et ugyldigt tegn",
-  "invalid_password_not_set": "Kodeordet er påkrævet",
-  "invalid_password_too_long": "Maksimal kodelængde på __maxLength__ er overskredet",
-  "invalid_password_too_short": "Kodeordet er for kort, den skal være minimum __minLength__ tegn",
-  "invalid_password_too_similar": "Kodeordet ligner e-mailaddressen for meget",
+  "invalid_password": "Ugyldigt password.",
+  "invalid_password_contains_email": "Kodeordet kan ikke indeholde dele af e-mailadressen.",
+  "invalid_password_invalid_character": "Kodeordet indeholder et ugyldigt tegn.",
+  "invalid_password_not_set": "Kodeordet er påkrævet.",
+  "invalid_password_too_long": "Maksimal kodelængde på __maxLength__ er overskredet.",
+  "invalid_password_too_short": "Kodeordet er for kort, den skal være minimum __minLength__ tegn.",
+  "invalid_password_too_similar": "Kodeordet ligner e-mailaddressen for meget.",
   "invalid_request": "Ugyldig forespørgsel. Ret dataen og prøv igen.",
   "invalid_request": "Ugyldig forespørgsel. Ret dataen og prøv igen.",
   "invalid_zip_file": "Ugyldig zip-fil",
   "invalid_zip_file": "Ugyldig zip-fil",
   "invite": "Inviter",
   "invite": "Inviter",
@@ -1113,7 +1113,7 @@
   "more_project_collaborators": "<0>Flere</0> <0>samarbejdspartnere</0> i projekter",
   "more_project_collaborators": "<0>Flere</0> <0>samarbejdspartnere</0> i projekter",
   "more_than_one_kind_of_snippet_was_requested": "Linket til at åbne dette indhold i Overleaf havde nogle ugyldige parametre. Hvis du bliver ved med at opleve det her med links fra en bestemt side, bliver du næsten nødt til at fortælle dem om det.",
   "more_than_one_kind_of_snippet_was_requested": "Linket til at åbne dette indhold i Overleaf havde nogle ugyldige parametre. Hvis du bliver ved med at opleve det her med links fra en bestemt side, bliver du næsten nødt til at fortælle dem om det.",
   "most_popular_uppercase": "Mest populære",
   "most_popular_uppercase": "Mest populære",
-  "must_be_email_address": "Skal være en e-mailaddresse",
+  "must_be_email_address": "Skal være en e-mailaddresse.",
   "my_library": "Mit bibliotek",
   "my_library": "Mit bibliotek",
   "n_items": "__count__ enhed",
   "n_items": "__count__ enhed",
   "n_items_plural": "__count__ enheder",
   "n_items_plural": "__count__ enheder",
@@ -1275,16 +1275,16 @@
   "password_cant_be_the_same_as_current_one": "Kodeordet kan ikke være det samme som det nuværende",
   "password_cant_be_the_same_as_current_one": "Kodeordet kan ikke være det samme som det nuværende",
   "password_change_old_password_wrong": "Det gamle kodeord er forkert.",
   "password_change_old_password_wrong": "Det gamle kodeord er forkert.",
   "password_change_password_must_be_different": "Kodeordet du har indtastet er det samme som dit nuværende kodeord. Benyt venligst et andet kodeord.",
   "password_change_password_must_be_different": "Kodeordet du har indtastet er det samme som dit nuværende kodeord. Benyt venligst et andet kodeord.",
-  "password_change_passwords_do_not_match": "Kodeord er ikke ens",
-  "password_change_successful": "Kodeord opdateret",
+  "password_change_passwords_do_not_match": "Kodeord er ikke ens.",
+  "password_change_successful": "Kodeord opdateret.",
   "password_compromised_try_again_or_use_known_device_or_reset": "Kodeordet du har indtastet er på en <0>offentlig liste over kompromitterede kodeord</0>. Log venligst ind fra en enhed du tidligere har benyttet, eller <1>nulstil dit kodeord</1>",
   "password_compromised_try_again_or_use_known_device_or_reset": "Kodeordet du har indtastet er på en <0>offentlig liste over kompromitterede kodeord</0>. Log venligst ind fra en enhed du tidligere har benyttet, eller <1>nulstil dit kodeord</1>",
-  "password_managed_externally": "Indstillinger for kodeord bliver styret eksternt",
+  "password_managed_externally": "Indstillinger for kodeord bliver styret eksternt.",
   "password_reset": "Nulstil kodeord",
   "password_reset": "Nulstil kodeord",
   "password_reset_email_sent": "Vi har sendt dig en e-mail for at fuldføre nulstillingen af dit kodeord.",
   "password_reset_email_sent": "Vi har sendt dig en e-mail for at fuldføre nulstillingen af dit kodeord.",
   "password_reset_token_expired": "Din mulighed for nulstilling af din adgangskode er udløbet. Anmod om en ny nulstilling af adgangskode og følg linket i din mail.",
   "password_reset_token_expired": "Din mulighed for nulstilling af din adgangskode er udløbet. Anmod om en ny nulstilling af adgangskode og følg linket i din mail.",
   "password_too_long_please_reset": "Maksimal kodeordslængde overskredet. Start venligst forfra med dit kodeord.",
   "password_too_long_please_reset": "Maksimal kodeordslængde overskredet. Start venligst forfra med dit kodeord.",
   "password_updated": "Kodeord opdateret",
   "password_updated": "Kodeord opdateret",
-  "password_was_detected_on_a_public_list_of_known_compromised_passwords": "Dette kodeord er blevet fundet på en <0>offentlig liste over kompromitterede kodeord</0>",
+  "password_was_detected_on_a_public_list_of_known_compromised_passwords": "Dette kodeord er blevet fundet på en <0>offentlig liste over kompromitterede kodeord</0>.",
   "paste_options": "Indstillinger for indsættelse",
   "paste_options": "Indstillinger for indsættelse",
   "paste_with_formatting": "Indsæt med formattering",
   "paste_with_formatting": "Indsæt med formattering",
   "paste_without_formatting": "Indsæt uden formattering",
   "paste_without_formatting": "Indsæt uden formattering",

+ 11 - 11
services/web/locales/de.json

@@ -638,13 +638,13 @@
   "invalid_file_name": "Ungültiger Dateiname",
   "invalid_file_name": "Ungültiger Dateiname",
   "invalid_filename": "Hochladen fehlgeschlagen: Überprüfe, ob der Dateiname keine Sonderzeichen, nachfolgende/vorangehende Leerzeichen oder mehr als __nameLimit__ Zeichen enthält",
   "invalid_filename": "Hochladen fehlgeschlagen: Überprüfe, ob der Dateiname keine Sonderzeichen, nachfolgende/vorangehende Leerzeichen oder mehr als __nameLimit__ Zeichen enthält",
   "invalid_institutional_email": "Der SSO-Dienst deiner Institution hat deine E-Mail-Adresse als __email__ zurückgegeben, welche sich in einer unerwarteten Domäne befindet, die wir nicht als zugehörig erkennen. Möglicherweise kannst du deine primäre E-Mail-Adresse über dein Benutzerprofil ändern.",
   "invalid_institutional_email": "Der SSO-Dienst deiner Institution hat deine E-Mail-Adresse als __email__ zurückgegeben, welche sich in einer unerwarteten Domäne befindet, die wir nicht als zugehörig erkennen. Möglicherweise kannst du deine primäre E-Mail-Adresse über dein Benutzerprofil ändern.",
-  "invalid_password": "Falsches Passwort",
-  "invalid_password_contains_email": "Das Passwort darf nicht Teile deiner E-Mail-Adresse enthalten",
-  "invalid_password_invalid_character": "Das Passwort enthält ein ungültiges Zeichen",
-  "invalid_password_not_set": "Passwort wird benötigt",
-  "invalid_password_too_long": "Maximale Passwortlänge __maxLength__ überschritten",
-  "invalid_password_too_short": "Passwort zu kurz, mindestens __minLength__",
-  "invalid_password_too_similar": "Passwort ist zu ähnlich zu Teilen deiner E-Mail-Adresse",
+  "invalid_password": "Falsches Passwort.",
+  "invalid_password_contains_email": "Das Passwort darf nicht Teile deiner E-Mail-Adresse enthalten.",
+  "invalid_password_invalid_character": "Das Passwort enthält ein ungültiges Zeichen.",
+  "invalid_password_not_set": "Passwort wird benötigt.",
+  "invalid_password_too_long": "Maximale Passwortlänge __maxLength__ überschritten.",
+  "invalid_password_too_short": "Passwort zu kurz, mindestens __minLength__.",
+  "invalid_password_too_similar": "Passwort ist zu ähnlich zu Teilen deiner E-Mail-Adresse.",
   "invalid_request": "Ungültige Anfrage. Bitte korrigiere die Daten und versuche es erneut.",
   "invalid_request": "Ungültige Anfrage. Bitte korrigiere die Daten und versuche es erneut.",
   "invalid_zip_file": "Ungültige ZIP-Datei",
   "invalid_zip_file": "Ungültige ZIP-Datei",
   "invite_more_collabs": "Lade weitere Mitarbeiter ein",
   "invite_more_collabs": "Lade weitere Mitarbeiter ein",
@@ -903,10 +903,10 @@
   "page_not_found": "Seite nicht gefunden",
   "page_not_found": "Seite nicht gefunden",
   "pagination_navigation": "Seitenumbruch-Navigation",
   "pagination_navigation": "Seitenumbruch-Navigation",
   "password": "Passwort",
   "password": "Passwort",
-  "password_change_old_password_wrong": "Dein altes Passwort ist falsch",
-  "password_change_passwords_do_not_match": "Passwörter stimmen nicht überein",
-  "password_change_successful": "Passwort geändert",
-  "password_managed_externally": "Passworteinstellungen werden extern verwaltet",
+  "password_change_old_password_wrong": "Dein altes Passwort ist falsch.",
+  "password_change_passwords_do_not_match": "Passwörter stimmen nicht überein.",
+  "password_change_successful": "Passwort geändert.",
+  "password_managed_externally": "Passworteinstellungen werden extern verwaltet.",
   "password_reset": "Passwort zurücksetzen",
   "password_reset": "Passwort zurücksetzen",
   "password_reset_email_sent": "Dir wurde eine E-Mail gesendet, um dein Passwort zurückzusetzen.",
   "password_reset_email_sent": "Dir wurde eine E-Mail gesendet, um dein Passwort zurückzusetzen.",
   "password_reset_token_expired": "Dein Passwortzurücksetz-Token ist nicht mehr gültig. Bitte fordere eine neue Passwortzurücksetz-Mail an und folge dem darin enthaltenen Link.",
   "password_reset_token_expired": "Dein Passwortzurücksetz-Token ist nicht mehr gültig. Bitte fordere eine neue Passwortzurücksetz-Mail an und folge dem darin enthaltenen Link.",

+ 15 - 15
services/web/locales/en.json

@@ -1108,13 +1108,13 @@
   "invalid_file_name": "Invalid File Name",
   "invalid_file_name": "Invalid File Name",
   "invalid_filename": "Upload failed: check that the file name doesn’t contain special characters, trailing/leading whitespace or more than __nameLimit__ characters",
   "invalid_filename": "Upload failed: check that the file name doesn’t contain special characters, trailing/leading whitespace or more than __nameLimit__ characters",
   "invalid_institutional_email": "Your institution’s SSO service returned your email address as __email__, which is at an unexpected domain that we do not recognise as belonging to it. You may be able to change your primary email address via your user profile at your institution to one at your institution’s domain. Please contact your IT department if you have any questions.",
   "invalid_institutional_email": "Your institution’s SSO service returned your email address as __email__, which is at an unexpected domain that we do not recognise as belonging to it. You may be able to change your primary email address via your user profile at your institution to one at your institution’s domain. Please contact your IT department if you have any questions.",
-  "invalid_password": "Invalid Password",
-  "invalid_password_contains_email": "Password cannot contain parts of email address",
-  "invalid_password_invalid_character": "Password contains an invalid character",
-  "invalid_password_not_set": "Password is required",
-  "invalid_password_too_long": "Maximum password length __maxLength__ exceeded",
-  "invalid_password_too_short": "Password too short, minimum __minLength__",
-  "invalid_password_too_similar": "Password is too similar to parts of email address",
+  "invalid_password": "Invalid Password.",
+  "invalid_password_contains_email": "Password cannot contain parts of email address.",
+  "invalid_password_invalid_character": "Password contains an invalid character.",
+  "invalid_password_not_set": "Password is required.",
+  "invalid_password_too_long": "Maximum password length __maxLength__ exceeded.",
+  "invalid_password_too_short": "Password too short, minimum __minLength__.",
+  "invalid_password_too_similar": "Password is too similar to parts of email address.",
   "invalid_regular_expression": "Invalid regular expression",
   "invalid_regular_expression": "Invalid regular expression",
   "invalid_request": "Invalid Request. Please correct the data and try again.",
   "invalid_request": "Invalid Request. Please correct the data and try again.",
   "invalid_upload_request": "The upload failed. If the problem persists, <0>let us know</0>.",
   "invalid_upload_request": "The upload failed. If the problem persists, <0>let us know</0>.",
@@ -1389,7 +1389,7 @@
   "more_project_collaborators": "<0>More</0> project <0>collaborators</0>",
   "more_project_collaborators": "<0>More</0> project <0>collaborators</0>",
   "more_than_one_kind_of_snippet_was_requested": "The link to open this content on Overleaf included some invalid parameters. If this keeps happening for links on a particular site, please report this to them.",
   "more_than_one_kind_of_snippet_was_requested": "The link to open this content on Overleaf included some invalid parameters. If this keeps happening for links on a particular site, please report this to them.",
   "most_popular_uppercase": "Most popular",
   "most_popular_uppercase": "Most popular",
-  "must_be_email_address": "Must be an email address",
+  "must_be_email_address": "Must be an email address.",
   "must_be_purchased_online": "Must be purchased online",
   "must_be_purchased_online": "Must be purchased online",
   "my_library": "My Library",
   "my_library": "My Library",
   "n_items": "__count__ item",
   "n_items": "__count__ item",
@@ -1590,19 +1590,19 @@
   "paragraph_styles": "Paragraph styles",
   "paragraph_styles": "Paragraph styles",
   "partial_outline_warning": "The File outline is out of date. It will update itself as you edit the document",
   "partial_outline_warning": "The File outline is out of date. It will update itself as you edit the document",
   "password": "Password",
   "password": "Password",
-  "password_cant_be_the_same_as_current_one": "Password can’t be the same as current one",
-  "password_change_old_password_wrong": "Your old password is wrong",
+  "password_cant_be_the_same_as_current_one": "Password can’t be the same as current one.",
+  "password_change_old_password_wrong": "Your old password is wrong.",
   "password_change_password_must_be_different": "The password you entered is the same as your current password. Please try a different password.",
   "password_change_password_must_be_different": "The password you entered is the same as your current password. Please try a different password.",
-  "password_change_passwords_do_not_match": "Passwords do not match",
-  "password_change_successful": "Password changed",
+  "password_change_passwords_do_not_match": "Passwords do not match.",
+  "password_change_successful": "Password changed.",
   "password_compromised_try_again_or_use_known_device_or_reset": "The password you’ve entered is on a <0>public list of compromised passwords</0>. Please try logging in from a device you’ve previously used or <1>reset your password</1>",
   "password_compromised_try_again_or_use_known_device_or_reset": "The password you’ve entered is on a <0>public list of compromised passwords</0>. Please try logging in from a device you’ve previously used or <1>reset your password</1>",
-  "password_managed_externally": "Password settings are managed externally",
+  "password_managed_externally": "Password settings are managed externally.",
   "password_reset": "Password reset",
   "password_reset": "Password reset",
   "password_reset_email_sent": "You have been sent an email to complete your password reset.",
   "password_reset_email_sent": "You have been sent an email to complete your password reset.",
   "password_reset_token_expired": "Your password reset token has expired. Please request a new password reset email and follow the link there.",
   "password_reset_token_expired": "Your password reset token has expired. Please request a new password reset email and follow the link there.",
   "password_too_long_please_reset": "Maximum password length exceeded. Please reset your password.",
   "password_too_long_please_reset": "Maximum password length exceeded. Please reset your password.",
-  "password_updated": "Password updated",
-  "password_was_detected_on_a_public_list_of_known_compromised_passwords": "This password was detected on a <0>public list of known compromised passwords</0>",
+  "password_updated": "Password updated.",
+  "password_was_detected_on_a_public_list_of_known_compromised_passwords": "This password was detected on a <0>public list of known compromised passwords</0>.",
   "paste_options": "Paste options",
   "paste_options": "Paste options",
   "paste_with_formatting": "Paste with formatting",
   "paste_with_formatting": "Paste with formatting",
   "paste_without_formatting": "Paste without formatting",
   "paste_without_formatting": "Paste without formatting",

+ 1 - 1
services/web/locales/es.json

@@ -407,7 +407,7 @@
   "month": "mes",
   "month": "mes",
   "monthly": "Mensualmente",
   "monthly": "Mensualmente",
   "more": "Más",
   "more": "Más",
-  "must_be_email_address": "Debe ser una dirección de correo electrónico",
+  "must_be_email_address": "Debe ser una dirección de correo electrónico.",
   "name": "Nombre",
   "name": "Nombre",
   "native": "Nativo",
   "native": "Nativo",
   "navigation": "Navegación",
   "navigation": "Navegación",

+ 1 - 1
services/web/locales/fi.json

@@ -163,7 +163,7 @@
   "month": "kuukausi",
   "month": "kuukausi",
   "monthly": "Kuukausittainen",
   "monthly": "Kuukausittainen",
   "more": "Lisää",
   "more": "Lisää",
-  "must_be_email_address": "Täytyy olla sähköpostiosoite",
+  "must_be_email_address": "Täytyy olla sähköpostiosoite.",
   "name": "Nimi",
   "name": "Nimi",
   "native": "natiivi",
   "native": "natiivi",
   "navigation": "Navigointi",
   "navigation": "Navigointi",

+ 5 - 5
services/web/locales/fr.json

@@ -620,7 +620,7 @@
   "invalid_file_name": "Nom de fichier invalide",
   "invalid_file_name": "Nom de fichier invalide",
   "invalid_filename": "Échec de l’envoi : assurez-vous que le nom du fichier ne contienne pas de caractères spéciaux, de blancs au début ou à la fin ou plus de __nameLimit__ caractères",
   "invalid_filename": "Échec de l’envoi : assurez-vous que le nom du fichier ne contienne pas de caractères spéciaux, de blancs au début ou à la fin ou plus de __nameLimit__ caractères",
   "invalid_institutional_email": "Le service d’authentification central de votre établissement a indiqué que votre adresse courriel était __email__, mais le domaine de cette adresse n’appartient pas à ceux que nous reconnaissons pour cet établissement. Il est peut-être possible de modifier votre adresse courriel principale depuis le profil utilisateur de votre établissement pour qu’elle soit dans un domaine reconnu. Veuillez contacter votre département informatique si vous avez des questions.",
   "invalid_institutional_email": "Le service d’authentification central de votre établissement a indiqué que votre adresse courriel était __email__, mais le domaine de cette adresse n’appartient pas à ceux que nous reconnaissons pour cet établissement. Il est peut-être possible de modifier votre adresse courriel principale depuis le profil utilisateur de votre établissement pour qu’elle soit dans un domaine reconnu. Veuillez contacter votre département informatique si vous avez des questions.",
-  "invalid_password": "Mot de passe invalide",
+  "invalid_password": "Mot de passe invalide.",
   "invalid_request": "Requête invalide. Veuillez corriger les données et réessayer.",
   "invalid_request": "Requête invalide. Veuillez corriger les données et réessayer.",
   "invalid_zip_file": "Archive invalide",
   "invalid_zip_file": "Archive invalide",
   "invite_not_accepted": "Invitation en attente",
   "invite_not_accepted": "Invitation en attente",
@@ -741,7 +741,7 @@
   "more": "Plus",
   "more": "Plus",
   "more_info": "Plus d’infos",
   "more_info": "Plus d’infos",
   "more_than_one_kind_of_snippet_was_requested": "Certains paramètres invalides sont présents dans le lien pour ouvrir ce contenu sur Overleaf. Si cela se produit régulièrement pour un site donné, veuillez leur faire part du problème.",
   "more_than_one_kind_of_snippet_was_requested": "Certains paramètres invalides sont présents dans le lien pour ouvrir ce contenu sur Overleaf. Si cela se produit régulièrement pour un site donné, veuillez leur faire part du problème.",
-  "must_be_email_address": "Adresse électronique attendue",
+  "must_be_email_address": "Adresse électronique attendue.",
   "n_items": "__count__ élément",
   "n_items": "__count__ élément",
   "n_items_plural": "__count__ éléments",
   "n_items_plural": "__count__ éléments",
   "name": "Nom",
   "name": "Nom",
@@ -821,9 +821,9 @@
   "page_not_found": "Page introuvable",
   "page_not_found": "Page introuvable",
   "pagination_navigation": "Navigation pagination",
   "pagination_navigation": "Navigation pagination",
   "password": "Mot de passe",
   "password": "Mot de passe",
-  "password_change_passwords_do_not_match": "Les mots de passe ne correspondent pas",
-  "password_change_successful": "Mot de passe modifié",
-  "password_managed_externally": "Les paramètres du mot de passe sont gérés par votre organisation",
+  "password_change_passwords_do_not_match": "Les mots de passe ne correspondent pas.",
+  "password_change_successful": "Mot de passe modifié.",
+  "password_managed_externally": "Les paramètres du mot de passe sont gérés par votre organisation.",
   "password_reset": "Réinitialisation du mot de passe",
   "password_reset": "Réinitialisation du mot de passe",
   "password_reset_email_sent": "Un courriel vous a été envoyé afin de finaliser la réinitialisation de votre mot de passe.",
   "password_reset_email_sent": "Un courriel vous a été envoyé afin de finaliser la réinitialisation de votre mot de passe.",
   "password_reset_token_expired": "Votre demande de réinitialisation de mot de passe a expiré. Veuillez refaire une demande de réinitialisation et suivre le lien qui figure dans le nouveau courriel.",
   "password_reset_token_expired": "Votre demande de réinitialisation de mot de passe a expiré. Veuillez refaire une demande de réinitialisation et suivre le lien qui figure dans le nouveau courriel.",

+ 1 - 1
services/web/locales/it.json

@@ -188,7 +188,7 @@
   "month": "mese",
   "month": "mese",
   "monthly": "Mensile",
   "monthly": "Mensile",
   "more": "Più",
   "more": "Più",
-  "must_be_email_address": "Deve essere un indirizzo email",
+  "must_be_email_address": "Deve essere un indirizzo email.",
   "name": "Nome",
   "name": "Nome",
   "native": "nativo",
   "native": "nativo",
   "navigation": "Navigazione",
   "navigation": "Navigazione",

+ 2 - 2
services/web/locales/ja.json

@@ -185,7 +185,7 @@
   "info": "情報",
   "info": "情報",
   "institution": "組織",
   "institution": "組織",
   "invalid_file_name": "無効なファイル名",
   "invalid_file_name": "無効なファイル名",
-  "invalid_password": "パスワードの入力に誤りがあります",
+  "invalid_password": "パスワードの入力に誤りがあります",
   "invite_not_accepted": "招待はまだ承認されていません",
   "invite_not_accepted": "招待はまだ承認されていません",
   "invite_not_valid": "これは有効なプロジェクト招待ではありません",
   "invite_not_valid": "これは有効なプロジェクト招待ではありません",
   "invite_not_valid_description": "招待の有効期限が切れている可能性があります。プロジェクトオーナーにお問い合わせください",
   "invite_not_valid_description": "招待の有効期限が切れている可能性があります。プロジェクトオーナーにお問い合わせください",
@@ -254,7 +254,7 @@
   "month": "月",
   "month": "月",
   "monthly": "月額",
   "monthly": "月額",
   "more": "さらに",
   "more": "さらに",
-  "must_be_email_address": "有効なメールアドレスを入力してください",
+  "must_be_email_address": "有効なメールアドレスを入力してください",
   "name": "名前",
   "name": "名前",
   "native": "ネイティブ",
   "native": "ネイティブ",
   "navigation": "ナビゲーション",
   "navigation": "ナビゲーション",

+ 2 - 2
services/web/locales/ko.json

@@ -213,7 +213,7 @@
   "institution": "기관",
   "institution": "기관",
   "invalid_email": "이메일 주소가 잘못되었습니다.",
   "invalid_email": "이메일 주소가 잘못되었습니다.",
   "invalid_file_name": "파일 이름이 부적절합니다.",
   "invalid_file_name": "파일 이름이 부적절합니다.",
-  "invalid_password": "비밀번호 틀림",
+  "invalid_password": "비밀번호 틀림.",
   "invite_not_accepted": "받지 않은 초대장",
   "invite_not_accepted": "받지 않은 초대장",
   "invite_not_valid": "프로젝트 초대가 유효하지 않습니다.",
   "invite_not_valid": "프로젝트 초대가 유효하지 않습니다.",
   "invite_not_valid_description": "초대가 만료되었습니다. 프로젝트 소유자에게 연락하십시오.",
   "invite_not_valid_description": "초대가 만료되었습니다. 프로젝트 소유자에게 연락하십시오.",
@@ -286,7 +286,7 @@
   "month": "월",
   "month": "월",
   "monthly": "매달",
   "monthly": "매달",
   "more": "더보기",
   "more": "더보기",
-  "must_be_email_address": "반드시 이메일주소여야 합니다",
+  "must_be_email_address": "반드시 이메일주소여야 합니다.",
   "name": "이름",
   "name": "이름",
   "native": "기본",
   "native": "기본",
   "navigation": "네비게이션",
   "navigation": "네비게이션",

+ 2 - 2
services/web/locales/nl.json

@@ -223,7 +223,7 @@
   "institution": "Instelling",
   "institution": "Instelling",
   "institution_and_role": "Instelling en rol",
   "institution_and_role": "Instelling en rol",
   "invalid_file_name": "Ongeldige Bestandsnaam",
   "invalid_file_name": "Ongeldige Bestandsnaam",
-  "invalid_password": "Onjuist Wachtwoord",
+  "invalid_password": "Onjuist Wachtwoord.",
   "invite_not_accepted": "Uitnodiging nog niet geaccepteerd",
   "invite_not_accepted": "Uitnodiging nog niet geaccepteerd",
   "invite_not_valid": "Dit is geen valide projectuitnodiging",
   "invite_not_valid": "Dit is geen valide projectuitnodiging",
   "invite_not_valid_description": "De uitnodiging kan verlopen zijn. Neem contact op met de projecteigenaar",
   "invite_not_valid_description": "De uitnodiging kan verlopen zijn. Neem contact op met de projecteigenaar",
@@ -299,7 +299,7 @@
   "month": "maand",
   "month": "maand",
   "monthly": "Maandelijks",
   "monthly": "Maandelijks",
   "more": "Meer",
   "more": "Meer",
-  "must_be_email_address": "Moet een e-mailadres zijn",
+  "must_be_email_address": "Moet een e-mailadres zijn.",
   "name": "Naam",
   "name": "Naam",
   "native": "Browserkeuze",
   "native": "Browserkeuze",
   "navigation": "Navigatie",
   "navigation": "Navigatie",

+ 1 - 1
services/web/locales/no.json

@@ -192,7 +192,7 @@
   "month": "måned",
   "month": "måned",
   "monthly": "Månedlig",
   "monthly": "Månedlig",
   "more": "Mer",
   "more": "Mer",
-  "must_be_email_address": "Må være en epostadresse",
+  "must_be_email_address": "Må være en epostadresse.",
   "name": "Navn",
   "name": "Navn",
   "native": "integrert",
   "native": "integrert",
   "navigation": "Navigasjon",
   "navigation": "Navigasjon",

+ 2 - 2
services/web/locales/pl.json

@@ -102,7 +102,7 @@
   "month": "miesiąc",
   "month": "miesiąc",
   "monthly": "Miesięcznie",
   "monthly": "Miesięcznie",
   "more": "więcej",
   "more": "więcej",
-  "must_be_email_address": "Musi być adresem email",
+  "must_be_email_address": "Musi być adresem email.",
   "name": "Nazwa",
   "name": "Nazwa",
   "native": "natywna",
   "native": "natywna",
   "navigation": "Nawigacja",
   "navigation": "Nawigacja",
@@ -128,7 +128,7 @@
   "page_not_found": "Strona nie znaleziona",
   "page_not_found": "Strona nie znaleziona",
   "password": "Hasło",
   "password": "Hasło",
   "password_reset": "Resetowanie hasła",
   "password_reset": "Resetowanie hasła",
-  "password_reset_email_sent": "Wysłaliśmy do Ciebie emaila, żeby dokończyć proces resetowania hasła",
+  "password_reset_email_sent": "Wysłaliśmy do Ciebie emaila, żeby dokończyć proces resetowania hasła.",
   "pdf_viewer": "Przeglądarka PDF",
   "pdf_viewer": "Przeglądarka PDF",
   "personal": "Osobiste",
   "personal": "Osobiste",
   "pl": "Polski",
   "pl": "Polski",

+ 4 - 4
services/web/locales/pt.json

@@ -266,7 +266,7 @@
   "institution_and_role": "Instituição e papel",
   "institution_and_role": "Instituição e papel",
   "invalid_email": "Algum email está inválido",
   "invalid_email": "Algum email está inválido",
   "invalid_file_name": "Nome de Arquivo Inválido",
   "invalid_file_name": "Nome de Arquivo Inválido",
-  "invalid_password": "Senha inválida",
+  "invalid_password": "Senha inválida.",
   "invite_not_accepted": "Convite ainda não aceito",
   "invite_not_accepted": "Convite ainda não aceito",
   "invite_not_valid": "Esse não é um convite válido do projeto",
   "invite_not_valid": "Esse não é um convite válido do projeto",
   "invite_not_valid_description": "Talvez o convite tenha expirado. Por favor, entre em contato com o dono do projeto.",
   "invite_not_valid_description": "Talvez o convite tenha expirado. Por favor, entre em contato com o dono do projeto.",
@@ -360,7 +360,7 @@
   "month": "mês",
   "month": "mês",
   "monthly": "Mensalmente",
   "monthly": "Mensalmente",
   "more": "Mais",
   "more": "Mais",
-  "must_be_email_address": "Deve ser um endereço de email",
+  "must_be_email_address": "Deve ser um endereço de email.",
   "name": "Nome",
   "name": "Nome",
   "native": "Nativo",
   "native": "Nativo",
   "navigation": "Navegação",
   "navigation": "Navegação",
@@ -409,8 +409,8 @@
   "owner": "Dono",
   "owner": "Dono",
   "page_not_found": "Página Não Encontrada",
   "page_not_found": "Página Não Encontrada",
   "password": "Senha",
   "password": "Senha",
-  "password_change_passwords_do_not_match": "Senhas não coincidem",
-  "password_change_successful": "Senha alterada",
+  "password_change_passwords_do_not_match": "Senhas não coincidem.",
+  "password_change_successful": "Senha alterada.",
   "password_reset": "Reiniciar Senha",
   "password_reset": "Reiniciar Senha",
   "password_reset_email_sent": "Você receberá um email para terminar de reiniciar sua senha.",
   "password_reset_email_sent": "Você receberá um email para terminar de reiniciar sua senha.",
   "password_reset_token_expired": "Sua ficha de reinicialização de senha expirou.Por favor, solicite um novo email de reinicialização de senha e clique no link contido nele.",
   "password_reset_token_expired": "Sua ficha de reinicialização de senha expirou.Por favor, solicite um novo email de reinicialização de senha e clique no link contido nele.",

+ 2 - 2
services/web/locales/ru.json

@@ -250,7 +250,7 @@
   "month": "месяц",
   "month": "месяц",
   "monthly": "Цена за месяц",
   "monthly": "Цена за месяц",
   "more": "еще",
   "more": "еще",
-  "must_be_email_address": "Введите правильный адрес электронной почты",
+  "must_be_email_address": "Введите правильный адрес электронной почты.",
   "name": "Имя",
   "name": "Имя",
   "native": "браузер",
   "native": "браузер",
   "navigation": "Навигация",
   "navigation": "Навигация",
@@ -292,7 +292,7 @@
   "page_not_found": "Страница не найдена",
   "page_not_found": "Страница не найдена",
   "password": "Пароль",
   "password": "Пароль",
   "password_reset": "Сбросить пароль",
   "password_reset": "Сбросить пароль",
-  "password_reset_email_sent": "На ваш электронный адрес было отправлено письмо с инструкцией по восстановлению пароля",
+  "password_reset_email_sent": "На ваш электронный адрес было отправлено письмо с инструкцией по восстановлению пароля.",
   "password_reset_token_expired": "Ваш код восстановления пароля истёк. Пожалуйста, запросите восстановление пароля по почте ещё раз и перейдите по ссылке в письме.",
   "password_reset_token_expired": "Ваш код восстановления пароля истёк. Пожалуйста, запросите восстановление пароля по почте ещё раз и перейдите по ссылке в письме.",
   "pdf_viewer": "Просмотрщик PDF",
   "pdf_viewer": "Просмотрщик PDF",
   "pending": "В ожидании",
   "pending": "В ожидании",

+ 8 - 8
services/web/locales/sv.json

@@ -380,9 +380,9 @@
   "institutional": "Institutionell",
   "institutional": "Institutionell",
   "invalid_email": "En e-postadress är inte giltig",
   "invalid_email": "En e-postadress är inte giltig",
   "invalid_file_name": "Ogiltigt filnamn",
   "invalid_file_name": "Ogiltigt filnamn",
-  "invalid_password": "Felaktigt lösenord",
-  "invalid_password_too_long": "Maximal lösenordslängd __maxLength__ överskrids",
-  "invalid_password_too_short": "Lösenordet är för kort, minimum __minLength__",
+  "invalid_password": "Felaktigt lösenord.",
+  "invalid_password_too_long": "Maximal lösenordslängd __maxLength__ överskrids.",
+  "invalid_password_too_short": "Lösenordet är för kort, minimum __minLength__.",
   "invalid_zip_file": "Ogiltig zip-fil",
   "invalid_zip_file": "Ogiltig zip-fil",
   "invite_more_collabs": "Bjuda in fler medarbetare",
   "invite_more_collabs": "Bjuda in fler medarbetare",
   "invite_not_accepted": "Inbjudan ännu inte accepterad",
   "invite_not_accepted": "Inbjudan ännu inte accepterad",
@@ -501,7 +501,7 @@
   "more": "Mer",
   "more": "Mer",
   "more_info": "Mer info",
   "more_info": "Mer info",
   "more_than_one_kind_of_snippet_was_requested": "Länken för att öppna detta innehåll i Overleaf innehöll några ogiltiga parametrar. Om detta fortsätter att hända för länkar på en viss webbplats, vänligen rapportera detta till dem.",
   "more_than_one_kind_of_snippet_was_requested": "Länken för att öppna detta innehåll i Overleaf innehöll några ogiltiga parametrar. Om detta fortsätter att hända för länkar på en viss webbplats, vänligen rapportera detta till dem.",
-  "must_be_email_address": "Måste vara en e-postadress",
+  "must_be_email_address": "Måste vara en e-postadress.",
   "n_items": "__count__ objekt",
   "n_items": "__count__ objekt",
   "name": "Namn",
   "name": "Namn",
   "native": "native",
   "native": "native",
@@ -573,11 +573,11 @@
   "page_not_found": "Sidan kunde inte hittas",
   "page_not_found": "Sidan kunde inte hittas",
   "pagination_navigation": "Sidnavigering",
   "pagination_navigation": "Sidnavigering",
   "password": "Lösenord",
   "password": "Lösenord",
-  "password_change_old_password_wrong": "Ditt gamla lösenord är fel",
+  "password_change_old_password_wrong": "Ditt gamla lösenord är fel.",
   "password_change_password_must_be_different": "Lösenordet som du skrev in är samma som ditt nuvarande lösenord. Vänligen försök med ett annat lösenord.",
   "password_change_password_must_be_different": "Lösenordet som du skrev in är samma som ditt nuvarande lösenord. Vänligen försök med ett annat lösenord.",
-  "password_change_passwords_do_not_match": "Lösenorden matchar ej",
-  "password_change_successful": "Lösenord har ändrats",
-  "password_managed_externally": "Lösenordsinställningar hanteras externt",
+  "password_change_passwords_do_not_match": "Lösenorden matchar ej.",
+  "password_change_successful": "Lösenord har ändrats.",
+  "password_managed_externally": "Lösenordsinställningar hanteras externt.",
   "password_reset": "Återställ lösenord",
   "password_reset": "Återställ lösenord",
   "password_reset_email_sent": "Ett e-postmeddelande har skickats till dig för att slutföra lösenordsåterställningen.",
   "password_reset_email_sent": "Ett e-postmeddelande har skickats till dig för att slutföra lösenordsåterställningen.",
   "password_reset_token_expired": "Lösenordsåterställningen är för gammal. Vänligen begär en ny lösenordsåterställning och följ länken i e-postmeddelandet.",
   "password_reset_token_expired": "Lösenordsåterställningen är för gammal. Vänligen begär en ny lösenordsåterställning och följ länken i e-postmeddelandet.",

+ 1 - 1
services/web/locales/tr.json

@@ -188,7 +188,7 @@
   "month": "ay",
   "month": "ay",
   "monthly": "Aylık",
   "monthly": "Aylık",
   "more": "Daha fazla",
   "more": "Daha fazla",
-  "must_be_email_address": "E-posta adresi olmak zorundadır",
+  "must_be_email_address": "E-posta adresi olmak zorundadır.",
   "name": "İsim",
   "name": "İsim",
   "native": "yerel",
   "native": "yerel",
   "navigation": "Yol gösterici",
   "navigation": "Yol gösterici",

+ 17 - 17
services/web/locales/zh-CN.json

@@ -1050,13 +1050,13 @@
   "invalid_file_name": "文件名无效",
   "invalid_file_name": "文件名无效",
   "invalid_filename": "上传失败:检查文件名是否包含特殊字符、尾随/前导空格或超过 __nameLimit__ 个字符",
   "invalid_filename": "上传失败:检查文件名是否包含特殊字符、尾随/前导空格或超过 __nameLimit__ 个字符",
   "invalid_institutional_email": "您机构的 SSO 服务返回的您的电子邮件地址是 __email__,但该域名并没有在我们这里注册。您可以通过您的机构将您的主电子邮件地址更改为您所在机构域的电子邮件地址。如果您有任何问题,请联系您的 IT 部门。",
   "invalid_institutional_email": "您机构的 SSO 服务返回的您的电子邮件地址是 __email__,但该域名并没有在我们这里注册。您可以通过您的机构将您的主电子邮件地址更改为您所在机构域的电子邮件地址。如果您有任何问题,请联系您的 IT 部门。",
-  "invalid_password": "密码错误",
-  "invalid_password_contains_email": "密码不能包含电子邮件地址的部分内容",
-  "invalid_password_invalid_character": "密码包含无效的字符",
-  "invalid_password_not_set": "需要密码哦",
-  "invalid_password_too_long": "超过最大密码长度 __maxLength__",
-  "invalid_password_too_short": "密码太短,最短 __minLength__ 位",
-  "invalid_password_too_similar": "密码与电子邮件地址过于相似",
+  "invalid_password": "密码错误",
+  "invalid_password_contains_email": "密码不能包含电子邮件地址的部分内容",
+  "invalid_password_invalid_character": "密码包含无效的字符",
+  "invalid_password_not_set": "需要密码哦",
+  "invalid_password_too_long": "超过最大密码长度 __maxLength__",
+  "invalid_password_too_short": "密码太短,最短 __minLength__ 位",
+  "invalid_password_too_similar": "密码与电子邮件地址过于相似",
   "invalid_regular_expression": "无效的正则表达式",
   "invalid_regular_expression": "无效的正则表达式",
   "invalid_request": "无效的请求。请更正数据并重试。",
   "invalid_request": "无效的请求。请更正数据并重试。",
   "invalid_zip_file": "zip文件无效",
   "invalid_zip_file": "zip文件无效",
@@ -1323,7 +1323,7 @@
   "more_project_collaborators": "<0>更多</0>项目<0>合作者</0>",
   "more_project_collaborators": "<0>更多</0>项目<0>合作者</0>",
   "more_than_one_kind_of_snippet_was_requested": "在Overleaf打开此内容的链接包含一些无效参数。如果某个网站的链接经常出现这种情况,请向他们报告。",
   "more_than_one_kind_of_snippet_was_requested": "在Overleaf打开此内容的链接包含一些无效参数。如果某个网站的链接经常出现这种情况,请向他们报告。",
   "most_popular_uppercase": "最受欢迎的",
   "most_popular_uppercase": "最受欢迎的",
-  "must_be_email_address": "必须是电邮地址",
+  "must_be_email_address": "必须是电邮地址",
   "must_be_purchased_online": "必须通过在线订购",
   "must_be_purchased_online": "必须通过在线订购",
   "my_library": "我的库",
   "my_library": "我的库",
   "n_items": "__count__ 个项目",
   "n_items": "__count__ 个项目",
@@ -1509,20 +1509,20 @@
   "paragraph_styles": "段落样式",
   "paragraph_styles": "段落样式",
   "partial_outline_warning": "文件大纲已过期。它将在您编辑文档时自行更新",
   "partial_outline_warning": "文件大纲已过期。它将在您编辑文档时自行更新",
   "password": "密码",
   "password": "密码",
-  "password_cant_be_the_same_as_current_one": "密码不能和当前的完全一样",
-  "password_change_old_password_wrong": "您的旧密码错误",
+  "password_cant_be_the_same_as_current_one": "密码不能和当前的完全一样",
+  "password_change_old_password_wrong": "您的旧密码错误",
   "password_change_password_must_be_different": "您输入的密码与当前密码相同。请尝试其他密码。",
   "password_change_password_must_be_different": "您输入的密码与当前密码相同。请尝试其他密码。",
-  "password_change_passwords_do_not_match": "密码不匹配",
-  "password_change_successful": "密码已更改",
+  "password_change_passwords_do_not_match": "密码不匹配",
+  "password_change_successful": "密码已更改",
   "password_compromised_try_again_or_use_known_device_or_reset": "您输入的密码位于<0>泄露密码的公开列表</0>中。 请尝试从您之前使用过的设备登录或<1>重置您的密码</1>",
   "password_compromised_try_again_or_use_known_device_or_reset": "您输入的密码位于<0>泄露密码的公开列表</0>中。 请尝试从您之前使用过的设备登录或<1>重置您的密码</1>",
-  "password_managed_externally": "密码设置由外部管理",
+  "password_managed_externally": "密码设置由外部管理",
   "password_reset": "重置密码",
   "password_reset": "重置密码",
-  "password_reset_email_sent": "已给您发送邮件以完成密码重置",
-  "password_reset_sentence_case": "重设密码",
+  "password_reset_email_sent": "已给您发送邮件以完成密码重置",
+  "password_reset_sentence_case": "重设密码",
   "password_reset_token_expired": "您的密码重置链接已过期。请申请新的密码重置email,并按照email中的链接操作。",
   "password_reset_token_expired": "您的密码重置链接已过期。请申请新的密码重置email,并按照email中的链接操作。",
   "password_too_long_please_reset": "超过最大密码长度限制。请重新设置密码。",
   "password_too_long_please_reset": "超过最大密码长度限制。请重新设置密码。",
-  "password_updated": "密码已更新",
-  "password_was_detected_on_a_public_list_of_known_compromised_passwords": "在<0>已知泄露密码的公共列表中检测到此密码</0>",
+  "password_updated": "密码已更新",
+  "password_was_detected_on_a_public_list_of_known_compromised_passwords": "在<0>已知泄露密码的公共列表中检测到此密码</0>",
   "paste_options": "粘贴选项",
   "paste_options": "粘贴选项",
   "paste_with_formatting": "粘贴并附带格式",
   "paste_with_formatting": "粘贴并附带格式",
   "paste_without_formatting": "粘贴纯文本",
   "paste_without_formatting": "粘贴纯文本",

+ 2 - 2
services/web/test/acceptance/src/PasswordResetTests.mjs

@@ -203,7 +203,7 @@ describe('PasswordReset', function () {
           message: {
           message: {
             type: 'error',
             type: 'error',
             key: 'password-contains-email',
             key: 'password-contains-email',
-            text: 'Password cannot contain parts of email address',
+            text: 'Password cannot contain parts of email address.',
           },
           },
         })
         })
       })
       })
@@ -230,7 +230,7 @@ describe('PasswordReset', function () {
           message: {
           message: {
             type: 'error',
             type: 'error',
             key: 'password-too-similar',
             key: 'password-too-similar',
-            text: 'Password is too similar to parts of email address',
+            text: 'Password is too similar to parts of email address.',
           },
           },
         })
         })
       })
       })

+ 4 - 4
services/web/test/acceptance/src/PasswordUpdateTests.mjs

@@ -105,7 +105,7 @@ describe('PasswordUpdate', function () {
       })
       })
       it('should return error message', async function () {
       it('should return error message', async function () {
         const body = await response.json()
         const body = await response.json()
-        expect(body.message).to.equal('Passwords do not match')
+        expect(body.message).to.equal('Passwords do not match.')
       })
       })
       it('should not update audit log', async function () {
       it('should not update audit log', async function () {
         const auditLog = userHelper.getAuditLogWithoutNoise()
         const auditLog = userHelper.getAuditLogWithoutNoise()
@@ -136,7 +136,7 @@ describe('PasswordUpdate', function () {
         expect(body.message).to.deep.equal({
         expect(body.message).to.deep.equal({
           type: 'error',
           type: 'error',
           key: 'password-too-short',
           key: 'password-too-short',
-          text: 'Password too short, minimum 8',
+          text: 'Password too short, minimum 8.',
         })
         })
       })
       })
       it('should not update audit log', async function () {
       it('should not update audit log', async function () {
@@ -168,7 +168,7 @@ describe('PasswordUpdate', function () {
         expect(body.message).to.deep.equal({
         expect(body.message).to.deep.equal({
           key: 'password-contains-email',
           key: 'password-contains-email',
           type: 'error',
           type: 'error',
-          text: 'Password cannot contain parts of email address',
+          text: 'Password cannot contain parts of email address.',
         })
         })
       })
       })
       it('should not update audit log', async function () {
       it('should not update audit log', async function () {
@@ -200,7 +200,7 @@ describe('PasswordUpdate', function () {
         expect(body.message).to.deep.equal({
         expect(body.message).to.deep.equal({
           key: 'password-too-similar',
           key: 'password-too-similar',
           type: 'error',
           type: 'error',
-          text: 'Password is too similar to parts of email address',
+          text: 'Password is too similar to parts of email address.',
         })
         })
       })
       })
       it('should not update audit log', async function () {
       it('should not update audit log', async function () {

+ 1 - 1
services/web/test/frontend/features/settings/components/password-section.test.tsx

@@ -30,7 +30,7 @@ describe('<PasswordSection />', function () {
     )
     )
     render(<PasswordSection />)
     render(<PasswordSection />)
 
 
-    screen.getByText('Password settings are managed externally')
+    screen.getByText('Password settings are managed externally.')
   })
   })
 
 
   it('shows no existing password message', async function () {
   it('shows no existing password message', async function () {