diff --git a/public/language/en-US/error.json b/public/language/en-US/error.json
index f12e15c94f..ae9a6eb41d 100644
--- a/public/language/en-US/error.json
+++ b/public/language/en-US/error.json
@@ -31,7 +31,7 @@
"invalid-path": "Invalid path",
"folder-exists": "Folder exists",
"invalid-pagination-value": "Invalid pagination value, must be at least %1 and at most %2",
- "username-taken": "Username taken",
+ "username-taken": "Username taken.",
"email-taken": "Email address is already taken.",
"email-nochange": "The email entered is the same as the email already on file.",
"email-invited": "Email was already invited",
diff --git a/public/src/client/register.js b/public/src/client/register.js
index d8144d26d5..834790ed5e 100644
--- a/public/src/client/register.js
+++ b/public/src/client/register.js
@@ -183,9 +183,15 @@ define('forum/register', [
}
function showError(input, element, msg) {
- translator.translate(msg, function (msg) {
+ translator.translate(msg, function (translatedMsg) {
input.attr('aria-invalid', 'true');
- element.html(msg);
+ // Used chatgpt to add the feature of randomly generated suggested username
+ if (msg === '[[error:username-taken]]') {
+ const originalUsername = input.val();
+ const suggestedUsername = originalUsername + Math.floor(Math.random() * 1000);
+ translatedMsg += `
Suggested username: ${suggestedUsername}`;
+ }
+ element.html(translatedMsg);
element.parent()
.removeClass('register-success')
.addClass('register-danger');