diff --git a/apps/browser/src/_locales/en/messages.json b/apps/browser/src/_locales/en/messages.json
index 026d3b535c..7fb21952dd 100644
--- a/apps/browser/src/_locales/en/messages.json
+++ b/apps/browser/src/_locales/en/messages.json
@@ -107,6 +107,9 @@
"copyPassword": {
"message": "Copy password"
},
+ "copyPassphrase": {
+ "message": "Copy passphrase"
+ },
"copyNote": {
"message": "Copy note"
},
@@ -407,6 +410,9 @@
"generatePassword": {
"message": "Generate password"
},
+ "generatePassphrase": {
+ "message": "Generate passphrase"
+ },
"regeneratePassword": {
"message": "Regenerate password"
},
diff --git a/apps/desktop/src/locales/en/messages.json b/apps/desktop/src/locales/en/messages.json
index 9924a91fa3..f119d7366d 100644
--- a/apps/desktop/src/locales/en/messages.json
+++ b/apps/desktop/src/locales/en/messages.json
@@ -259,6 +259,9 @@
"generatePassword": {
"message": "Generate password"
},
+ "generatePassphrase": {
+ "message": "Generate passphrase"
+ },
"type": {
"message": "Type"
},
@@ -394,6 +397,10 @@
"copyPassword": {
"message": "Copy password"
},
+ "copyPassphrase": {
+ "message": "Copy passphrase",
+ "description": "Copy passphrase to clipboard"
+ },
"copyUri": {
"message": "Copy URI"
},
diff --git a/apps/web/src/locales/en/messages.json b/apps/web/src/locales/en/messages.json
index c50775efa6..a27f13f9ae 100644
--- a/apps/web/src/locales/en/messages.json
+++ b/apps/web/src/locales/en/messages.json
@@ -405,6 +405,9 @@
"generatePassword": {
"message": "Generate password"
},
+ "generatePassphrase": {
+ "message": "Generate passphrase"
+ },
"checkPassword": {
"message": "Check if password has been exposed."
},
@@ -663,6 +666,10 @@
"message": "Copy password",
"description": "Copy password to clipboard"
},
+ "copyPassphrase": {
+ "message": "Copy passphrase",
+ "description": "Copy passphrase to clipboard"
+ },
"passwordCopied": {
"message": "Password copied"
},
diff --git a/libs/tools/generator/components/src/credential-generator.component.html b/libs/tools/generator/components/src/credential-generator.component.html
index b174349ece..53df58c848 100644
--- a/libs/tools/generator/components/src/credential-generator.component.html
+++ b/libs/tools/generator/components/src/credential-generator.component.html
@@ -16,18 +16,21 @@
-
+
+ >
{
+ if (nav === "password") {
+ return this.i18nService.t("copyPassword");
+ }
+
+ if (nav === "passphrase") {
+ return this.i18nService.t("copyPassphrase");
+ }
+
+ return this.i18nService.t("copyUsername");
+ }),
+ );
+
+ /**
+ * Emits the generate button aria-label respective of the selected credential type
+ *
+ * FIXME: Move label and logic to `AlgorithmInfo` within the `CredentialGeneratorService`.
+ */
+ protected credentialTypeGenerateLabel$ = this.root$.pipe(
+ map(({ nav }) => {
+ if (nav === "password") {
+ return this.i18nService.t("generatePassword");
+ }
+
+ if (nav === "passphrase") {
+ return this.i18nService.t("generatePassphrase");
+ }
+
+ return this.i18nService.t("generateUsername");
+ }),
+ );
+
protected onRootChanged(nav: RootNavValue) {
// prevent subscription cycle
if (this.root$.value.nav !== nav) {
diff --git a/libs/tools/generator/components/src/password-generator.component.html b/libs/tools/generator/components/src/password-generator.component.html
index b4cf8c6cdb..aecdf0f6a4 100644
--- a/libs/tools/generator/components/src/password-generator.component.html
+++ b/libs/tools/generator/components/src/password-generator.component.html
@@ -14,18 +14,21 @@
-
+
+ >
(null);
+ /**
+ * Emits the copy button aria-label respective of the selected credential
+ *
+ * FIXME: Move label and logic to `AlgorithmInfo` within the `CredentialGeneratorService`.
+ */
+ protected credentialTypeCopyLabel$ = this.credentialType$.pipe(
+ map((cred) => {
+ if (cred === "password") {
+ return this.i18nService.t("copyPassword");
+ }
+
+ return this.i18nService.t("copyPassphrase");
+ }),
+ );
+
+ /**
+ * Emits the generate button aria-label respective of the selected credential
+ *
+ * FIXME: Move label and logic to `AlgorithmInfo` within the `CredentialGeneratorService`.
+ */
+ protected credentialTypeGenerateLabel$ = this.credentialType$.pipe(
+ map((cred) => {
+ if (cred === "password") {
+ return this.i18nService.t("generatePassword");
+ }
+
+ return this.i18nService.t("generatePassphrase");
+ }),
+ );
+
/** Emits the last generated value. */
protected readonly value$ = new BehaviorSubject("");
diff --git a/libs/tools/generator/components/src/username-generator.component.html b/libs/tools/generator/components/src/username-generator.component.html
index e9d7d1c1f8..ad8cd79612 100644
--- a/libs/tools/generator/components/src/username-generator.component.html
+++ b/libs/tools/generator/components/src/username-generator.component.html
@@ -3,18 +3,23 @@
-
+
+
+
+ >