diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index f5cc000bd1..0000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,6 +0,0 @@ -version: 2 -updates: - - package-ecosystem: npm - directory: "/install" - schedule: - interval: daily diff --git a/CHANGELOG.md b/CHANGELOG.md index 2259da6386..addb024ffd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,24 @@ +#### v2.3.1 (2022-07-29) + +##### Chores + +* **deps:** + * bump sanitize-html from 2.7.0 to 2.7.1 in /install (7b606d2e) + * bump webpack from 5.73.0 to 5.74.0 in /install (a9900625) +* **i18n:** fallback strings for new resources: nodebb.admin-settings-advanced, nodebb.admin-menu, nodebb.error (17120e03) +* incrementing version number - v2.3.0 (046ea120) +* update changelog for v2.3.0 (a6f7fff0) + +##### New Features + +* add emoji to startup logs, because procrastination. (5176fb15) + +##### Bug Fixes + +* #10798, logic error in COEP header; helmet config (89173f17) +* #10795, early return for selection tooltip based on calling user privilege (847d2b91) +* **deps:** update persona to v12.0.14 (9f225e70) + #### v2.3.0 (2022-07-28) ##### Chores diff --git a/README.md b/README.md index 0cb3c44eb1..ec84b1303e 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r * If you are a developer, feel free to check out the source and submit pull requests. We also have a wide array of [plugins](http://community.nodebb.org/category/7/nodebb-plugins) which would be a great starting point for learning the codebase. * If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extension of the base templates as well as styling via LESS or CSS. NodeBB's base theme utilizes [Bootstrap 3](http://getbootstrap.com/) but themes can choose to use a different framework altogether. -* If you know languages other than English you can help us translate NodeBB. We use [Transifex](https://www.transifex.com/projects/p/nodebb/) for internationalization. +* If you know languages other than English you can help us translate NodeBB. We use [Transifex](https://explore.transifex.com/nodebb/nodebb/) for internationalization. * Please don't forget to **like**, **follow**, and **star our repo**! Join our growing [community](http://community.nodebb.org) to keep up to date with the latest NodeBB development. ## Requirements @@ -76,7 +76,7 @@ Interested in a sublicense agreement for use of NodeBB in a non-free/restrictive * [Demo](https://try.nodebb.org) * [Developer Community](http://community.nodebb.org) * [Documentation & Installation Instructions](http://docs.nodebb.org) -* [Help translate NodeBB](https://www.transifex.com/projects/p/nodebb/) +* [Help translate NodeBB](https://explore.transifex.com/nodebb/nodebb/) * [NodeBB Blog](http://blog.nodebb.org) * [Premium Hosting for NodeBB](http://www.nodebb.org/ "NodeBB") * Unofficial IRC community – channel `#nodebb` on Libera.chat diff --git a/install/package.json b/install/package.json index abfa2cea71..94c22d2872 100644 --- a/install/package.json +++ b/install/package.json @@ -29,10 +29,11 @@ }, "dependencies": { "@adactive/bootstrap-tagsinput": "0.8.2", + "@isaacs/ttlcache": "^1.2.0", "ace-builds": "1.8.1", "archiver": "5.3.1", "async": "3.2.4", - "autoprefixer": "10.4.7", + "autoprefixer": "10.4.8", "bcryptjs": "2.4.3", "benchpressjs": "2.4.3", "body-parser": "1.20.0", @@ -43,7 +44,7 @@ "cli-graph": "3.2.2", "clipboard": "2.0.11", "colors": "1.4.0", - "commander": "7.2.0", + "commander": "9.4.0", "compare-versions": "4.1.3", "compression": "1.7.4", "connect-flash": "0.1.1", @@ -64,7 +65,7 @@ "fs-extra": "10.1.0", "graceful-fs": "4.2.10", "helmet": "5.1.1", - "html-to-text": "8.2.0", + "html-to-text": "8.2.1", "ipaddr.js": "2.0.1", "jquery": "3.6.0", "jquery-deserialize": "2.0.0", @@ -77,7 +78,7 @@ "less": "4.1.3", "lodash": "4.17.21", "logrotate-stream": "0.2.8", - "lru-cache": "6.0.0", + "lru-cache": "7.13.1", "material-design-lite": "1.3.0", "mime": "3.0.0", "mkdirp": "1.0.4", @@ -87,17 +88,17 @@ "multiparty": "4.2.3", "@nodebb/bootswatch": "3.4.2", "nconf": "0.12.0", - "nodebb-plugin-2factor": "5.0.1", + "nodebb-plugin-2factor": "5.0.2", "nodebb-plugin-composer-default": "8.0.0", "nodebb-plugin-dbsearch": "5.1.5", "nodebb-plugin-emoji": "4.0.4", "nodebb-plugin-emoji-android": "3.0.0", - "nodebb-plugin-markdown": "10.0.0", + "nodebb-plugin-markdown": "10.1.0", "nodebb-plugin-mentions": "3.0.11", "nodebb-plugin-spam-be-gone": "1.0.0", "nodebb-rewards-essentials": "0.2.1", "nodebb-theme-lavender": "6.0.0", - "nodebb-theme-persona": "12.0.14", + "nodebb-theme-persona": "12.1.0", "nodebb-theme-slick": "2.0.2", "nodebb-theme-vanilla": "12.1.18", "nodebb-widget-essentials": "6.0.0", @@ -123,7 +124,6 @@ "sitemap": "7.1.1", "slideout": "1.0.1", "socket.io": "4.5.1", - "socket.io-adapter-cluster": "1.0.1", "socket.io-client": "4.5.1", "@socket.io/redis-adapter": "7.2.0", "sortablejs": "1.15.0", @@ -150,7 +150,7 @@ "@commitlint/cli": "17.0.3", "@commitlint/config-angular": "17.0.3", "coveralls": "3.1.1", - "eslint": "8.20.0", + "eslint": "8.21.0", "eslint-config-nodebb": "0.1.1", "eslint-plugin-import": "2.26.0", "grunt": "1.5.3", @@ -187,4 +187,4 @@ "url": "https://github.com/barisusakli" } ] -} \ No newline at end of file +} diff --git a/public/language/README.md b/public/language/README.md index a578e1e68b..26c4db1304 100644 --- a/public/language/README.md +++ b/public/language/README.md @@ -3,7 +3,7 @@ The files here are read-only and overwritten daily (if there are changes) by the helper bot [Misty](https://github.com/nodebb-misty). -Our localisation efforts are handled via [our Transifex Project](https://www.transifex.com/nodebb/nodebb/), +Our localisation efforts are handled via [our Transifex Project](https://explore.transifex.com/nodebb/nodebb/), and any pull requests made to this directory will be automatically closed because localisations can go out-of-sync when edited directly. diff --git a/public/language/ar/admin/settings/email.json b/public/language/ar/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/ar/admin/settings/email.json +++ b/public/language/ar/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/ar/user.json b/public/language/ar/user.json index ad3d9d9780..6edb9b3752 100644 --- a/public/language/ar/user.json +++ b/public/language/ar/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/bg/admin/menu.json b/public/language/bg/admin/menu.json index ee7113eb8f..e5fb3489cb 100644 --- a/public/language/bg/admin/menu.json +++ b/public/language/bg/admin/menu.json @@ -76,7 +76,7 @@ "logout": "Изход", "view-forum": "Преглед на форума", - "search.placeholder": "Search settings", + "search.placeholder": "Търсене на настройки", "search.no-results": "Няма резултати…", "search.search-forum": "Търсене във форума за ", "search.keep-typing": "Продължете да пишете, за да видите още резултати…", diff --git a/public/language/bg/admin/settings/email.json b/public/language/bg/admin/settings/email.json index e278278e06..cab27f8c59 100644 --- a/public/language/bg/admin/settings/email.json +++ b/public/language/bg/admin/settings/email.json @@ -11,8 +11,9 @@ "smtp-transport.service": "Изберете услуга", "smtp-transport.service-custom": "Персонализирана услуга", "smtp-transport.service-help": "Изберете името на услугата по-горе, за да използвате известните данни за нея. Или изберете „Персонализирана услуга“ и въведете данните ѝ по-долу.", - "smtp-transport.gmail-warning1": "Има доклади, че услугата на Gmail не работи за акаунти с подсилена защита. В тези случаи ще трябва да настроите своя акаунт в GMail така, че да позволява използването на по-малко защитени приложения.", - "smtp-transport.gmail-warning2": "За повече информация относно това обиколно решение, моля, прегледайте тази статия за проблема в „NodeMailer“. Друго решение би било използването на добавка за е-поща от трета страна, като например „SendGrid“, „Mailgun“ и т.н. Вижте наличните добавки тук.", + "smtp-transport.gmail-warning1": "Ако използвате GMail, ще трябва да създадете „Парола за приложение“, за да може NodeBB да използва данните за удостоверяване. Можете да създадете такава в страницата с Пароли за приложения.", + "smtp-transport.gmail-warning2": "За повече информация относно това обиколно решение, моля, прегледайте тази статия за проблема в „NodeMailer“. Друго решение би било използването на добавка за е-поща от трета страна, като например „SendGrid“, „Mailgun“ и т.н. Вижте наличните добавки тук.", + "smtp-transport.auto-enable-toast": "Изглежда настройвате функционалност, която изисква транспорт чрез SMTP. Включихме настройката „Транспорт чрез SMTP“, за да не го правите Вие.", "smtp-transport.host": "SMTP сървър", "smtp-transport.port": "SMTP порт", "smtp-transport.security": "Сигурност на връзката", diff --git a/public/language/bg/user.json b/public/language/bg/user.json index 39b8816fab..04fdf98b62 100644 --- a/public/language/bg/user.json +++ b/public/language/bg/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Въведете е-пощата си по-долу. Този форум използва е-пощата за планирани резюмета и известия, както и за възстановяване на акаунта, в случай на забравена парола.", "emailUpdate.optional": "Това поле не е задължително. Не сте длъжен/на да предоставяте адрес на е-поща, но без проверена е-поща, няма да можете да възстановите акаунта си в случай на проблем, нито ще можете да се вписвате с е-пощата си.", "emailUpdate.required": "Това поле е задължително.", - "emailUpdate.change-instructions": "Ще Ви изпратим е-писмо за потвърждение на посочената е-поща, което ще съдържа уникална връзка. Щом последвате тази връзка, притежанието Ви на тази е-поща ще бъде потвърдено и тя ще бъде свързана с акаунта Ви. Ще можете да промените тази е-поща по всяко време, от страницата на акаунта си." + "emailUpdate.change-instructions": "Ще Ви изпратим е-писмо за потвърждение на посочената е-поща, което ще съдържа уникална връзка. Щом последвате тази връзка, притежанието Ви на тази е-поща ще бъде потвърдено и тя ще бъде свързана с акаунта Ви. Ще можете да промените тази е-поща по всяко време, от страницата на акаунта си.", + "emailUpdate.password-challenge": "Въведете паролата си, за да потвърдите, че акаунтът е Ваш." } \ No newline at end of file diff --git a/public/language/bn/admin/settings/email.json b/public/language/bn/admin/settings/email.json index a91248b70b..03f53c6c75 100644 --- a/public/language/bn/admin/settings/email.json +++ b/public/language/bn/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/bn/user.json b/public/language/bn/user.json index 3a839d0111..3e07785645 100644 --- a/public/language/bn/user.json +++ b/public/language/bn/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/cs/admin/settings/email.json b/public/language/cs/admin/settings/email.json index f85fb11734..aa3253c18b 100644 --- a/public/language/cs/admin/settings/email.json +++ b/public/language/cs/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "Ze seznamu můžete vybrat známé služby nebo zadat vlastní.", "smtp-transport.service": "Vyberte službu", "smtp-transport.service-custom": "Uživatelský služba", - "smtp-transport.service-help": "Pro použití známých informací, vyberte název služby. Nebo vyberte „uživatelskou službu” a zadejte detaily níže.", - "smtp-transport.gmail-warning1": "Někdy služba Gmail nefunguje správně s účty s nejvyšším zabezpečením. V těchto případech, musíte nakonfigurovat váš Gmail účet pro méně zabezpečené aplikace.", - "smtp-transport.gmail-warning2": "Další informace o tomto řešení, konzultujte s NodeMailer.Alternativou je použití e-mailového rozšíření třetích stran jako je SendGrid, Mailgun atd.Dostupné rozšíření zde.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "Hostitel SMTP", "smtp-transport.port": "Port SMTP", "smtp-transport.security": "Zabezpečení připojení", diff --git a/public/language/cs/user.json b/public/language/cs/user.json index b06fdf6b6e..8eac8be334 100644 --- a/public/language/cs/user.json +++ b/public/language/cs/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/da/admin/settings/email.json b/public/language/da/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/da/admin/settings/email.json +++ b/public/language/da/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/da/user.json b/public/language/da/user.json index c49b457c65..6f0f367d81 100644 --- a/public/language/da/user.json +++ b/public/language/da/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/de/admin/settings/email.json b/public/language/de/admin/settings/email.json index aef186d817..0c0ccd8a4d 100644 --- a/public/language/de/admin/settings/email.json +++ b/public/language/de/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "Du kannst aus einer Liste bekannter Email-Provider auswählen, oder einen benutzerdefinierten eingeben.", "smtp-transport.service": "Wähle einen Provider", "smtp-transport.service-custom": "Benutzerdefiniert...", - "smtp-transport.service-help": "Wähle oben einen Provider aus um die bekannten informationen über diesen zu verwenden. Falls dein Provider nicht in der Liste sein sollte, wähle 'Benutzerdefiniert...' aus und gib die details manuell ein.", - "smtp-transport.gmail-warning1": "Es gab Berichte darüber, dass Gmail nicht mit Accounts mit erhöhten Sicherheitseinstellungen funktioniert. In diesem Fall wirst du deinen Gmail-Konto konfigurieren müssen um den \"Zugriff weniger sicherer Apps\" auf dein Konto zuzulassen.", - "smtp-transport.gmail-warning2": "Um mehr zu diesem Workaround zu erfahren, ließ dir bitten diesen NodeMailer Artikel zu diesem Problem durch. Eine Alternative wäre, Emailer-Plugins von dritten wie etwa SendGrid, Mailgun usw. zu verwenden. Verfügbare Plugins durchsuchen.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Verbindungssicherheit", diff --git a/public/language/de/user.json b/public/language/de/user.json index 8a11ed3818..e208e413bf 100644 --- a/public/language/de/user.json +++ b/public/language/de/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Bitte gib unten deine E-Mail-Adresse ein. Dieses Forum verwendet deine E-Mail-Adresse für die geplante Zusammenfassung und diverse Benachrichtigungen sowie für die Konto-Wiederherstellung im Falle eines verlorenen Passworts.", "emailUpdate.optional": "Dieses Feld ist optional. Du bist nicht verpflichtet, deine E-Mail-Adresse anzugeben, doch ohne eine validierte E-Mail-Adresse kannst du dein Konto nicht wiederherstellen oder dich mit deiner E-Mail-Adresse anmelden.", "emailUpdate.required": "Dieses Feld ist erforderlich.", - "emailUpdate.change-instructions": "An die eingegebene E-Mail-Adresse wird eine Bestätigungs-E-Mail mit einem eindeutigen Link gesendet. Durch den Zugriff auf diesen Link wird dein Eigentum an der E-Mail-Adresse bestätigt und diese wird in deinem Konto aktiv. Du kannst deine E-Mail-Adresse jederzeit auf deiner Kontoseite aktualisieren." + "emailUpdate.change-instructions": "An die eingegebene E-Mail-Adresse wird eine Bestätigungs-E-Mail mit einem eindeutigen Link gesendet. Durch den Zugriff auf diesen Link wird dein Eigentum an der E-Mail-Adresse bestätigt und diese wird in deinem Konto aktiv. Du kannst deine E-Mail-Adresse jederzeit auf deiner Kontoseite aktualisieren.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/el/admin/settings/email.json b/public/language/el/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/el/admin/settings/email.json +++ b/public/language/el/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/el/user.json b/public/language/el/user.json index e5a88b91b2..1294042aac 100644 --- a/public/language/el/user.json +++ b/public/language/el/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/email.json b/public/language/en-GB/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/en-GB/admin/settings/email.json +++ b/public/language/en-GB/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/en-GB/user.json b/public/language/en-GB/user.json index 14f68b35db..c5bebf4b37 100644 --- a/public/language/en-GB/user.json +++ b/public/language/en-GB/user.json @@ -216,5 +216,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } diff --git a/public/language/en-US/admin/settings/email.json b/public/language/en-US/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/en-US/admin/settings/email.json +++ b/public/language/en-US/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/en-US/user.json b/public/language/en-US/user.json index 5742ce2be0..ec5f3bd60e 100644 --- a/public/language/en-US/user.json +++ b/public/language/en-US/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/email.json b/public/language/en-x-pirate/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/en-x-pirate/admin/settings/email.json +++ b/public/language/en-x-pirate/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/en-x-pirate/user.json b/public/language/en-x-pirate/user.json index fa3d912809..f8ff37bb4a 100644 --- a/public/language/en-x-pirate/user.json +++ b/public/language/en-x-pirate/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/es/admin/settings/email.json b/public/language/es/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/es/admin/settings/email.json +++ b/public/language/es/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/es/user.json b/public/language/es/user.json index 1bb317b4de..f8363dca1a 100644 --- a/public/language/es/user.json +++ b/public/language/es/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/et/admin/settings/email.json b/public/language/et/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/et/admin/settings/email.json +++ b/public/language/et/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/et/user.json b/public/language/et/user.json index b63ff4037f..4cd4865bea 100644 --- a/public/language/et/user.json +++ b/public/language/et/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/email.json b/public/language/fa-IR/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/fa-IR/admin/settings/email.json +++ b/public/language/fa-IR/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/fa-IR/user.json b/public/language/fa-IR/user.json index 5690522397..8e7f8c15aa 100644 --- a/public/language/fa-IR/user.json +++ b/public/language/fa-IR/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/fi/admin/settings/email.json b/public/language/fi/admin/settings/email.json index 86020e5240..3557bacfc7 100644 --- a/public/language/fi/admin/settings/email.json +++ b/public/language/fi/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/fi/user.json b/public/language/fi/user.json index f38bed77d3..0d423311a4 100644 --- a/public/language/fi/user.json +++ b/public/language/fi/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/fr/admin/settings/email.json b/public/language/fr/admin/settings/email.json index 38ec252178..9ec14a9f3f 100644 --- a/public/language/fr/admin/settings/email.json +++ b/public/language/fr/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "Vous pouvez sélectionner depuis une liste de services ou entrer un service personnalisé.", "smtp-transport.service": "Sélectionner un service", "smtp-transport.service-custom": "Service personnalisé", - "smtp-transport.service-help": "Sélectionner un service ci-dessus afin de renseigner les champs. Sinon, sélectionner \"Service Personnalisé\" et ajouter les informations ci-dessous.", - "smtp-transport.gmail-warning1": "Vous pouvez rencontrer des difficultés avec le service Gmail pour les comptes ayant une sécurité élevée. Dans ce cas, vous devez configurer votre compte Gmail pour qu'il autorise les applications moins sécurisées.", - "smtp-transport.gmail-warning2": "Pour plus d'informations à propos de cette solution, consulter l'article sur le NodeMailer sur ce sujet. Une alternative est d'utiliser un service tiers d'envoi d'email tels que SendGrid, Mailgun, etc. Consulter les plugins disponibles ici.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "Host SMTP", "smtp-transport.port": "Port SMTP", "smtp-transport.security": "Accès sécurisé", diff --git a/public/language/fr/user.json b/public/language/fr/user.json index 81da129566..8ad069194c 100644 --- a/public/language/fr/user.json +++ b/public/language/fr/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Veuillez renseigner votre adresse mails. Ce forum utilise votre adresse mail pour suivre l'activité et les notifications programmés, ainsi que pour la récupération de compte en cas de perte de mot de passe.", "emailUpdate.optional": "Ce champ est facultatif. Vous n'êtes pas obligé de fournir votre adresse e-mail, mais sans e-mail validé, vous ne pourrez pas récupérer votre compte ou vous connecter avec votre e-mail.", "emailUpdate.required": "Ce champ est requis.", - "emailUpdate.change-instructions": "Un mail de confirmation sera envoyé à l'adresse mail saisie avec un lien unique. L'accès à ce lien confirmera votre propriété de mail et elle deviendra active sur votre compte. À tout moment, vous pouvez mettre à jour votre mail enregistré depuis la page de votre compte." + "emailUpdate.change-instructions": "Un mail de confirmation sera envoyé à l'adresse mail saisie avec un lien unique. L'accès à ce lien confirmera votre propriété de mail et elle deviendra active sur votre compte. À tout moment, vous pouvez mettre à jour votre mail enregistré depuis la page de votre compte.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/gl/admin/settings/email.json b/public/language/gl/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/gl/admin/settings/email.json +++ b/public/language/gl/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/gl/user.json b/public/language/gl/user.json index ee4671c3be..95c0f45f50 100644 --- a/public/language/gl/user.json +++ b/public/language/gl/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/he/admin/settings/email.json b/public/language/he/admin/settings/email.json index a3cd96d617..c2f1b3c6ef 100644 --- a/public/language/he/admin/settings/email.json +++ b/public/language/he/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/he/post-queue.json b/public/language/he/post-queue.json index 31e48464e5..6246fe3244 100644 --- a/public/language/he/post-queue.json +++ b/public/language/he/post-queue.json @@ -19,9 +19,9 @@ "notify": "שלח הודעה", "notify-user": "שלח התראה למשתמש", "confirm-reject": "האם אתה בטוח שברצונך לדחות את הפוסט הזה?", - "bulk-actions": "Bulk Actions", + "bulk-actions": "פעולות כמותיות", "accept-all": "אשר הכל", - "accept-selected": "אשר הכל", + "accept-selected": "אשר פוסטים נבחרים", "reject-all": "דחה הכל", "reject-all-confirm": "האם אתה בטוח שברצונך לדחות את כל הפוסטים?", "reject-selected": "דחה פוסטים נבחרים", diff --git a/public/language/he/user.json b/public/language/he/user.json index 66f07361f6..bc41b57ba7 100644 --- a/public/language/he/user.json +++ b/public/language/he/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "אנא הכנס את כתובת הדוא\"ל שלך. הפורום משתמש בדוא\"ל שלך לשליחת תקציר מתוזמן והתראות, כמו כן לשחזור חשבון במקרה ששוכחים את הסיסמה.", "emailUpdate.optional": "שדה זה הוא אופציונלי. אינך מחויב לספק את כתובת הדוא\"ל שלך, אך ללא דוא\"ל מאומת לא תוכל לשחזר את חשבונך או להתחבר באמצעות הדוא\"ל שלך.", "emailUpdate.required": "זהו שדה חובה", - "emailUpdate.change-instructions": "מייל אימות יישלח לכתובת דוא\"ל שהכנסת עם קישור ייחודי. לחיצה על הקישור יאמת את בעלותך על הדוא\"ל ותקבל גישה לחשבונך. בכל זמן, תוכל לעדכן את כתובת הדוא\"ל שלך בדף החשבון שלך." + "emailUpdate.change-instructions": "מייל אימות יישלח לכתובת דוא\"ל שהכנסת עם קישור ייחודי. לחיצה על הקישור יאמת את בעלותך על הדוא\"ל ותקבל גישה לחשבונך. בכל זמן, תוכל לעדכן את כתובת הדוא\"ל שלך בדף החשבון שלך.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/hr/admin/settings/email.json b/public/language/hr/admin/settings/email.json index af77a23140..d18d0cc705 100644 --- a/public/language/hr/admin/settings/email.json +++ b/public/language/hr/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/hr/user.json b/public/language/hr/user.json index 8d8ebb4a35..985402a9b8 100644 --- a/public/language/hr/user.json +++ b/public/language/hr/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/hu/admin/settings/email.json b/public/language/hu/admin/settings/email.json index 8f5ee13181..22c226247d 100644 --- a/public/language/hu/admin/settings/email.json +++ b/public/language/hu/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "Válogathatsz a jól ismert szolgáltatások listájából vagy megadhatsz sajátot.", "smtp-transport.service": "Válassz egy szolgáltatást", "smtp-transport.service-custom": "Egyedi szolgáltatás", - "smtp-transport.service-help": "Válassz egy szolgáltatást, hogy a róla ismert információkat használhasd vagy pedig választ az 'Egyedi szolgáltatás' lehetőséget és add meg az alább található beállítások értékeit.", - "smtp-transport.gmail-warning1": "A Gmail szolgáltatás nem működik olyan fiókok esetében, amiknél magas biztonsági szint került beállításra. Ilyen esetben engedélyezned kell a kevésbé biztonságos alkalmazásokat", - "smtp-transport.gmail-warning2": "További információkért erről a megoldásról kérjük látogasd meg ezt a NodeMailer cikket. Másik megoldás lehet, hogy használj harmadik féltől származó email kezelő beépülőt, mint például a SendGrid, Mailgun, stb. Nézd meg az elérhető beépülőket itt.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP kiszolgáló", "smtp-transport.port": "SMTP port", "smtp-transport.security": "Kapcoslatbiztonság", diff --git a/public/language/hu/user.json b/public/language/hu/user.json index d19aff3a1b..b0e315cc85 100644 --- a/public/language/hu/user.json +++ b/public/language/hu/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/id/admin/settings/email.json b/public/language/id/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/id/admin/settings/email.json +++ b/public/language/id/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/id/user.json b/public/language/id/user.json index 421563b653..9a584fe73f 100644 --- a/public/language/id/user.json +++ b/public/language/id/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/it/admin/menu.json b/public/language/it/admin/menu.json index fc0b6f6bf2..82b3085b89 100644 --- a/public/language/it/admin/menu.json +++ b/public/language/it/admin/menu.json @@ -76,7 +76,7 @@ "logout": "Esci", "view-forum": "Vista Forum", - "search.placeholder": "Search settings", + "search.placeholder": "Impostazioni di ricerca", "search.no-results": "Niente risultati...", "search.search-forum": "Cerca nel forum per ", "search.keep-typing": "Scrivi altro per vedere risultati...", diff --git a/public/language/it/admin/settings/email.json b/public/language/it/admin/settings/email.json index 05fdfd1951..180922117c 100644 --- a/public/language/it/admin/settings/email.json +++ b/public/language/it/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "Puoi selezionare da un elenco di servizi noti o inserirne uno personalizzato.", "smtp-transport.service": "Seleziona un servizio", "smtp-transport.service-custom": "Servizio personalizzato", - "smtp-transport.service-help": "Seleziona un servizio nominano sopra per utilizzare le informazioni conosciute su di esso. In alternativa, seleziona \"Servizio personalizzato\" ed inserisci i dettagli qui sotto.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "Host SMTP", "smtp-transport.port": "Porta SMTP", "smtp-transport.security": "Sicurezza connessione", diff --git a/public/language/it/user.json b/public/language/it/user.json index 45f78ffe00..e32ccc332f 100644 --- a/public/language/it/user.json +++ b/public/language/it/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Inserisci il tuo indirizzo email qui sotto. Questo forum utilizza il tuo indirizzo email per il riepilogo programmato e le notifiche, così come per il recupero dell'account in caso di perdita della password.", "emailUpdate.optional": "Questo campo è facoltativo. Non sei obbligato a fornire il tuo indirizzo email, ma senza un'email convalidata non sarai in grado di recuperare il tuo account o di accedere con la tua email.", "emailUpdate.required": "Questo campo è obbligatorio.", - "emailUpdate.change-instructions": "Un'email di conferma sarà inviata all'indirizzo email inserito con un link unico. Accedendo a quel link confermerai la tua proprietà dell'indirizzo email e questo diventerà attivo sul tuo account. In qualsiasi momento, sei in grado di aggiornare la tua email in archivio dalla pagina del tuo account." + "emailUpdate.change-instructions": "Un'email di conferma sarà inviata all'indirizzo email inserito con un link unico. Accedendo a quel link confermerai la tua proprietà dell'indirizzo email e questo diventerà attivo sul tuo account. In qualsiasi momento, sei in grado di aggiornare la tua email in archivio dalla pagina del tuo account.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/ja/admin/settings/email.json b/public/language/ja/admin/settings/email.json index ec73aa26ea..400b5f1889 100644 --- a/public/language/ja/admin/settings/email.json +++ b/public/language/ja/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/ja/user.json b/public/language/ja/user.json index 1b5fcad551..06431706de 100644 --- a/public/language/ja/user.json +++ b/public/language/ja/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/ko/admin/settings/email.json b/public/language/ko/admin/settings/email.json index 2fef547c31..0b6d934886 100644 --- a/public/language/ko/admin/settings/email.json +++ b/public/language/ko/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "자주 사용되는 서비스 목록 중에 하나를 선택하거나 직접 입력할 수 있습니다.", "smtp-transport.service": "서비스 선택", "smtp-transport.service-custom": "직접 입력", - "smtp-transport.service-help": "위의 목록에서 하나를 선택해 잘 알려진 서비스를 사용하세요. 아니면 직접 입력을 통해 다른 서비스를 사용할 수 있습니다.", - "smtp-transport.gmail-warning1": "Gmail을 사용할 경우 계정의 보안 상태가 높을 경우 오류가 발생할 수 있습니다. 그럴 경우 Gmail 계정의 보안 상태를 낮춰주세요.", - "smtp-transport.gmail-warning2": "이에 관해 더 자세히 알고 싶다면 이 이슈에서 NodeMailer와 관련된 내용을 확인하세요. SendGrid이나 Mailgun 같은 플러그인을 사용하셔도 괜찮습니다. 사용 가능한 플러그인들을 여기서 확인하세요.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP 호스트", "smtp-transport.port": "SMTP 포트", "smtp-transport.security": "연결 보안", diff --git a/public/language/ko/user.json b/public/language/ko/user.json index 832910c0ca..0e6f32e9c3 100644 --- a/public/language/ko/user.json +++ b/public/language/ko/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "아래에 이메일 주소를 입력하세요. 해당 포럼은 입력한 이메일 주소로 정기 알림 메일과 그 외의 알림을 전송하고, 계정 복구 작업에도 해당 이메일 주소를 사용합니다.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "입력하신 이메일 주소로 가입 인증 메일이 발송되었습니다. 메일 내의 링크에 접속할 경우 메일 소유자를 확인하고 계정이 활성화됩니다. 활성화 후에도 계정 페이지에서 이메일 주소를 변경할 수 있습니다." + "emailUpdate.change-instructions": "입력하신 이메일 주소로 가입 인증 메일이 발송되었습니다. 메일 내의 링크에 접속할 경우 메일 소유자를 확인하고 계정이 활성화됩니다. 활성화 후에도 계정 페이지에서 이메일 주소를 변경할 수 있습니다.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/lt/admin/settings/email.json b/public/language/lt/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/lt/admin/settings/email.json +++ b/public/language/lt/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/lt/user.json b/public/language/lt/user.json index 863210cd61..cadb36a6e9 100644 --- a/public/language/lt/user.json +++ b/public/language/lt/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/lv/admin/settings/email.json b/public/language/lv/admin/settings/email.json index 0321971257..bb154ee970 100644 --- a/public/language/lv/admin/settings/email.json +++ b/public/language/lv/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "Izvēlies no labi zināmu pakalpojumu saraksta vai ievadi pielāgotu pakalpojumu.", "smtp-transport.service": "Atlasīt servisu", "smtp-transport.service-custom": "Pielāgotais serviss", - "smtp-transport.service-help": "Izvēlēties pakalpojuma nosaukumu, lai to izmantotu. Citādi izvēlēties 'Pielāgotais serviss' un ievadīt informāciju zemāk.", - "smtp-transport.gmail-warning1": "Ir bijuši ziņojumi par to, ka Gmail pakalpojums nedarbojas kontos ar paaugstinātu drošību. Šajos scenārijos jākonfigurē Gmail konts, lai varētu izmantot mazāk drošas lietotnes.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP serveris", "smtp-transport.port": "SMTP ports", "smtp-transport.security": "Savienojumu drošība", diff --git a/public/language/lv/user.json b/public/language/lv/user.json index 32e35c72d4..554e5d3737 100644 --- a/public/language/lv/user.json +++ b/public/language/lv/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/ms/admin/settings/email.json b/public/language/ms/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/ms/admin/settings/email.json +++ b/public/language/ms/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/ms/user.json b/public/language/ms/user.json index f627a44ae7..af86ec6ecb 100644 --- a/public/language/ms/user.json +++ b/public/language/ms/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/nb/admin/settings/email.json b/public/language/nb/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/nb/admin/settings/email.json +++ b/public/language/nb/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/nb/user.json b/public/language/nb/user.json index 6797636ce4..5c3e8867d7 100644 --- a/public/language/nb/user.json +++ b/public/language/nb/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Vennligst skriv inn e-postadressen din nedenfor. Dette forumet bruker e-postadressen din for å planlegge sammendrag og varsler, samt for gjenoppretting av konto i tilfelle tapt passord.", "emailUpdate.optional": "Dette feltet e valgfritt. Du er ikke forpliktet til å oppgi e-postadressen din, men uten en validert e-post vil du ikke kunne gjenopprette kontoen din eller logge på med e-posten din.", "emailUpdate.required": "Dette feltet er obligatorisk", - "emailUpdate.change-instructions": "En bekreftelses-e-post vil bli sendt til den angitte e-postadressen med en unik lenke. Å få tilgang til den koblingen vil bekrefte at du eier e-postadressen, og den blir aktiv på kontoen din. Du kan når som helst oppdatere e-posten din fra siden til kontoen din." + "emailUpdate.change-instructions": "En bekreftelses-e-post vil bli sendt til den angitte e-postadressen med en unik lenke. Å få tilgang til den koblingen vil bekrefte at du eier e-postadressen, og den blir aktiv på kontoen din. Du kan når som helst oppdatere e-posten din fra siden til kontoen din.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/nl/admin/settings/email.json b/public/language/nl/admin/settings/email.json index 346e325c5a..875a778a98 100644 --- a/public/language/nl/admin/settings/email.json +++ b/public/language/nl/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "Je kunt een bekende dienst uit de lijst selecteren of vul een aangepaste dienst in.", "smtp-transport.service": "Selecteer een dienst", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Selecteer een dienst naam hierboven om de bekende gegevens ervan te gebruiken of selecteer 'Custom Service' en voer de details hieronder in.", - "smtp-transport.gmail-warning1": "Er zijn meldingen dat de Gmail service niet werkt op accounts met verhoogde beveiliging. In die gevallen zul je je GMail account moeten configureren om minder veilige apps toe te staan.", - "smtp-transport.gmail-warning2": "Voor meer informatie over deze workaround e information about this workaround, please consult this NodeMailer article on the issue. Een alternatief zou zijn om een emailer plugin van derde partij te gebruiken, zoals SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Poort", "smtp-transport.security": "Connection security", diff --git a/public/language/nl/user.json b/public/language/nl/user.json index 0c5268d68d..8756d8e099 100644 --- a/public/language/nl/user.json +++ b/public/language/nl/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/pl/admin/settings/email.json b/public/language/pl/admin/settings/email.json index 78a090a22d..b0f60c4768 100644 --- a/public/language/pl/admin/settings/email.json +++ b/public/language/pl/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "Możesz wybrać z listy dobrze znanych usług lub wskazać usługę niestandardową.", "smtp-transport.service": "Wybierz usługę", "smtp-transport.service-custom": "Usługa niestandardowa", - "smtp-transport.service-help": "Wybierz nazwę usługi powyżej, by wykorzystać jej parametry. Możesz także wybrać opcję „Usługa niestandardowa” i podać szczegóły poniżej.", - "smtp-transport.gmail-warning1": "Zdarza się, że usługa Gmail nie działa na kontach z wyższym poziomem bezpieczeństwa. W takim przypadku należy skonfigurować swoje konto Gmail tak, by dopuszczało mniej bezpieczne aplikacje.", - "smtp-transport.gmail-warning2": "Więcej informacji dotyczących tego rozwiązania można znaleźć w artykule NodeMailer na temat tego zagadnienia. Alternatywnym rozwiązaniem jest wykorzystanie zewnętrznej wtyczki do obsługi e-maili, takiej jak SendGrid czy Mailgun.Przeglądaj dostępne wtyczki tutaj .", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "Host SMTP", "smtp-transport.port": "Port SMTP", "smtp-transport.security": "Bezpieczeństwo połączenia", diff --git a/public/language/pl/user.json b/public/language/pl/user.json index 2e27538ee7..1f0e05085c 100644 --- a/public/language/pl/user.json +++ b/public/language/pl/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "To pole jest wymagane.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/email.json b/public/language/pt-BR/admin/settings/email.json index 4d516a4055..28e89bab67 100644 --- a/public/language/pt-BR/admin/settings/email.json +++ b/public/language/pt-BR/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "Você pode escolher entre uma lista de serviços conhecidos ou adicionar um personalizado.", "smtp-transport.service": "Escolha um serviço", "smtp-transport.service-custom": "Serviço Personalizado", - "smtp-transport.service-help": "Escolha o nome de um serviço acima de modo a utilizar a informação conhecida sobre ele. Alternativamente, escolha 'Serviço Personalizado' e entre com os seus detalhes abaixo.", - "smtp-transport.gmail-warning1": "Houve relatos do serviço do Gmail não funcionar em contas com uma segurança elevada. Nestes casos, você terá que configurar a sua contada do GMail para permitir apps menos seguros.", - "smtp-transport.gmail-warning2": "Para mais informação sobre esta solução, por gentileza consulte este artigo no NodeMailer sobre o assunto. Uma alternativa seria utilizar um plugin de e-mail terceirizado como o SendGrid, Maigun, etc. Clique para procurar por plugins disponíveis.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "Host SMTP", "smtp-transport.port": "Porta SMTP", "smtp-transport.security": "Segurança da conexão", diff --git a/public/language/pt-BR/user.json b/public/language/pt-BR/user.json index 904d5eadfe..e326d02341 100644 --- a/public/language/pt-BR/user.json +++ b/public/language/pt-BR/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/email.json b/public/language/pt-PT/admin/settings/email.json index 4bdb69a1aa..39197da34f 100644 --- a/public/language/pt-PT/admin/settings/email.json +++ b/public/language/pt-PT/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Selecione um serviço", "smtp-transport.service-custom": "Serviço Personalizado", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Segurança da ligação", diff --git a/public/language/pt-PT/user.json b/public/language/pt-PT/user.json index 80d2f41309..87d078cde9 100644 --- a/public/language/pt-PT/user.json +++ b/public/language/pt-PT/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/ro/admin/settings/email.json b/public/language/ro/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/ro/admin/settings/email.json +++ b/public/language/ro/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/ro/user.json b/public/language/ro/user.json index e3b7151982..d0c9f264b1 100644 --- a/public/language/ro/user.json +++ b/public/language/ro/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/ru/admin/settings/email.json b/public/language/ru/admin/settings/email.json index 68266cedf3..41e84d950c 100644 --- a/public/language/ru/admin/settings/email.json +++ b/public/language/ru/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "Выберите один из популярных сервисов или укажите свой почтовый сервер.", "smtp-transport.service": "Выберите сервис", "smtp-transport.service-custom": "Другой сервис", - "smtp-transport.service-help": "Выберите какой-нибудь сервис из списка, чтобы увидеть его параметры — или укажите настройки вручную, выбрав пункт «Другой сервис»", - "smtp-transport.gmail-warning1": "Отправка писем через Gmail может не сработать, если ваша учётная запись использует усиленные настройки безопасности. В этом случае вам понадобится позволить использовать менее безопасные приложения с вашей учётной записью Gmail.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "Сервер SMTP", "smtp-transport.port": "Порт SMTP", "smtp-transport.security": "Безопасность соединения", diff --git a/public/language/ru/user.json b/public/language/ru/user.json index eb01f7cc8e..c7655bfef3 100644 --- a/public/language/ru/user.json +++ b/public/language/ru/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/rw/admin/settings/email.json b/public/language/rw/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/rw/admin/settings/email.json +++ b/public/language/rw/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/rw/user.json b/public/language/rw/user.json index e8a504ca16..a3b73ebdbe 100644 --- a/public/language/rw/user.json +++ b/public/language/rw/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/sc/admin/settings/email.json b/public/language/sc/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/sc/admin/settings/email.json +++ b/public/language/sc/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/sc/user.json b/public/language/sc/user.json index 663cde8681..03ffc0d018 100644 --- a/public/language/sc/user.json +++ b/public/language/sc/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/sk/admin/settings/email.json b/public/language/sk/admin/settings/email.json index 5932d772da..702de82895 100644 --- a/public/language/sk/admin/settings/email.json +++ b/public/language/sk/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "Zo zoznamu môžete vybrať známe služby alebo zadať vlastné.", "smtp-transport.service": "Vyberte službu", "smtp-transport.service-custom": "Používateľská služba", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "Niekedy služba Gmail nefunguje správne s účtami s najvyšším zabezpečením. V týchto prípadoch, musíte nakonfigurovať Váš Gmail účet pre menej zabezpečené aplikácie.", - "smtp-transport.gmail-warning2": "Ďalšie informácie o tomto riešení, konzultujte s NodeMailer. Alternatívou je použitie e-mailového rozšírenia tretích strán ako je SendGrid, Mailgun atď. Dostupné rozšírenie zde", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "Hostiteľ SMTP", "smtp-transport.port": "Port SMTP", "smtp-transport.security": "Zabezpečenie pripojenia", diff --git a/public/language/sk/user.json b/public/language/sk/user.json index 56e34419e6..f3800c3ef1 100644 --- a/public/language/sk/user.json +++ b/public/language/sk/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/sl/admin/settings/email.json b/public/language/sl/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/sl/admin/settings/email.json +++ b/public/language/sl/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/sl/user.json b/public/language/sl/user.json index 1fd226a621..47acf554a8 100644 --- a/public/language/sl/user.json +++ b/public/language/sl/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/sq-AL/admin/settings/email.json b/public/language/sq-AL/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/sq-AL/admin/settings/email.json +++ b/public/language/sq-AL/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/sq-AL/user.json b/public/language/sq-AL/user.json index eac93bb34e..2194839a9f 100644 --- a/public/language/sq-AL/user.json +++ b/public/language/sq-AL/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Ju lutemi shkruani adresën tuaj të emailit më poshtë. Ky forum përdor adresën tuaj të emailit për përmbledhjen dhe njoftimet e planifikuara, si dhe për rikuperimin e llogarisë në rast të një fjalëkalimi të humbur.", "emailUpdate.optional": "Kjo fushë është fakultative. Ju nuk jeni të detyruar të jepni adresën tuaj të emailit, por pa një email të vërtetuar nuk do të jeni në gjendje të rikuperoni llogarinë tuaj ose të identifikoheni me emailin tuaj.", "emailUpdate.required": "Kjo fushë është e detyrueshme.", - "emailUpdate.change-instructions": "Një email konfirmimi do të dërgohet në adresën e postës elektronike të dhene me një link unik. Hyrja në atë link do të konfirmojë zotërimin tuaj të adresës së emailit dhe ajo do të bëhet aktive në llogarinë tuaj. Në çdo kohë, ju mund të përditësoni emailin tuaj në dosje nga faqja e llogarisë tuaj." + "emailUpdate.change-instructions": "Një email konfirmimi do të dërgohet në adresën e postës elektronike të dhene me një link unik. Hyrja në atë link do të konfirmojë zotërimin tuaj të adresës së emailit dhe ajo do të bëhet aktive në llogarinë tuaj. Në çdo kohë, ju mund të përditësoni emailin tuaj në dosje nga faqja e llogarisë tuaj.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/sr/admin/settings/email.json b/public/language/sr/admin/settings/email.json index afd072688b..e7c80966fb 100644 --- a/public/language/sr/admin/settings/email.json +++ b/public/language/sr/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/sr/user.json b/public/language/sr/user.json index 0bbe3a8560..b30dc871fa 100644 --- a/public/language/sr/user.json +++ b/public/language/sr/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Унесите своју адресу е-поште испод. Овај форум користи вашу адресу е-поште за планирано слање сажетка и обавештења, као и за опоравак налога у случају изгубљене лозинке.", "emailUpdate.optional": "Ово поље је опционо. Нисте обавезни да наведете своју адресу е-поште, али без ваљане е-поште нећете моћи да вратите свој налог или да се пријавите помоћу своје е-поште.", "emailUpdate.required": "Ово поље је обавезно.", - "emailUpdate.change-instructions": "На унету адресу е-поште биће послата потврдна порука са јединственом везом. Приступ тој вези потврдиће ваше власништво над адресом е-поште и она ће постати активна на вашем налогу. У било ком тренутку можете да ажурирате своју е-пошту на страници налога." + "emailUpdate.change-instructions": "На унету адресу е-поште биће послата потврдна порука са јединственом везом. Приступ тој вези потврдиће ваше власништво над адресом е-поште и она ће постати активна на вашем налогу. У било ком тренутку можете да ажурирате своју е-пошту на страници налога.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/sv/admin/settings/email.json b/public/language/sv/admin/settings/email.json index 0af7cc106d..bf487ccb99 100644 --- a/public/language/sv/admin/settings/email.json +++ b/public/language/sv/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/sv/user.json b/public/language/sv/user.json index 950e009819..9f87b40310 100644 --- a/public/language/sv/user.json +++ b/public/language/sv/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/th/admin/settings/email.json b/public/language/th/admin/settings/email.json index 8f5cdf0f95..93ffe374f9 100644 --- a/public/language/th/admin/settings/email.json +++ b/public/language/th/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Custom Service", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/th/user.json b/public/language/th/user.json index 2b7757b548..56c577d271 100644 --- a/public/language/th/user.json +++ b/public/language/th/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/tr/admin/menu.json b/public/language/tr/admin/menu.json index 1976645b73..ffac5f26de 100644 --- a/public/language/tr/admin/menu.json +++ b/public/language/tr/admin/menu.json @@ -76,7 +76,7 @@ "logout": "Çıkış", "view-forum": "Forumu Görüntüle", - "search.placeholder": "Search settings", + "search.placeholder": "Arama Ayarları", "search.no-results": "Sonuç yok...", "search.search-forum": "Forumda ara: ", "search.keep-typing": "Sonuçları görmek için daha fazla yazın...", diff --git a/public/language/tr/admin/settings/email.json b/public/language/tr/admin/settings/email.json index a3b30a3b39..84d29b0242 100644 --- a/public/language/tr/admin/settings/email.json +++ b/public/language/tr/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "You can select from a list of well-known services or enter a custom one.", "smtp-transport.service": "Select a service", "smtp-transport.service-custom": "Özel Servis", - "smtp-transport.service-help": "Bilinen bilgileri kullanmak için yukarıdan bir hizmet adı seçin. Alternatif olarak, 'Özel Servis'i seçin ve aşağıdaki bilgileri girin.", - "smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", - "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", "smtp-transport.security": "Connection security", diff --git a/public/language/tr/user.json b/public/language/tr/user.json index ef66d908c8..b687e2de43 100644 --- a/public/language/tr/user.json +++ b/public/language/tr/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Lütfen e-posta adresinizi aşağıya girin. Bu forum, e-posta adresinizi planlanmış özet ve bildirimler ile parolanın kaybolması durumunda hesap kurtarma için kullanır.", "emailUpdate.optional": "Bu bölüm tercihe bağlıdır. Bir e-posta adresi girmek zorunda değilsiniz, fakat onaylanmış bir e-posta adresi olmadan hesabınızı veya girişinizi e-posta adresiniz ile kurtaramazsınız. ", "emailUpdate.required": "Bu bölüm zorunludur.", - "emailUpdate.change-instructions": "Girilen e-posta adresine kişiye özel bir bağlantı içeren bir onay e-postası gönderilecektir. Bu bağlantıya erişmek, e-posta adresinin sahibi olduğunuzu onaylayacak ve hesabınızda etkin hale gelecektir. İstediğiniz zaman, hesap sayfanızdan kayıtlı e-postanızı güncelleyebilirsiniz." + "emailUpdate.change-instructions": "Girilen e-posta adresine kişiye özel bir bağlantı içeren bir onay e-postası gönderilecektir. Bu bağlantıya erişmek, e-posta adresinin sahibi olduğunuzu onaylayacak ve hesabınızda etkin hale gelecektir. İstediğiniz zaman, hesap sayfanızdan kayıtlı e-postanızı güncelleyebilirsiniz.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/uk/admin/settings/email.json b/public/language/uk/admin/settings/email.json index 1f68589fc1..046edf46d3 100644 --- a/public/language/uk/admin/settings/email.json +++ b/public/language/uk/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "Ви можете обрати поштовий сервіс зі списку або використати ваш власний сервіс.", "smtp-transport.service": "Оберіть сервіс", "smtp-transport.service-custom": "Власний Сервіс", - "smtp-transport.service-help": "Оберіть сервіс вище, щоб використати відому інформацію про нього. Або оберіть 'Власний Сервіс' та введіть деталі нижче.", - "smtp-transport.gmail-warning1": "До нас надходили звіти про те, що сервіс Gmail не працює на акаунтах з підвищеною безпекою. У таких випадках вам потрібно дозволити менш безпечні додатки у своєму Gmail акаунті.", - "smtp-transport.gmail-warning2": "Щоб дізнатися більше про цей обхідний шлях, прочитайте цю статтю на NodeMailer. Альтернативою буде використання сторонніх плагінів для листування як то SendGrid, Mailgun, тощо. Переглянути наявні плагіни тут.", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "Сервер SMTP", "smtp-transport.port": "Порт SMTP", "smtp-transport.security": "Connection security", diff --git a/public/language/uk/user.json b/public/language/uk/user.json index 6ae747f8c1..ec842ecdf2 100644 --- a/public/language/uk/user.json +++ b/public/language/uk/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/vi/admin/menu.json b/public/language/vi/admin/menu.json index d1818e0b17..d6d4e72a6d 100644 --- a/public/language/vi/admin/menu.json +++ b/public/language/vi/admin/menu.json @@ -76,7 +76,7 @@ "logout": "Đăng xuất", "view-forum": "Xem diễn đàn", - "search.placeholder": "Search settings", + "search.placeholder": "Cài đặt tìm kiếm", "search.no-results": "Ko có kết quả...", "search.search-forum": "Tìm kiếm diễn đàn cho ", "search.keep-typing": "Nhập thêm để xem kết quả...", diff --git a/public/language/vi/admin/settings/email.json b/public/language/vi/admin/settings/email.json index 764c06d3d9..30cebf9d91 100644 --- a/public/language/vi/admin/settings/email.json +++ b/public/language/vi/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "Bạn có thể chọn từ danh sách các dịch vụ nổi bật hoặc nhập một dịch vụ tùy chỉnh.", "smtp-transport.service": "Chọn một dịch vụ", "smtp-transport.service-custom": "Tùy chỉnh dịch vụ ", - "smtp-transport.service-help": "Chọn tên dịch vụ ở trên để sử dụng thông tin đã biết về nó. Ngoài ra, hãy chọn 'Dịch vụ Tùy chỉnh' và nhập các chi tiết bên dưới.", - "smtp-transport.gmail-warning1": "Đã có báo cáo về dịch vụ Gmail không hoạt động trên các tài khoản có bảo mật cao. Trong trường hợp đó, bạn sẽ phải cấu hình tài khoản GMail của bạn cho phép các ứng dụng kém an toàn .", - "smtp-transport.gmail-warning2": "Để biết thêm thông tin về giải pháp này, vui lòng tham khảo bài viết NodeMailer này về vấn đề. Một giải pháp thay thế sẽ là sử dụng plugin trình gửi email của bên thứ ba như SendGrid, Mailgun, v.v.. Duyệt qua các plugin có sẵn tại đây.", + "smtp-transport.service-help": "Chọn tên dịch vụ ở trên để sử dụng thông tin đã biết về nó. Ngoài ra, hãy chọn "Dịch vụ tùy chỉnh" và nhập các chi tiết bên dưới.", + "smtp-transport.gmail-warning1": "Nếu bạn đang sử dụng GMail làm nhà cung cấp email của mình, bạn sẽ phải tạo "Mật Khẩu Ứng Dụng" để NodeBB xác thực thành công. Bạn có thể tạo một cái tại trang Mật Khẩu Ứng Dụng .", + "smtp-transport.gmail-warning2": "Để biết thêm thông tin về giải pháp này, hãy tham khảo bài viết NodeMailer về vấn đề này. Giải pháp thay thế là sử dụng plugin trình gửi email của bên thứ ba như SendGrid, Mailgun, v.v.. Duyệt qua các plugin có sẵn tại đây.", + "smtp-transport.auto-enable-toast": "Có vẻ như bạn're đang cấu hình truyền tải SMTP. Chúng tôi đã bật tùy chọn \"Truyền tải SMTP\" cho bạn.", "smtp-transport.host": "Máy Chủ SMTP", "smtp-transport.port": "Cổng SMTP", "smtp-transport.security": "Bảo mật kết nối", diff --git a/public/language/vi/error.json b/public/language/vi/error.json index e267375515..861368eb9d 100644 --- a/public/language/vi/error.json +++ b/public/language/vi/error.json @@ -205,8 +205,8 @@ "no-connection": "Kết nối internet của bạn có vấn đề.", "socket-reconnect-failed": "Không thể truy cập máy chủ vào lúc này. Nhấp vào đây để thử lại hoặc thử lại sau", "plugin-not-whitelisted": "Không thể cài đặt plugin – chỉ những plugin được Trình quản lý gói NodeBB đưa vào danh sách trắng mới có thể được cài đặt qua ACP", - "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", - "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", + "plugins-set-in-configuration": "Bạn không được phép thay đổi trạng thái plugin vì chúng được xác định trong thời gian chạy (config.json, biến môi trường hoặc đối số đầu cuối), thay vào đó hãy sửa đổi cấu hình.", + "theme-not-set-in-configuration": "Khi xác định các plugin hoạt động trong cấu hình, việc thay đổi chủ đề yêu cầu thêm chủ đề mới vào danh sách các plugin hoạt động trước khi cập nhật nó trong ACP", "topic-event-unrecognized": "Sự kiện chủ đề '%1' không được công nhận", "cant-set-child-as-parent": "Không thể đặt con làm chuyên mục chính", "cant-set-self-as-parent": "Không thể tự đặt mình là chuyên mục chính", diff --git a/public/language/vi/user.json b/public/language/vi/user.json index b7048529b3..c7f22833e4 100644 --- a/public/language/vi/user.json +++ b/public/language/vi/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Vui lòng nhập địa chỉ email của bạn dưới đây. Diễn đàn này sử dụng địa chỉ email của bạn để nhận thông báo và thông báo theo lịch trình, cũng như để khôi phục tài khoản trong trường hợp mất mật khẩu.", "emailUpdate.optional": "Mục này không bắt buộc. Bạn không có nghĩa vụ cung cấp địa chỉ email của mình, nhưng nếu không có email được xác thực, bạn sẽ không thể khôi phục tài khoản hoặc đăng nhập bằng email của mình.", "emailUpdate.required": "Trường này là bắt buộc.", - "emailUpdate.change-instructions": "Một email xác nhận sẽ được gửi đến địa chỉ email đã nhập với một liên kết duy nhất. Việc truy cập vào liên kết đó sẽ xác nhận quyền sở hữu của bạn đối với địa chỉ email và nó sẽ có hiệu lực trên tài khoản của bạn. Bất cứ lúc nào, bạn có thể cập nhật email của mình trong hồ sơ từ trong trang tài khoản của bạn." + "emailUpdate.change-instructions": "Một email xác nhận sẽ được gửi đến địa chỉ email đã nhập với một liên kết duy nhất. Việc truy cập vào liên kết đó sẽ xác nhận quyền sở hữu của bạn đối với địa chỉ email và nó sẽ có hiệu lực trên tài khoản của bạn. Bất cứ lúc nào, bạn có thể cập nhật email của mình trong hồ sơ từ trong trang tài khoản của bạn.", + "emailUpdate.password-challenge": "Nhập mật khẩu của bạn để xác minh quyền sở hữu tài khoản." } \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/email.json b/public/language/zh-CN/admin/settings/email.json index 78fe0c70bf..011373afd6 100644 --- a/public/language/zh-CN/admin/settings/email.json +++ b/public/language/zh-CN/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "您可以从列表中选取一个已知的服务或自定义。", "smtp-transport.service": "选择服务", "smtp-transport.service-custom": "自定义", - "smtp-transport.service-help": "选取一个上方服务以便使用已知的信息。此外,还可以选取 “自定义”并在下方输入配置细节。", - "smtp-transport.gmail-warning1": "有报告称,Gmail 代发在安全性更高的账户上无法工作。在这种情况下,您需要将您的 Gmail 帐户设为允许安全性较低的应用程序。", - "smtp-transport.gmail-warning2": "有关此解决方法的更多信息,请参阅有关该问题的NodeMailer 文章。 另一种方法是利用 SendGrid,Mailgun 等第三方电子邮件插件。点这儿以浏览可用的插件。", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP 主机名", "smtp-transport.port": "SMTP 端口", "smtp-transport.security": "连接安全设置", diff --git a/public/language/zh-CN/user.json b/public/language/zh-CN/user.json index efe23e381c..5f94062335 100644 --- a/public/language/zh-CN/user.json +++ b/public/language/zh-CN/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "请在下方输入您的电子邮箱地址。此论坛使用您的电子邮箱地址用于定时发送摘要和通知,以及用于忘记密码时找回账号。", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "此字段为必填。", - "emailUpdate.change-instructions": "将向输入的电子邮箱地址发送一封带有唯一链接的确认电子邮件。访问该链接将验证您对该电子邮箱的所有权,它将在您的账号上处于活动状态。在任何时候,您都可以在您的账号页面更新存档的电子邮箱地址。" + "emailUpdate.change-instructions": "将向输入的电子邮箱地址发送一封带有唯一链接的确认电子邮件。访问该链接将验证您对该电子邮箱的所有权,它将在您的账号上处于活动状态。在任何时候,您都可以在您的账号页面更新存档的电子邮箱地址。", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/email.json b/public/language/zh-TW/admin/settings/email.json index f3c3753373..71d8f17e6c 100644 --- a/public/language/zh-TW/admin/settings/email.json +++ b/public/language/zh-TW/admin/settings/email.json @@ -10,9 +10,10 @@ "smtp-transport-help": "您可以從列表中選取一個已知的服務或自訂。", "smtp-transport.service": "選擇服務", "smtp-transport.service-custom": "自訂", - "smtp-transport.service-help": "選取一個上方服務以便使用已知的訊息。此外,還可以選取 “自訂”並在下方輸入設定細節。", - "smtp-transport.gmail-warning1": "有報告稱,Gmail 代發在安全性更高的帳戶上無法工作。在這種情況下,您需要將您的 Gmail 帳戶設為允許安全性較低的應用程式。", - "smtp-transport.gmail-warning2": "有關此解決方法的更多資訊,請參閱有關該問題的NodeMailer 文章。 另一種方法是利用 SendGrid,Mailgun 等第三方電子郵件外掛。點這兒以瀏覽可用的外掛。", + "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", + "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.", "smtp-transport.host": "SMTP 主機名", "smtp-transport.port": "SMTP 通訊埠", "smtp-transport.security": "連線安全設置", diff --git a/public/language/zh-TW/user.json b/public/language/zh-TW/user.json index 752dc00cdc..7f4e9db7f1 100644 --- a/public/language/zh-TW/user.json +++ b/public/language/zh-TW/user.json @@ -194,5 +194,6 @@ "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page." + "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", + "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership." } \ No newline at end of file diff --git a/public/src/admin/settings/email.js b/public/src/admin/settings/email.js index 20f5d8587d..e1598c2c0b 100644 --- a/public/src/admin/settings/email.js +++ b/public/src/admin/settings/email.js @@ -108,6 +108,18 @@ define('admin/settings/email', ['ace/ace', 'alerts', 'admin/settings'], function function handleSmtpServiceChange() { const isCustom = $('[id="email:smtpTransport:service"]').val() === 'nodebb-custom-smtp'; $('[id="email:smtpTransport:custom-service"]')[isCustom ? 'slideDown' : 'slideUp'](isCustom); + + const enabledEl = document.getElementById('email:smtpTransport:enabled'); + if (enabledEl) { + if (!enabledEl.checked) { + enabledEl.closest('label').classList.toggle('is-checked', true); + enabledEl.checked = true; + alerts.alert({ + message: '[[admin/settings/email:smtp-transport.auto-enable-toast]]', + timeout: 5000, + }); + } + } } return module; diff --git a/public/src/app.js b/public/src/app.js index 6560b911c1..b81bc59cc4 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -32,7 +32,11 @@ app.onDomReady = function () { }); }; -document.addEventListener('DOMContentLoaded', ajaxify.parseData); +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', ajaxify.parseData); +} else { + ajaxify.parseData(); +} (function () { let appLoaded = false; diff --git a/src/analytics.js b/src/analytics.js index 5d71d161a8..03be429637 100644 --- a/src/analytics.js +++ b/src/analytics.js @@ -4,7 +4,6 @@ const cronJob = require('cron').CronJob; const winston = require('winston'); const nconf = require('nconf'); const crypto = require('crypto'); -const LRU = require('lru-cache'); const util = require('util'); const _ = require('lodash'); @@ -15,6 +14,7 @@ const utils = require('./utils'); const plugins = require('./plugins'); const meta = require('./meta'); const pubsub = require('./pubsub'); +const cacheCreate = require('./cache/lru'); const Analytics = module.exports; @@ -37,10 +37,9 @@ let ipCache; const runJobs = nconf.get('runJobs'); Analytics.init = async function () { - ipCache = new LRU({ + ipCache = cacheCreate({ max: parseInt(meta.config['analytics:maxCache'], 10) || 500, - length: function () { return 1; }, - maxAge: 0, + ttl: 0, }); new cronJob('*/10 * * * * *', (async () => { diff --git a/src/cache.js b/src/cache.js index 7bb27961ce..996faf9237 100644 --- a/src/cache.js +++ b/src/cache.js @@ -1,9 +1,9 @@ 'use strict'; -const cacheCreate = require('./cacheCreate'); +const cacheCreate = require('./cache/lru'); module.exports = cacheCreate({ name: 'local', max: 40000, - maxAge: 0, + ttl: 0, }); diff --git a/src/cache/lru.js b/src/cache/lru.js new file mode 100644 index 0000000000..d0a92c46d5 --- /dev/null +++ b/src/cache/lru.js @@ -0,0 +1,143 @@ +'use strict'; + +module.exports = function (opts) { + const LRU = require('lru-cache'); + const pubsub = require('../pubsub'); + + // lru-cache@7 deprecations + const winston = require('winston'); + const chalk = require('chalk'); + + // sometimes we kept passing in `length` with no corresponding `maxSize`. + // This is now enforced in v7; drop superfluous property + if (opts.hasOwnProperty('length') && !opts.hasOwnProperty('maxSize')) { + winston.warn(`[cache/init(${opts.name})] ${chalk.white.bgRed.bold('DEPRECATION')} ${chalk.yellow('length')} was passed in without a corresponding ${chalk.yellow('maxSize')}. Both are now required as of lru-cache@7.0.0.`); + delete opts.length; + } + + const deprecations = new Map([ + ['stale', 'allowStale'], + ['maxAge', 'ttl'], + ['length', 'sizeCalculation'], + ]); + deprecations.forEach((newProp, oldProp) => { + if (opts.hasOwnProperty(oldProp) && !opts.hasOwnProperty(newProp)) { + winston.warn(`[cache/init(${opts.name})] ${chalk.white.bgRed.bold('DEPRECATION')} The option ${chalk.yellow(oldProp)} has been deprecated as of lru-cache@7.0.0. Please change this to ${chalk.yellow(newProp)} instead.`); + opts[newProp] = opts[oldProp]; + delete opts[oldProp]; + } + }); + + const lruCache = new LRU(opts); + + const cache = {}; + cache.name = opts.name; + cache.hits = 0; + cache.misses = 0; + cache.enabled = opts.hasOwnProperty('enabled') ? opts.enabled : true; + const cacheSet = lruCache.set; + + // backwards compatibility + const propertyMap = new Map([ + ['length', 'calculatedSize'], + ['max', 'max'], + ['maxSize', 'maxSize'], + ['itemCount', 'size'], + ]); + propertyMap.forEach((lruProp, cacheProp) => { + Object.defineProperty(cache, cacheProp, { + get: function () { + return lruCache[lruProp]; + }, + configurable: true, + enumerable: true, + }); + }); + + cache.set = function (key, value, ttl) { + if (!cache.enabled) { + return; + } + const opts = {}; + if (ttl) { + opts.ttl = ttl; + } + cacheSet.apply(lruCache, [key, value, opts]); + }; + + cache.get = function (key) { + if (!cache.enabled) { + return undefined; + } + const data = lruCache.get(key); + if (data === undefined) { + cache.misses += 1; + } else { + cache.hits += 1; + } + return data; + }; + + cache.del = function (keys) { + if (!Array.isArray(keys)) { + keys = [keys]; + } + pubsub.publish(`${cache.name}:lruCache:del`, keys); + keys.forEach(key => lruCache.delete(key)); + }; + cache.delete = cache.del; + + cache.reset = function () { + pubsub.publish(`${cache.name}:lruCache:reset`); + localReset(); + }; + cache.clear = cache.reset; + + function localReset() { + lruCache.clear(); + cache.hits = 0; + cache.misses = 0; + } + + pubsub.on(`${cache.name}:lruCache:reset`, () => { + localReset(); + }); + + pubsub.on(`${cache.name}:lruCache:del`, (keys) => { + if (Array.isArray(keys)) { + keys.forEach(key => lruCache.delete(key)); + } + }); + + cache.getUnCachedKeys = function (keys, cachedData) { + if (!cache.enabled) { + return keys; + } + let data; + let isCached; + const unCachedKeys = keys.filter((key) => { + data = cache.get(key); + isCached = data !== undefined; + if (isCached) { + cachedData[key] = data; + } + return !isCached; + }); + + const hits = keys.length - unCachedKeys.length; + const misses = keys.length - hits; + cache.hits += hits; + cache.misses += misses; + return unCachedKeys; + }; + + cache.dump = function () { + return lruCache.dump(); + }; + + cache.peek = function (key) { + return lruCache.peek(key); + }; + + return cache; +}; diff --git a/src/cache/ttl.js b/src/cache/ttl.js new file mode 100644 index 0000000000..3b9d3fee77 --- /dev/null +++ b/src/cache/ttl.js @@ -0,0 +1,94 @@ +'use strict'; + +module.exports = function (opts) { + const TTLCache = require('@isaacs/ttlcache'); + const pubsub = require('../pubsub'); + + const ttlCache = new TTLCache(opts); + + const cache = {}; + cache.name = opts.name; + cache.hits = 0; + cache.misses = 0; + cache.enabled = opts.hasOwnProperty('enabled') ? opts.enabled : true; + const cacheSet = ttlCache.set; + + cache.set = function (key, value, ttl) { + if (!cache.enabled) { + return; + } + const opts = {}; + if (ttl) { + opts.ttl = ttl; + } + cacheSet.apply(ttlCache, [key, value, opts]); + }; + + cache.get = function (key) { + if (!cache.enabled) { + return undefined; + } + const data = ttlCache.get(key); + if (data === undefined) { + cache.misses += 1; + } else { + cache.hits += 1; + } + return data; + }; + + cache.del = function (keys) { + if (!Array.isArray(keys)) { + keys = [keys]; + } + pubsub.publish(`${cache.name}:ttlCache:del`, keys); + keys.forEach(key => ttlCache.delete(key)); + }; + cache.delete = cache.del; + + cache.reset = function () { + pubsub.publish(`${cache.name}:ttlCache:reset`); + localReset(); + }; + cache.clear = cache.reset; + + function localReset() { + ttlCache.clear(); + cache.hits = 0; + cache.misses = 0; + } + + pubsub.on(`${cache.name}:ttlCache:reset`, () => { + localReset(); + }); + + pubsub.on(`${cache.name}:ttlCache:del`, (keys) => { + if (Array.isArray(keys)) { + keys.forEach(key => ttlCache.delete(key)); + } + }); + + cache.getUnCachedKeys = function (keys, cachedData) { + if (!cache.enabled) { + return keys; + } + let data; + let isCached; + const unCachedKeys = keys.filter((key) => { + data = cache.get(key); + isCached = data !== undefined; + if (isCached) { + cachedData[key] = data; + } + return !isCached; + }); + + const hits = keys.length - unCachedKeys.length; + const misses = keys.length - hits; + cache.hits += hits; + cache.misses += misses; + return unCachedKeys; + }; + + return cache; +}; diff --git a/src/cacheCreate.js b/src/cacheCreate.js index e3d7342165..14a5a7a79b 100644 --- a/src/cacheCreate.js +++ b/src/cacheCreate.js @@ -1,91 +1,3 @@ 'use strict'; -module.exports = function (opts) { - const LRU = require('lru-cache'); - const pubsub = require('./pubsub'); - - const cache = new LRU(opts); - - cache.name = opts.name; - cache.hits = 0; - cache.misses = 0; - cache.enabled = opts.hasOwnProperty('enabled') ? opts.enabled : true; - - const cacheSet = cache.set; - const cacheGet = cache.get; - const cacheDel = cache.del; - const cacheReset = cache.reset; - - cache.set = function (key, value, maxAge) { - if (!cache.enabled) { - return; - } - cacheSet.apply(cache, [key, value, maxAge]); - }; - - cache.get = function (key) { - if (!cache.enabled) { - return undefined; - } - const data = cacheGet.apply(cache, [key]); - if (data === undefined) { - cache.misses += 1; - } else { - cache.hits += 1; - } - return data; - }; - - cache.del = function (keys) { - if (!Array.isArray(keys)) { - keys = [keys]; - } - pubsub.publish(`${cache.name}:cache:del`, keys); - keys.forEach(key => cacheDel.apply(cache, [key])); - }; - - cache.reset = function () { - pubsub.publish(`${cache.name}:cache:reset`); - localReset(); - }; - - function localReset() { - cacheReset.apply(cache); - cache.hits = 0; - cache.misses = 0; - } - - pubsub.on(`${cache.name}:cache:reset`, () => { - localReset(); - }); - - pubsub.on(`${cache.name}:cache:del`, (keys) => { - if (Array.isArray(keys)) { - keys.forEach(key => cacheDel.apply(cache, [key])); - } - }); - - cache.getUnCachedKeys = function (keys, cachedData) { - if (!cache.enabled) { - return keys; - } - let data; - let isCached; - const unCachedKeys = keys.filter((key) => { - data = cache.get(key); - isCached = data !== undefined; - if (isCached) { - cachedData[key] = data; - } - return !isCached; - }); - - const hits = keys.length - unCachedKeys.length; - const misses = keys.length - hits; - cache.hits += hits; - cache.misses += misses; - return unCachedKeys; - }; - - return cache; -}; +module.exports = require('./cache/lru'); diff --git a/src/cli/colors.js b/src/cli/colors.js index 71723ae42f..7ddd188898 100644 --- a/src/cli/colors.js +++ b/src/cli/colors.js @@ -19,7 +19,7 @@ const colors = [ ]; function humanReadableArgName(arg) { - const nameOutput = arg.name + (arg.variadic === true ? '...' : ''); + const nameOutput = arg.name() + (arg.variadic === true ? '...' : ''); return arg.required ? `<${nameOutput}>` : `[${nameOutput}]`; } diff --git a/src/cli/package-install.js b/src/cli/package-install.js index e9ca4a2e44..b3b5544bb4 100644 --- a/src/cli/package-install.js +++ b/src/cli/package-install.js @@ -61,6 +61,14 @@ pkgInstall.supportedPackageManager = [ pkgInstall.getPackageManager = () => { try { + const packageContents = require(paths.currentPackage); + // This regex technically allows invalid values: + // cnpm isn't supported by corepack and it doesn't enforce a version string being present + const pmRegex = new RegExp(`^(?${pkgInstall.supportedPackageManager.join('|')})@?[\\d\\w\\.\\-]*$`); + const packageManager = packageContents.packageManager ? packageContents.packageManager.match(pmRegex) : false; + if (packageManager) { + return packageManager.groups.packageManager; + } fs.accessSync(path.join(paths.nodeModules, 'nconf/package.json'), fs.constants.R_OK); const nconf = require('nconf'); if (!Object.keys(nconf.stores).length) { @@ -70,42 +78,30 @@ pkgInstall.getPackageManager = () => { file: configFile, }); } - if (nconf.get('package_manager') && !pkgInstall.supportedPackageManager.includes(nconf.get('package_manager'))) { nconf.clear('package_manager'); } if (!nconf.get('package_manager')) { - // Best guess based on lockfile detection - try { - // use npm if lockfile present - fs.accessSync(path.resolve(__dirname, '../../package-lock.json'), fs.constants.R_OK); - } catch (e) { - nconf.set('package_manager', [ - // no cnpm detection as it uses same lockfile as npm - 'yarn.lock', 'pnpm-lock.yaml', - ].reduce((result, cur) => { - if (result) { - return result; - } - - try { - fs.accessSync(path.resolve(__dirname, `../../${cur}`), fs.constants.R_OK); - return cur.slice(0, 4); - } catch (e) { - return result; - } - }, undefined)); - } + nconf.set('package_manager', getPackageManagerByLockfile()); } return nconf.get('package_manager') || 'npm'; } catch (e) { - // nconf not install or other unexpected error/exception - return 'npm'; + // nconf not installed or other unexpected error/exception + return getPackageManagerByLockfile() || 'npm'; } }; +function getPackageManagerByLockfile() { + for (const [packageManager, lockfile] of Object.entries({ npm: 'package-lock.json', yarn: 'yarn.lock', pnpm: 'pnpm-lock.yaml' })) { + try { + fs.accessSync(path.resolve(__dirname, `../../${lockfile}`), fs.constants.R_OK); + return packageManager; + } catch (e) {} + } +} + pkgInstall.installAll = () => { const prod = process.env.NODE_ENV !== 'development'; let command = 'npm install'; diff --git a/src/controllers/accounts/helpers.js b/src/controllers/accounts/helpers.js index 526175a838..7c249d8d5f 100644 --- a/src/controllers/accounts/helpers.js +++ b/src/controllers/accounts/helpers.js @@ -44,6 +44,11 @@ helpers.getUserDataByUserSlug = async function (userslug, callerUID, query = {}) userData = await user.hidePrivateData(userData, callerUID); userData.emailClass = userSettings.showemail ? 'hide' : ''; + // If email unconfirmed, hide from result set + if (!userData['email:confirmed']) { + userData.email = ''; + } + if (isAdmin || isSelf || (canViewInfo && !results.isTargetAdmin)) { userData.ips = results.ips; } diff --git a/src/controllers/admin/cache.js b/src/controllers/admin/cache.js index 430cc28b8a..67c9864ae5 100644 --- a/src/controllers/admin/cache.js +++ b/src/controllers/admin/cache.js @@ -14,8 +14,11 @@ cacheController.get = function (req, res) { return { length: cache.length, max: cache.max, + maxSize: cache.maxSize, itemCount: cache.itemCount, - percentFull: ((cache.length / cache.max) * 100).toFixed(2), + percentFull: cache.name === 'post' ? + ((cache.length / cache.maxSize) * 100).toFixed(2) : + ((cache.itemCount / cache.max) * 100).toFixed(2), hits: utils.addCommas(String(cache.hits)), misses: utils.addCommas(String(cache.misses)), hitRatio: ((cache.hits / (cache.hits + cache.misses) || 0)).toFixed(4), diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index cf2d6a55a4..b97b0ca8c2 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -244,7 +244,7 @@ authenticationController.login = async (req, res, next) => { } const loginWith = meta.config.allowLoginWith || 'username-email'; - req.body.username = req.body.username.trim(); + req.body.username = String(req.body.username).trim(); const errorHandler = res.locals.noScriptErrors || helpers.noScriptErrors; try { await plugins.hooks.fire('filter:login.check', { req: req, res: res, userData: req.body }); diff --git a/src/database/cache.js b/src/database/cache.js index 069b181a80..07974e9f3b 100644 --- a/src/database/cache.js +++ b/src/database/cache.js @@ -1,11 +1,10 @@ 'use strict'; module.exports.create = function (name) { - const cacheCreate = require('../cacheCreate'); + const cacheCreate = require('../cache/lru'); return cacheCreate({ name: `${name}-object`, max: 40000, - length: function () { return 1; }, - maxAge: 0, + ttl: 0, }); }; diff --git a/src/flags.js b/src/flags.js index b5e3c53b64..cca52bb292 100644 --- a/src/flags.js +++ b/src/flags.js @@ -829,9 +829,10 @@ Flags.notify = async function (flagObj, uid, notifySelf = false) { }); uids = uids.concat(modUids[0]); } else if (flagObj.type === 'user') { + const targetDisplayname = flagObj.target && flagObj.target.user ? flagObj.target.user.displayname : '[[global:guest]]'; notifObj = await notifications.create({ type: 'new-user-flag', - bodyShort: `[[notifications:user_flagged_user, ${displayname}, ${flagObj.target.user.displayname}]]`, + bodyShort: `[[notifications:user_flagged_user, ${displayname}, ${targetDisplayname}]]`, bodyLong: await plugins.hooks.fire('filter:parse.raw', String(flagObj.description || '')), path: `/flags/${flagObj.flagId}`, nid: `flag:user:${flagObj.targetId}`, diff --git a/src/groups/cache.js b/src/groups/cache.js index 0acea646d6..ede405dcee 100644 --- a/src/groups/cache.js +++ b/src/groups/cache.js @@ -1,12 +1,12 @@ 'use strict'; -const cacheCreate = require('../cacheCreate'); +const cacheCreate = require('../cache/lru'); module.exports = function (Groups) { Groups.cache = cacheCreate({ name: 'group', max: 40000, - maxAge: 0, + ttl: 0, }); Groups.clearCache = function (uid, groupNames) { diff --git a/src/middleware/index.js b/src/middleware/index.js index a31cc4430d..d0d3ed346f 100644 --- a/src/middleware/index.js +++ b/src/middleware/index.js @@ -6,7 +6,6 @@ const csrf = require('csurf'); const validator = require('validator'); const nconf = require('nconf'); const toobusy = require('toobusy-js'); -const LRU = require('lru-cache'); const util = require('util'); const plugins = require('../plugins'); @@ -15,6 +14,7 @@ const user = require('../user'); const groups = require('../groups'); const analytics = require('../analytics'); const privileges = require('../privileges'); +const cacheCreate = require('../cache/lru'); const helpers = require('./helpers'); const controllers = { @@ -22,8 +22,8 @@ const controllers = { helpers: require('../controllers/helpers'), }; -const delayCache = new LRU({ - maxAge: 1000 * 60, +const delayCache = cacheCreate({ + ttl: 1000 * 60, }); const middleware = module.exports; diff --git a/src/middleware/uploads.js b/src/middleware/uploads.js index 941b9c27bc..5b1e9c392f 100644 --- a/src/middleware/uploads.js +++ b/src/middleware/uploads.js @@ -1,16 +1,16 @@ 'use strict'; -const LRU = require('lru-cache'); +const cacheCreate = require('../cache/ttl'); const meta = require('../meta'); const helpers = require('./helpers'); const user = require('../user'); -const cache = new LRU({ - maxAge: meta.config.uploadRateLimitCooldown * 1000, +const cache = cacheCreate({ + ttl: meta.config.uploadRateLimitCooldown * 1000, }); exports.clearCache = function () { - cache.reset(); + cache.clear(); }; exports.ratelimit = helpers.try(async (req, res, next) => { @@ -19,11 +19,10 @@ exports.ratelimit = helpers.try(async (req, res, next) => { return next(); } - const count = (cache.peek(`${req.ip}:uploaded_file_count`) || 0) + req.files.files.length; + const count = (cache.get(`${req.ip}:uploaded_file_count`) || 0) + req.files.files.length; if (count > meta.config.uploadRateLimitThreshold) { return next(new Error(['[[error:upload-ratelimit-reached]]'])); } - cache.set(`${req.ip}:uploaded_file_count`, count); next(); }); diff --git a/src/posts/cache.js b/src/posts/cache.js index 061c46d88d..888fba6424 100644 --- a/src/posts/cache.js +++ b/src/posts/cache.js @@ -1,12 +1,12 @@ 'use strict'; -const cacheCreate = require('../cacheCreate'); +const cacheCreate = require('../cache/lru'); const meta = require('../meta'); module.exports = cacheCreate({ name: 'post', - max: meta.config.postCacheSize, - length: function (n) { return n.length; }, - maxAge: 0, + maxSize: meta.config.postCacheSize, + sizeCalculation: function (n) { return n.length; }, + ttl: 0, enabled: global.env === 'production', }); diff --git a/src/posts/uploads.js b/src/posts/uploads.js index 9504752385..27a6c10168 100644 --- a/src/posts/uploads.js +++ b/src/posts/uploads.js @@ -98,6 +98,10 @@ module.exports = function (Posts) { let files = await fs.readdir(_getFullPath('/files')); files = files.filter(filename => filename !== '.gitignore'); + // Exclude non-timestamped files (e.g. group covers; see gh#10783/gh#10705) + const tsPrefix = /^\d{13}-/; + files = files.filter(filename => tsPrefix.test(filename)); + files = await Promise.all(files.map(async filename => (await Posts.uploads.isOrphan(`files/${filename}`) ? `files/${filename}` : null))); files = files.filter(Boolean); diff --git a/src/user/admin.js b/src/user/admin.js index f67daae511..c92035fc47 100644 --- a/src/user/admin.js +++ b/src/user/admin.js @@ -65,7 +65,7 @@ module.exports = function (User) { let ips = []; if (showIps) { - ips = await Promise.all(uids.map(uid => db.getSortedSetRevRange(`uid:${uid}:ip`, 0, -1))); + ips = await db.getSortedSetsMembers(uids.map(uid => `uid:${uid}:ip`)); } let line = ''; diff --git a/src/user/blocks.js b/src/user/blocks.js index 6655965f2a..19ad2c0766 100644 --- a/src/user/blocks.js +++ b/src/user/blocks.js @@ -2,15 +2,14 @@ const db = require('../database'); const plugins = require('../plugins'); -const cacheCreate = require('../cacheCreate'); +const cacheCreate = require('../cache/lru'); module.exports = function (User) { User.blocks = { _cache: cacheCreate({ name: 'user:blocks', max: 100, - length: function () { return 1; }, - maxAge: 0, + ttl: 0, }), }; diff --git a/src/user/create.js b/src/user/create.js index a278297db7..f0ef5f37fc 100644 --- a/src/user/create.js +++ b/src/user/create.js @@ -109,7 +109,7 @@ module.exports = function (User) { } if (userData.email && userData.uid > 1) { - User.email.sendValidationEmail(userData.uid, { + await User.email.sendValidationEmail(userData.uid, { email: userData.email, template: 'welcome', subject: `[[email:welcome-to, ${meta.config.title || meta.config.browserTitle || 'NodeBB'}]]`, diff --git a/src/user/interstitials.js b/src/user/interstitials.js index 6f641336fa..fcec4b7f96 100644 --- a/src/user/interstitials.js +++ b/src/user/interstitials.js @@ -1,6 +1,7 @@ 'use strict'; const winston = require('winston'); +const util = require('util'); const user = require('.'); const db = require('../database'); @@ -9,6 +10,8 @@ const privileges = require('../privileges'); const plugins = require('../plugins'); const utils = require('../utils'); +const sleep = util.promisify(setTimeout); + const Interstitials = module.exports; Interstitials.email = async (data) => { @@ -19,6 +22,11 @@ Interstitials.email = async (data) => { return data; } + const [isAdminOrGlobalMod, hasPassword] = await Promise.all([ + user.isAdminOrGlobalMod(data.req.uid), + user.hasPassword(data.userData.uid), + ]); + let email; if (data.userData.uid) { email = await user.getUserField(data.userData.uid, 'email'); @@ -29,12 +37,13 @@ Interstitials.email = async (data) => { data: { email, requireEmailAddress: meta.config.requireEmailAddress, + issuePasswordChallenge: !!data.userData.uid && hasPassword, }, callback: async (userData, formData) => { // Validate and send email confirmation if (userData.uid) { - const [isAdminOrGlobalMod, canEdit, current, { allowed, error }] = await Promise.all([ - user.isAdminOrGlobalMod(data.req.uid), + const [isPasswordCorrect, canEdit, current, { allowed, error }] = await Promise.all([ + user.isPasswordCorrect(userData.uid, formData.password, data.req.ip), privileges.users.canEdit(data.req.uid, userData.uid), user.getUserField(userData.uid, 'email'), plugins.hooks.fire('filter:user.saveEmail', { @@ -46,6 +55,10 @@ Interstitials.email = async (data) => { }), ]); + if (!isAdminOrGlobalMod && !isPasswordCorrect) { + await sleep(2000); + } + if (formData.email && formData.email.length) { if (!allowed || !utils.isEmailValid(formData.email)) { throw new Error(error); @@ -60,6 +73,10 @@ Interstitials.email = async (data) => { await user.setUserField(userData.uid, 'email', formData.email); await user.email.confirmByUid(userData.uid); } else if (canEdit) { + if (hasPassword && !isPasswordCorrect) { + throw new Error('[[error:invalid-password]]'); + } + await user.email.sendValidationEmail(userData.uid, { email: formData.email, force: true, @@ -76,7 +93,7 @@ Interstitials.email = async (data) => { throw new Error('[[error:invalid-email]]'); } - if (current) { + if (current.length && (!hasPassword || (hasPassword && isPasswordCorrect) || isAdminOrGlobalMod)) { // User explicitly clearing their email await user.email.remove(userData.uid, data.req.session.id); } diff --git a/src/user/password.js b/src/user/password.js index 6761ed372d..f70ba1aa13 100644 --- a/src/user/password.js +++ b/src/user/password.js @@ -26,7 +26,12 @@ module.exports = function (User) { hashedPassword = ''; } - User.isPasswordValid(password, 0); + try { + User.isPasswordValid(password, 0); + } catch (e) { + return false; + } + await User.auth.logAttempt(uid, ip); const ok = await Password.compare(password, hashedPassword, !!parseInt(shaWrapped, 10)); if (ok) { diff --git a/src/views/admin/advanced/cache.tpl b/src/views/admin/advanced/cache.tpl index 8de6734da0..3ac75a0d38 100644 --- a/src/views/admin/advanced/cache.tpl +++ b/src/views/admin/advanced/cache.tpl @@ -12,7 +12,7 @@ - {postCache.length} / {postCache.max}
+ {postCache.length} / {postCache.maxSize}
@@ -46,7 +46,7 @@
- {objectCache.length} / {objectCache.max}
+ {objectCache.itemCount} / {objectCache.max}
[[admin/advanced/cache:percent-full, {objectCache.percentFull}]] @@ -72,7 +72,7 @@
- {groupCache.length} / {groupCache.max}
+ {groupCache.itemCount} / {groupCache.max}
@@ -98,7 +98,7 @@
- {localCache.length} / {localCache.max}
+ {localCache.itemCount} / {localCache.max}
diff --git a/src/views/partials/email_update.tpl b/src/views/partials/email_update.tpl index 96444dc49c..bdf70d6ac0 100644 --- a/src/views/partials/email_update.tpl +++ b/src/views/partials/email_update.tpl @@ -8,6 +8,14 @@
+

[[user:emailUpdate.change-instructions]]

-

[[user:emailUpdate.change-instructions]]

+ + {{{ if update }}} +
+ + +

[[user:emailUpdate.password-challenge]]

+
+ {{{ end }}}
\ No newline at end of file diff --git a/src/views/partials/footer/js.tpl b/src/views/partials/footer/js.tpl index df007e7cef..a0b8668f4c 100644 --- a/src/views/partials/footer/js.tpl +++ b/src/views/partials/footer/js.tpl @@ -5,8 +5,6 @@ {{{end}}}