Merge branch 'auth/pm-8111/browser-refresh-login-component' of https://github.com/bitwarden/clients into auth/pm-8111/browser-refresh-login-component

This commit is contained in:
Alec Rippberger 2024-10-15 12:35:41 -05:00
commit 3354527a5a
No known key found for this signature in database
GPG Key ID: 9DD8DA583B28154A
277 changed files with 12591 additions and 1445 deletions

View File

@ -293,6 +293,12 @@
"no-restricted-imports": ["error", { "patterns": ["@bitwarden/send-ui/*", "src/**/*"] }] "no-restricted-imports": ["error", { "patterns": ["@bitwarden/send-ui/*", "src/**/*"] }]
} }
}, },
{
"files": ["libs/tools/card/src/**/*.ts"],
"rules": {
"no-restricted-imports": ["error", { "patterns": ["@bitwarden/tools-card/*", "src/**/*"] }]
}
},
{ {
"files": ["libs/vault/src/**/*.ts"], "files": ["libs/vault/src/**/*.ts"],
"rules": { "rules": {

View File

@ -24,6 +24,7 @@
./libs/tools/README.md ./libs/tools/README.md
./libs/tools/export/vault-export/README.md ./libs/tools/export/vault-export/README.md
./libs/tools/send/README.md ./libs/tools/send/README.md
./libs/tools/card/README.md
./libs/vault/README.md ./libs/vault/README.md
./README.md ./README.md
./LICENSE_BITWARDEN.txt ./LICENSE_BITWARDEN.txt

View File

@ -19,6 +19,8 @@ const config: StorybookConfig = {
"../apps/browser/src/**/*.stories.@(js|jsx|ts|tsx)", "../apps/browser/src/**/*.stories.@(js|jsx|ts|tsx)",
"../bitwarden_license/bit-web/src/**/*.mdx", "../bitwarden_license/bit-web/src/**/*.mdx",
"../bitwarden_license/bit-web/src/**/*.stories.@(js|jsx|ts|tsx)", "../bitwarden_license/bit-web/src/**/*.stories.@(js|jsx|ts|tsx)",
"../libs/tools/card/src/**/*.mdx",
"../libs/tools/card/src/**/*.stories.@(js|jsx|ts|tsx)",
], ],
addons: [ addons: [
getAbsolutePath("@storybook/addon-links"), getAbsolutePath("@storybook/addon-links"),

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "المولّد", "message": "المولّد",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "قم بإنشاء كلمات مرور قوية وفريدة لتسجيلات الدخول الخاصة بك." "message": "قم بإنشاء كلمات مرور قوية وفريدة لتسجيلات الدخول الخاصة بك."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "تأكيد" "message": "تأكيد"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Yaradıcı", "message": "Yaradıcı",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Hesablarınız üçün avtomatik olaraq güclü, unikal parollar yaradın." "message": "Hesablarınız üçün avtomatik olaraq güclü, unikal parollar yaradın."
@ -2498,8 +2498,26 @@
"message": "Send uğurla yaradıldı!", "message": "Send uğurla yaradıldı!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Send, növbəti $DAYS$ ərzində keçidə sahib olan hər kəsə əlçatan olacaq.", "message": "Send, növbəti 1 saat ərzində keçidə sahib olan hər kəsə əlçatan olacaq.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "Send, növbəti $HOURS$ saat ərzində keçidə sahib olan hər kəsə əlçatan olacaq.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "Send, növbəti 1 gün ərzində keçidə sahib olan hər kəsə əlçatan olacaq.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "Send, növbəti $DAYS$ gün ərzində keçidə sahib olan hər kəsə əlçatan olacaq.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
"days": { "days": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Bu sayt üçün uyuşan giriş məlumatı yoxdur" "message": "Bu sayt üçün uyuşan giriş məlumatı yoxdur"
}, },
"searchSavePasskeyNewLogin": {
"message": "Axtarın və ya keçid açarını yeni bir giriş olaraq saxlayın"
},
"confirm": { "confirm": {
"message": "Təsdiqlə" "message": "Təsdiqlə"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Генератар", "message": "Генератар",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Аўтаматычна генерыруйце надзейныя і ўнікальныя паролі для вашых лагінаў." "message": "Аўтаматычна генерыруйце надзейныя і ўнікальныя паролі для вашых лагінаў."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Пацвердзіць" "message": "Пацвердзіць"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Генератор", "message": "Генератор",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Автоматично създаване на силни и неповторими пароли." "message": "Автоматично създаване на силни и неповторими пароли."
@ -2498,7 +2498,25 @@
"message": "Изпращането е създадено успешно!", "message": "Изпращането е създадено успешно!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Изпращането ще бъде достъпно за всеки с връзката през следващия 1 час.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "Изпращането ще бъде достъпно за всеки с връзката през следващите $HOURS$ часа.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "Изпращането ще бъде достъпно за всеки с връзката през следващия 1 ден.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "Изпращането ще бъде достъпно за всеки с връзката през следващите $DAYS$ дни.", "message": "Изпращането ще бъде достъпно за всеки с връзката през следващите $DAYS$ дни.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Няма записи за вписване отговарящи на този уеб сайт" "message": "Няма записи за вписване отговарящи на този уеб сайт"
}, },
"searchSavePasskeyNewLogin": {
"message": "Търсене или запазване на секретния ключ като нов елемент за вписване"
},
"confirm": { "confirm": {
"message": "Потвърждаване" "message": "Потвърждаване"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "উৎপাদক", "message": "উৎপাদক",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "আপনার লগইনগুলির জন্য স্বয়ংক্রিয়ভাবে শক্তিশালী, অদ্বিতীয় পাসওয়ার্ড তৈরি করুন।" "message": "আপনার লগইনগুলির জন্য স্বয়ংক্রিয়ভাবে শক্তিশালী, অদ্বিতীয় পাসওয়ার্ড তৈরি করুন।"
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatically generate strong, unique passwords for your logins." "message": "Automatically generate strong, unique passwords for your logins."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generador", "message": "Generador",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Genera automàticament contrasenyes fortes i úniques per als vostres inicis de sessió." "message": "Genera automàticament contrasenyes fortes i úniques per als vostres inicis de sessió."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirma-ho" "message": "Confirma-ho"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generátor", "message": "Generátor",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Vygenerujte si silné a unikátní heslo pro přihlašovací údaje." "message": "Vygenerujte si silné a unikátní heslo pro přihlašovací údaje."
@ -2498,7 +2498,25 @@
"message": "Send byl úspěšně vytvořen!", "message": "Send byl úspěšně vytvořen!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Send bude k dispozici na příští 1 hodinu každému, kdo má odkaz.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "Send bude k dispozici na příštích $HOURS$ hodin každému, kdo má odkaz.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "Send bude k dispozici na příští 1 den každému, kdo má odkaz.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "Send bude k dispozici na příštích $DAYS$ dnů každému, kdo má odkaz.", "message": "Send bude k dispozici na příštích $DAYS$ dnů každému, kdo má odkaz.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Žádné odpovídající přihlašovací údaje pro tento web" "message": "Žádné odpovídající přihlašovací údaje pro tento web"
}, },
"searchSavePasskeyNewLogin": {
"message": "Vyhledat nebo uložit přístupový klíč jako nové přihlášení"
},
"confirm": { "confirm": {
"message": "Potvrdit" "message": "Potvrdit"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Cynhyrchydd", "message": "Cynhyrchydd",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Cynhyrchu cyfrineiriau cryf ac unigryw ar gyfer eich cyfrifon yn awtomatig." "message": "Cynhyrchu cyfrineiriau cryf ac unigryw ar gyfer eich cyfrifon yn awtomatig."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Cadarnhau" "message": "Cadarnhau"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Opret automatisk stærke, unikke adgangskoder til dine logins." "message": "Opret automatisk stærke, unikke adgangskoder til dine logins."
@ -2498,8 +2498,26 @@
"message": "Send er hermed oprettet!", "message": "Send er hermed oprettet!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Denne Send vil være tilgængelig for alle med linket i de næste $DAYS$ dage.", "message": "Denne Send vil være tilgængelig for alle med linket den kommende time.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "Denne Send vil være tilgængelig for alle med linket de kommende $HOURS$ timer.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "Denne Send vil være tilgængelig for alle med linket den kommende dag.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "Denne Send vil være tilgængelig for alle med linket de kommende $DAYS$ dage.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
"days": { "days": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Ingen matchende logins for dette websted" "message": "Ingen matchende logins for dette websted"
}, },
"searchSavePasskeyNewLogin": {
"message": "Søg eller gem adgangsnøgle som nyt login"
},
"confirm": { "confirm": {
"message": "Bekræft" "message": "Bekræft"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Generiert automatisch ein starkes und einzigartiges Passwort." "message": "Generiert automatisch ein starkes und einzigartiges Passwort."
@ -2498,7 +2498,25 @@
"message": "Send erfolgreich erstellt!", "message": "Send erfolgreich erstellt!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Das Send wird jedem mit dem Link für die nächste Stunde zur Verfügung stehen.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "Das Send wird jedem mit dem Link für die nächsten $HOURS$ Stunden zur Verfügung stehen.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "Das Send wird jedem mit dem Link für den nächsten Tag zur Verfügung stehen.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "Das Send wird jedem mit dem Link für die nächsten $DAYS$ Tage zur Verfügung stehen.", "message": "Das Send wird jedem mit dem Link für die nächsten $DAYS$ Tage zur Verfügung stehen.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Keine passenden Zugangsdaten für diese Seite" "message": "Keine passenden Zugangsdaten für diese Seite"
}, },
"searchSavePasskeyNewLogin": {
"message": "Passkeys suchen oder als neue Zugangsdaten speichern"
},
"confirm": { "confirm": {
"message": "Bestätigen" "message": "Bestätigen"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Γεννήτρια", "message": "Γεννήτρια",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Δημιουργήστε αυτόματα ισχυρούς και μοναδικούς κωδικούς πρόσβασης για τις συνδέσεις σας." "message": "Δημιουργήστε αυτόματα ισχυρούς και μοναδικούς κωδικούς πρόσβασης για τις συνδέσεις σας."
@ -2498,7 +2498,25 @@
"message": "Το Send δημιουργήθηκε επιτυχώς!", "message": "Το Send δημιουργήθηκε επιτυχώς!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Το Send θα είναι διαθέσιμο σε όποιον έχει τον σύνδεσμο για την επόμενη 1 ώρα.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "Το Send θα είναι διαθέσιμο σε όποιον έχει τον σύνδεσμο για τις επόμενες $HOURS$ ώρες.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "Το Send θα είναι διαθέσιμο σε όποιον έχει τον σύνδεσμο για την επόμενη 1 ημέρα.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "Το Send θα είναι διαθέσιμο σε όποιον έχει τον σύνδεσμο για τις επόμενες $DAYS$ ημέρες.", "message": "Το Send θα είναι διαθέσιμο σε όποιον έχει τον σύνδεσμο για τις επόμενες $DAYS$ ημέρες.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Δεν υπάρχουν αντίστοιχες συνδέσεις για αυτόν τον ιστότοπο" "message": "Δεν υπάρχουν αντίστοιχες συνδέσεις για αυτόν τον ιστότοπο"
}, },
"searchSavePasskeyNewLogin": {
"message": "Αναζήτηση ή αποθήκευση κωδικού πρόσβασης ως νέα σύνδεση"
},
"confirm": { "confirm": {
"message": "Επιβεβαίωση" "message": "Επιβεβαίωση"
}, },

View File

@ -1426,6 +1426,12 @@
"showInlineMenuLabel": { "showInlineMenuLabel": {
"message": "Show autofill suggestions on form fields" "message": "Show autofill suggestions on form fields"
}, },
"showInlineMenuIdentitiesLabel": {
"message": "Display identities as suggestions"
},
"showInlineMenuCardsLabel": {
"message": "Display cards as suggestions"
},
"showInlineMenuOnIconSelectionLabel": { "showInlineMenuOnIconSelectionLabel": {
"message": "Display suggestions when icon is selected" "message": "Display suggestions when icon is selected"
}, },
@ -2665,6 +2671,15 @@
"message": "Your organization requires you to set a master password.", "message": "Your organization requires you to set a master password.",
"description": "Used as a card title description on the set password page to explain why the user is there" "description": "Used as a card title description on the set password page to explain why the user is there"
}, },
"cardMetrics": {
"message": "out of $TOTAL$",
"placeholders": {
"total": {
"content": "$1",
"example": "5"
}
}
},
"verificationRequired": { "verificationRequired": {
"message": "Verification required", "message": "Verification required",
"description": "Default title for the user verification dialog." "description": "Default title for the user verification dialog."

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatically generate strong, unique passwords for your logins." "message": "Automatically generate strong, unique passwords for your logins."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatically generate strong, unique passwords for your logins." "message": "Automatically generate strong, unique passwords for your logins."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generador", "message": "Generador",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Genera automáticamente contraseñas fuertes y únicas para tus accesos." "message": "Genera automáticamente contraseñas fuertes y únicas para tus accesos."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirmar" "message": "Confirmar"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Genereerija", "message": "Genereerija",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Loo oma kontodele tugevaid ja unikaalseid paroole." "message": "Loo oma kontodele tugevaid ja unikaalseid paroole."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Sortzailea", "message": "Sortzailea",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatikoki pasahitz sendo eta bakarrak sortzen ditu zure saio-hasieratarako." "message": "Automatikoki pasahitz sendo eta bakarrak sortzen ditu zure saio-hasieratarako."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Berretsi" "message": "Berretsi"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "تولید کننده", "message": "تولید کننده",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "به طور خودکار کلمه‌های عبور قوی و منحصر به فرد برای ورود به سیستم خود ایجاد کنید." "message": "به طور خودکار کلمه‌های عبور قوی و منحصر به فرد برای ورود به سیستم خود ایجاد کنید."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "تأیید" "message": "تأیید"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generaattori", "message": "Generaattori",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Luo kirjautumistiedoillesi automaattisesti vahvoja, ainutlaatuisia salasanoja." "message": "Luo kirjautumistiedoillesi automaattisesti vahvoja, ainutlaatuisia salasanoja."
@ -605,13 +605,13 @@
"message": "Holvisi on lukittu. Jatka vahvistamalla henkilöllisyytesi." "message": "Holvisi on lukittu. Jatka vahvistamalla henkilöllisyytesi."
}, },
"yourVaultIsLockedV2": { "yourVaultIsLockedV2": {
"message": "Your vault is locked" "message": "Holvisi on lukittu"
}, },
"yourAccountIsLocked": { "yourAccountIsLocked": {
"message": "Your account is locked" "message": "Tilisi on lukittu"
}, },
"or": { "or": {
"message": "or" "message": "tai"
}, },
"unlock": { "unlock": {
"message": "Avaa" "message": "Avaa"
@ -1946,7 +1946,7 @@
"message": "Avaa biometrialla" "message": "Avaa biometrialla"
}, },
"unlockWithMasterPassword": { "unlockWithMasterPassword": {
"message": "Unlock with master password" "message": "Avaa pääsalasanalla"
}, },
"awaitDesktop": { "awaitDesktop": {
"message": "Odottaa vahvistusta työpöydältä" "message": "Odottaa vahvistusta työpöydältä"
@ -2498,8 +2498,26 @@
"message": "Sendin luonti onnistui!", "message": "Sendin luonti onnistui!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Tämän linkin välityksellä Send on kenen tahansa avattavissa seuraavien $DAYS$ päivän ajan.", "message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
"days": { "days": {
@ -3636,7 +3654,7 @@
"message": "Pääsyavain" "message": "Pääsyavain"
}, },
"accessing": { "accessing": {
"message": "Accessing" "message": "Avataan"
}, },
"passkeyNotCopied": { "passkeyNotCopied": {
"message": "Pääsyavainta ei kopioida" "message": "Pääsyavainta ei kopioida"
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Tälle sivustolle sopivia kirjautumistietoja ei ole" "message": "Tälle sivustolle sopivia kirjautumistietoja ei ole"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Vahvista" "message": "Vahvista"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Magmamana", "message": "Magmamana",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatiko na gumawa ng mga malakas at natatanging mga password para sa iyong mga logins." "message": "Automatiko na gumawa ng mga malakas at natatanging mga password para sa iyong mga logins."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Générateur", "message": "Générateur",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Générer automatiquement des mots de passe robustes et uniques pour vos identifiants." "message": "Générer automatiquement des mots de passe robustes et uniques pour vos identifiants."
@ -2498,8 +2498,26 @@
"message": "Send créé avec succès !", "message": "Send créé avec succès !",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Le Send est disponible à toute personne ayant le lien durant les $DAYS$ prochains jours.", "message": "Le Send sera accessible à toute personne disposant du lien pendant une heure.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "Le Send sera accessible à toute personne disposant du lien pendant les prochaines $HOURS$ heures.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "Le Send sera accessible à toute personne disposant du lien pendant un jour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "Le Send sera accessible à toute personne disposant du lien pendant les prochains $DAYS$ jours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
"days": { "days": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Aucun identifiant correspondant pour ce site" "message": "Aucun identifiant correspondant pour ce site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Rechercher ou enregistrer la clé d'accès comme nouvel identifiant"
},
"confirm": { "confirm": {
"message": "Confirmer" "message": "Confirmer"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Xerador", "message": "Xerador",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Xera automaticamente contrasinais fortes e únicos para os seus inicios de sesión." "message": "Xera automaticamente contrasinais fortes e únicos para os seus inicios de sesión."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "מייצר", "message": "מייצר",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "צור אוטומטית סיסמאות חזקות ויחודיות עבור פרטי הכניסה שלך." "message": "צור אוטומטית סיסמאות חזקות ויחודיות עבור פרטי הכניסה שלך."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "उत्पन्न करें!", "message": "उत्पन्न करें!",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "स्वचालित रूप से अपने लॉगिन के लिए मजबूत, अद्वितीय पासवर्ड उत्पन्न करते हैं।" "message": "स्वचालित रूप से अपने लॉगिन के लिए मजबूत, अद्वितीय पासवर्ड उत्पन्न करते हैं।"
@ -605,13 +605,13 @@
"message": "आपकी वॉल्ट लॉक हो गई है। जारी रखने के लिए अपने मास्टर पासवर्ड को सत्यापित करें।" "message": "आपकी वॉल्ट लॉक हो गई है। जारी रखने के लिए अपने मास्टर पासवर्ड को सत्यापित करें।"
}, },
"yourVaultIsLockedV2": { "yourVaultIsLockedV2": {
"message": "Your vault is locked" "message": "तिजोरी पर लॉक लगा है"
}, },
"yourAccountIsLocked": { "yourAccountIsLocked": {
"message": "Your account is locked" "message": "आपका खाता बंद है."
}, },
"or": { "or": {
"message": "or" "message": "या"
}, },
"unlock": { "unlock": {
"message": "ताला खोलें" "message": "ताला खोलें"
@ -1946,7 +1946,7 @@
"message": "बायोमेट्रिक्स का उपयोग कर अनलॉक करें" "message": "बायोमेट्रिक्स का उपयोग कर अनलॉक करें"
}, },
"unlockWithMasterPassword": { "unlockWithMasterPassword": {
"message": "Unlock with master password" "message": "मास्टर पासवर्ड से खोलें"
}, },
"awaitDesktop": { "awaitDesktop": {
"message": "डेस्कटॉप से पुष्टि का इंतजार" "message": "डेस्कटॉप से पुष्टि का इंतजार"
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3636,7 +3654,7 @@
"message": "Passkey" "message": "Passkey"
}, },
"accessing": { "accessing": {
"message": "Accessing" "message": "ऐक्सेसिंग"
}, },
"passkeyNotCopied": { "passkeyNotCopied": {
"message": "Passkey will not be copied" "message": "Passkey will not be copied"
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatski generiraj jake, jedinstvene lozinke." "message": "Automatski generiraj jake, jedinstvene lozinke."
@ -490,7 +490,7 @@
"description": "Label for the avoid ambiguous characters checkbox." "description": "Label for the avoid ambiguous characters checkbox."
}, },
"generatorPolicyInEffect": { "generatorPolicyInEffect": {
"message": "Enterprise policy requirements have been applied to your generator options.", "message": "Pravila tvrtke primjenjena su na generator.",
"description": "Indicates that a policy limits the credential generator screen." "description": "Indicates that a policy limits the credential generator screen."
}, },
"searchVault": { "searchVault": {
@ -536,7 +536,7 @@
"message": "Bilješke" "message": "Bilješke"
}, },
"privateNote": { "privateNote": {
"message": "Private note" "message": "Privatna bilješka"
}, },
"note": { "note": {
"message": "Bilješka" "message": "Bilješka"
@ -605,13 +605,13 @@
"message": "Tvoj trezor je zaključan. Potvrdi glavnu lozinku za nastavak." "message": "Tvoj trezor je zaključan. Potvrdi glavnu lozinku za nastavak."
}, },
"yourVaultIsLockedV2": { "yourVaultIsLockedV2": {
"message": "Your vault is locked" "message": "Trezor je zaključan"
}, },
"yourAccountIsLocked": { "yourAccountIsLocked": {
"message": "Your account is locked" "message": "Račun je zaključan"
}, },
"or": { "or": {
"message": "or" "message": "ili"
}, },
"unlock": { "unlock": {
"message": "Otključaj" "message": "Otključaj"
@ -1153,7 +1153,7 @@
"message": "Datoteka" "message": "Datoteka"
}, },
"fileToShare": { "fileToShare": {
"message": "File to share" "message": "Datoteka za dijeljenje"
}, },
"selectFile": { "selectFile": {
"message": "Odaberi datoteku." "message": "Odaberi datoteku."
@ -1946,7 +1946,7 @@
"message": "Otključaj biometrijom" "message": "Otključaj biometrijom"
}, },
"unlockWithMasterPassword": { "unlockWithMasterPassword": {
"message": "Unlock with master password" "message": "Otključaj glavnom lozinkom"
}, },
"awaitDesktop": { "awaitDesktop": {
"message": "Čekanje potvrde iz desktop aplikacije" "message": "Čekanje potvrde iz desktop aplikacije"
@ -2287,14 +2287,14 @@
"message": "Spremljene promjene izuzete domene" "message": "Spremljene promjene izuzete domene"
}, },
"limitSendViews": { "limitSendViews": {
"message": "Limit views" "message": "Ograniči broj pogleda"
}, },
"limitSendViewsHint": { "limitSendViewsHint": {
"message": "No one can view this Send after the limit is reached.", "message": "Nakon dosegnutog broja, nitko neće moći pogledati Send",
"description": "Displayed under the limit views field on Send" "description": "Displayed under the limit views field on Send"
}, },
"limitSendViewsCount": { "limitSendViewsCount": {
"message": "$ACCESSCOUNT$ views left", "message": "Preostalo pogleda: $ACCESSCOUNT$",
"description": "Displayed under the limit views field on Send", "description": "Displayed under the limit views field on Send",
"placeholders": { "placeholders": {
"accessCount": { "accessCount": {
@ -2387,7 +2387,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"deleteSendPermanentConfirmation": { "deleteSendPermanentConfirmation": {
"message": "Are you sure you want to permanently delete this Send?", "message": "Sigurno želiš trajno izbrisati ovaj Send?",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"editSend": { "editSend": {
@ -2450,7 +2450,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendPasswordDescV2": { "sendPasswordDescV2": {
"message": "Require this password to view the Send.", "message": "Zahtijevaj lozinku za pregled Senda.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendNotesDesc": { "sendNotesDesc": {
@ -2498,8 +2498,26 @@
"message": "Send je uspješno stvoren!", "message": "Send je uspješno stvoren!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Send će biti dostupan svakome s poveznicom ovoliko dana: $DAYS$.", "message": "Send će biti dostupan svakome s poveznicom sljedećih sat vremena.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "Send če biti dostupan svakome s poveznicom ovoliko sati: $HOURS$",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "Send će biti dostupan svakome s poveznicom 1 dan.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "Send će biti dostupan svakome s poveznom ovoliko dana: $DAYS$",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
"days": { "days": {
@ -2517,11 +2535,11 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendFilePopoutDialogText": { "sendFilePopoutDialogText": {
"message": "Pop out extension?", "message": "Otvori proširenje?",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendFilePopoutDialogDesc": { "sendFilePopoutDialogDesc": {
"message": "To create a file Send, you need to pop out the extension to a new window.", "message": "Za stvaranje Senda, potrebno je otvoriti proširenje u novi prozor.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendLinuxChromiumFileWarning": { "sendLinuxChromiumFileWarning": {
@ -2534,7 +2552,7 @@
"message": "Za odabir datoteke u Safariju, otvori iskočni prozor klikom na ovu poruku." "message": "Za odabir datoteke u Safariju, otvori iskočni prozor klikom na ovu poruku."
}, },
"popOut": { "popOut": {
"message": "Pop out" "message": "Otvori"
}, },
"sendFileCalloutHeader": { "sendFileCalloutHeader": {
"message": "Prije početka" "message": "Prije početka"
@ -2570,7 +2588,7 @@
"message": "Sakrij moju adresu e-pošte od primatelja." "message": "Sakrij moju adresu e-pošte od primatelja."
}, },
"hideYourEmail": { "hideYourEmail": {
"message": "Hide your email address from viewers." "message": "Autentifikacija"
}, },
"sendOptionsPolicyInEffect": { "sendOptionsPolicyInEffect": {
"message": "Jedno ili više pravila organizacije utječe na postavke Senda." "message": "Jedno ili više pravila organizacije utječe na postavke Senda."
@ -3636,7 +3654,7 @@
"message": "Pristupni ključ" "message": "Pristupni ključ"
}, },
"accessing": { "accessing": {
"message": "Accessing" "message": "Pristupanje"
}, },
"passkeyNotCopied": { "passkeyNotCopied": {
"message": "Pristupni ključ neće biti kopiran" "message": "Pristupni ključ neće biti kopiran"
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Nema prijava za ovu web stranicu" "message": "Nema prijava za ovu web stranicu"
}, },
"searchSavePasskeyNewLogin": {
"message": "Potraži ili spremi pristupni ključ kao novu prijavu"
},
"confirm": { "confirm": {
"message": "Autoriziraj" "message": "Autoriziraj"
}, },
@ -4232,7 +4253,7 @@
"message": "Omogući animacije" "message": "Omogući animacije"
}, },
"showAnimations": { "showAnimations": {
"message": "Show animations" "message": "Prikaži animacije"
}, },
"addAccount": { "addAccount": {
"message": "Dodaj račun" "message": "Dodaj račun"
@ -4513,6 +4534,6 @@
"message": "Nemaš prava za uređivanje ove stavke" "message": "Nemaš prava za uređivanje ove stavke"
}, },
"authenticating": { "authenticating": {
"message": "Authenticating" "message": "Autentifikacija"
} }
} }

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generátor", "message": "Generátor",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatikusan létrehoz erős, egyedi jelszavakat a bejelentkezéseidhez." "message": "Automatikusan létrehoz erős, egyedi jelszavakat a bejelentkezéseidhez."
@ -2498,7 +2498,25 @@
"message": "A Send sikeresen létrejött!", "message": "A Send sikeresen létrejött!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "A Send bárki számára elérhető a hivatkozással a következő 1 órában.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "A Send bárki számára elérhető a hivatkozással a következő $HOURS$ órában.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "A Send bárki számára elérhető a hivatkozással a következő 1 napban.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "A Send bárki számára elérhető a hivatkozással a következő $DAYS$ napban.", "message": "A Send bárki számára elérhető a hivatkozással a következő $DAYS$ napban.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Nincsenek egyező bejelentkezések ehhez a webhelyhez." "message": "Nincsenek egyező bejelentkezések ehhez a webhelyhez."
}, },
"searchSavePasskeyNewLogin": {
"message": "Keressés vagy a belépőkulcs mentése bejelentkezésként."
},
"confirm": { "confirm": {
"message": "Megerősítés" "message": "Megerősítés"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Pembuat Sandi", "message": "Pembuat Sandi",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Secara otomatis membuat sandi yang kuat dan unik untuk info masuk Anda." "message": "Secara otomatis membuat sandi yang kuat dan unik untuk info masuk Anda."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generatore", "message": "Generatore",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Genera automaticamente password complesse e uniche per i tuoi login." "message": "Genera automaticamente password complesse e uniche per i tuoi login."
@ -2498,8 +2498,26 @@
"message": "Send creato con successo!", "message": "Send creato con successo!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Il Send sarà disponibile a qualsiasi utente con il link per i prossimi $DAYS$ giorni.", "message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
"days": { "days": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Nessun login corrispondente per questo sito" "message": "Nessun login corrispondente per questo sito"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Conferma" "message": "Conferma"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "パス生成", "message": "パス生成",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "ログインのために強固なユニークパスワードを自動的に生成します。" "message": "ログインのために強固なユニークパスワードを自動的に生成します。"
@ -2498,8 +2498,26 @@
"message": "Send を作成しました!", "message": "Send を作成しました!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Send は、次の $DAYS$ 日間はリンクを知っている人全員が利用できます。", "message": "Send は、次の1時間はリンクを知っている全員が利用できます。",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "Send は、次の$HOURS$時間はリンクを知っている人全員が利用できます。",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "Send は、次の1日間はリンクを知っている全員が利用できます。",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "Send は、次の$DAYS$日間はリンクを知っている人全員が利用できます。",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
"days": { "days": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "このサイトに一致するログイン情報がありません" "message": "このサイトに一致するログイン情報がありません"
}, },
"searchSavePasskeyNewLogin": {
"message": "パスキーを検索または新しいログインとして保存"
},
"confirm": { "confirm": {
"message": "確認" "message": "確認"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatically generate strong, unique passwords for your logins." "message": "Automatically generate strong, unique passwords for your logins."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatically generate strong, unique passwords for your logins." "message": "Automatically generate strong, unique passwords for your logins."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "ಜನರೇಟರ್", "message": "ಜನರೇಟರ್",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "ನಿಮ್ಮ ಲಾಗಿನ್‌ಗಳಿಗಾಗಿ ಬಲವಾದ, ಅನನ್ಯ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚಿಸಿ." "message": "ನಿಮ್ಮ ಲಾಗಿನ್‌ಗಳಿಗಾಗಿ ಬಲವಾದ, ಅನನ್ಯ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚಿಸಿ."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "생성기", "message": "생성기",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "유일무이하고 강력한 비밀번호를 자동으로 생성합니다." "message": "유일무이하고 강력한 비밀번호를 자동으로 생성합니다."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generatorius", "message": "Generatorius",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatiškai generuokite stiprius, unikalius prisijungimo slaptažodžius." "message": "Automatiškai generuokite stiprius, unikalius prisijungimo slaptažodžius."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Veidotājs", "message": "Veidotājs",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automātiski veido spēcīgas, neatkārtojamas paroles visiem pieteikšanās vienumiem." "message": "Automātiski veido spēcīgas, neatkārtojamas paroles visiem pieteikšanās vienumiem."
@ -2498,7 +2498,25 @@
"message": "Send tika veiksmīgi izveidots.", "message": "Send tika veiksmīgi izveidots.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Send būs pieejams nākamo stundu ikvienam, kuram ir saite.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "Send būs pieejams nākamās $HOURS$ stundas ikvienam, kuram ir saite.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "Send būs pieejams nākamo dienu ikvienam, kuram ir saite.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "Send būs pieejams nākamās $DAYS$ dienas ikvienam, kuram ir saite.", "message": "Send būs pieejams nākamās $DAYS$ dienas ikvienam, kuram ir saite.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Šai vietnei nav atbilstošu pieteikšanās vietnumu" "message": "Šai vietnei nav atbilstošu pieteikšanās vietnumu"
}, },
"searchSavePasskeyNewLogin": {
"message": "Meklēt vai saglabāt piekļuves atslēgu kā jaunu pieteikšanās vienumu"
},
"confirm": { "confirm": {
"message": "Apstiprināt" "message": "Apstiprināt"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "സ്രഷ്ടാവ്", "message": "സ്രഷ്ടാവ്",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "യാന്ത്രികമായി ശക്തമായ പാസ്സ്‌വേർഡുകൾ നിങ്ങളുടെ ലോഗിന് വേണ്ടി നിർമിക്കുക " "message": "യാന്ത്രികമായി ശക്തമായ പാസ്സ്‌വേർഡുകൾ നിങ്ങളുടെ ലോഗിന് വേണ്ടി നിർമിക്കുക "
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "जनित्र", "message": "जनित्र",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatically generate strong, unique passwords for your logins." "message": "Automatically generate strong, unique passwords for your logins."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatically generate strong, unique passwords for your logins." "message": "Automatically generate strong, unique passwords for your logins."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Generer automatisk sterke og unike passord for dine innlogginger." "message": "Generer automatisk sterke og unike passord for dine innlogginger."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Bekreft" "message": "Bekreft"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatically generate strong, unique passwords for your logins." "message": "Automatically generate strong, unique passwords for your logins."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatisch sterke, unieke wachtwoorden voor je logins genereren." "message": "Automatisch sterke, unieke wachtwoorden voor je logins genereren."
@ -2498,7 +2498,25 @@
"message": "Send succesvol aangemaakt!", "message": "Send succesvol aangemaakt!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "De Send is het komende uur beschikbaar voor iedereen met de link.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "De Send is de komende $HOURS$ uur beschikbaar voor iedereen met de link.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "De Send is de komende dag beschikbaar voor iedereen met de link.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "De Send is de komende $DAYS$ dagen beschikbaar voor iedereen met de link.", "message": "De Send is de komende $DAYS$ dagen beschikbaar voor iedereen met de link.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Geen overeenkomende logins voor deze site" "message": "Geen overeenkomende logins voor deze site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Passkey zoeken of als nieuwe login opslaan"
},
"confirm": { "confirm": {
"message": "Bevestigen" "message": "Bevestigen"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatically generate strong, unique passwords for your logins." "message": "Automatically generate strong, unique passwords for your logins."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatically generate strong, unique passwords for your logins." "message": "Automatically generate strong, unique passwords for your logins."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatycznie wygeneruj silne, unikatowe hasła dla swoich loginów." "message": "Automatycznie wygeneruj silne, unikatowe hasła dla swoich loginów."
@ -2498,8 +2498,26 @@
"message": "Send został stworzony!", "message": "Send został stworzony!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Send będzie dostępny dla każdego kto ma link przez następującą liczbę dni: $DAYS$.", "message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
"days": { "days": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Brak pasujących loginów dla tej witryny" "message": "Brak pasujących loginów dla tej witryny"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Potwierdź" "message": "Potwierdź"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Gerador", "message": "Gerador",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Gere automaticamente senhas fortes e únicas para as suas credenciais." "message": "Gere automaticamente senhas fortes e únicas para as suas credenciais."
@ -2498,8 +2498,26 @@
"message": "Envio criado com sucesso!", "message": "Envio criado com sucesso!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "O envio estará disponível para qualquer pessoa com o link para os próximos $DAYS$ dias.", "message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
"days": { "days": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Sem credenciais correspondentes para este site" "message": "Sem credenciais correspondentes para este site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirmar" "message": "Confirmar"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Gerador", "message": "Gerador",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Gera automaticamente palavras-passe fortes e únicas para as suas credenciais." "message": "Gera automaticamente palavras-passe fortes e únicas para as suas credenciais."
@ -2498,7 +2498,25 @@
"message": "Send criado com sucesso!", "message": "Send criado com sucesso!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "O Send estará disponível para qualquer pessoa que tenha o link durante a próxima hora.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "O Send estará disponível para qualquer pessoa que tenha o link durante as próximas $HOURS$.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "O Send estará disponível para qualquer pessoa que tenha o link durante o próximo dia.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "O Send estará disponível para qualquer pessoa que tenha o link durante os próximos $DAYS$ dias.", "message": "O Send estará disponível para qualquer pessoa que tenha o link durante os próximos $DAYS$ dias.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Sem credenciais correspondentes para este site" "message": "Sem credenciais correspondentes para este site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Procure ou guarde a chave de acesso como uma nova credencial"
},
"confirm": { "confirm": {
"message": "Confirmar" "message": "Confirmar"
}, },
@ -3669,7 +3690,7 @@
"message": "Guardar a chave de acesso" "message": "Guardar a chave de acesso"
}, },
"savePasskeyNewLogin": { "savePasskeyNewLogin": {
"message": "Guardar a chave de acesso como uma nova credencial" "message": "Guarde a chave de acesso como uma nova credencial"
}, },
"chooseCipherForPasskeySave": { "chooseCipherForPasskeySave": {
"message": "Escolha uma credencial para guardar esta chave de acesso" "message": "Escolha uma credencial para guardar esta chave de acesso"

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Generează automat parole unice și puternice pentru autentificările dvs." "message": "Generează automat parole unice și puternice pentru autentificările dvs."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Генератор", "message": "Генератор",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Автоматическая генерация сильных и уникальных паролей для ваших логинов." "message": "Автоматическая генерация сильных и уникальных паролей для ваших логинов."
@ -2498,8 +2498,26 @@
"message": "Send успешно создана!", "message": "Send успешно создана!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Send будет доступна всем, кто получит ссылку в течение следующих дней: $DAYS$.", "message": "Send будет доступна всем, кто получит ссылку в течение следующего 1 часа.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "Send будет доступна всем, кто получит ссылку в течение следующих $HOURS$ часов.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "Send будет доступна всем, кто получит ссылку в течение следующего 1 дня.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "Send будет доступна всем, кто получит ссылку в течение следующих $DAYS$ дней.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
"days": { "days": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Нет подходящих логинов для этого сайта" "message": "Нет подходящих логинов для этого сайта"
}, },
"searchSavePasskeyNewLogin": {
"message": "Найти или сохранить passkey как новый логин"
},
"confirm": { "confirm": {
"message": "Подтвердить" "message": "Подтвердить"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "උත්පාදක යන්ත්රය", "message": "උත්පාදක යන්ත්රය",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "ඔබේ පිවිසුම් සඳහා ශක්තිමත්, අද්විතීය මුරපද ස්වයංක්රීයව ජනනය කරන්න." "message": "ඔබේ පිවිසුම් සඳහා ශක්තිමත්, අද්විතීය මුරපද ස්වයංක්රීයව ජනනය කරන්න."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generátor", "message": "Generátor",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automaticky generovať silné a unikátne heslá k prihlasovacím údajom." "message": "Automaticky generovať silné a unikátne heslá k prihlasovacím údajom."
@ -2498,7 +2498,25 @@
"message": "Send bol úspešne vytvorený!", "message": "Send bol úspešne vytvorený!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Send bude k dispozícii každému s odkazom nasledujúcu hodinu.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "Send bude k dispozícii každému s odkazom po dobu $HOURS$ hod.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "Send bude k dispozícii každému s odkazom nasledujúci deň.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "Send bude k dispozícii každému s odkazom po dobu $DAYS$ dní.", "message": "Send bude k dispozícii každému s odkazom po dobu $DAYS$ dní.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Pre túto stránku sa nenašli prihlasovacie údaje" "message": "Pre túto stránku sa nenašli prihlasovacie údaje"
}, },
"searchSavePasskeyNewLogin": {
"message": "Vyhľadať alebo uložiť prístupový kľúč ako nové prihlasovacie údaje"
},
"confirm": { "confirm": {
"message": "Potvrdiť" "message": "Potvrdiť"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Avtomatično generiraj močna, edinstvena gesla za vaše prijave." "message": "Avtomatično generiraj močna, edinstvena gesla za vaše prijave."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Генератор", "message": "Генератор",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Аутоматски генеришите јаке, јединствене лозинке за ваше пријаве." "message": "Аутоматски генеришите јаке, јединствене лозинке за ваше пријаве."
@ -605,13 +605,13 @@
"message": "Сеф је закључан. Унесите главну лозинку за наставак." "message": "Сеф је закључан. Унесите главну лозинку за наставак."
}, },
"yourVaultIsLockedV2": { "yourVaultIsLockedV2": {
"message": "Your vault is locked" "message": "Ваш сеф је блокиран"
}, },
"yourAccountIsLocked": { "yourAccountIsLocked": {
"message": "Your account is locked" "message": "Ваш налог је закључан"
}, },
"or": { "or": {
"message": "or" "message": "или"
}, },
"unlock": { "unlock": {
"message": "Откључај" "message": "Откључај"
@ -1946,7 +1946,7 @@
"message": "Откључавајте помоћу биометрије" "message": "Откључавајте помоћу биометрије"
}, },
"unlockWithMasterPassword": { "unlockWithMasterPassword": {
"message": "Unlock with master password" "message": "Откључај са главном лозинком"
}, },
"awaitDesktop": { "awaitDesktop": {
"message": "Чекање потврде са десктопа" "message": "Чекање потврде са десктопа"
@ -2498,7 +2498,25 @@
"message": "Send је успешно направљен!", "message": "Send је успешно направљен!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Send ће бити доступно свима који имају везу наредних 1 сат.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "Send ће бити доступно свима који имају везу наредних 1 дан.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3636,7 +3654,7 @@
"message": "Приступачни кључ" "message": "Приступачни кључ"
}, },
"accessing": { "accessing": {
"message": "Accessing" "message": "Приступ"
}, },
"passkeyNotCopied": { "passkeyNotCopied": {
"message": "Приступачни кључ неће бити копиран" "message": "Приступачни кључ неће бити копиран"
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Нема одговарајућих пријава за овај сајт" "message": "Нема одговарајућих пријава за овај сајт"
}, },
"searchSavePasskeyNewLogin": {
"message": "Претражити или сачувати приступни кључ као нову пријаву"
},
"confirm": { "confirm": {
"message": "Потврди" "message": "Потврди"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Skapa starka och unika lösenord automatiskt för dina inloggningar." "message": "Skapa starka och unika lösenord automatiskt för dina inloggningar."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Bekräfta" "message": "Bekräfta"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Generator", "message": "Generator",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Automatically generate strong, unique passwords for your logins." "message": "Automatically generate strong, unique passwords for your logins."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "สุ่มรหัส", "message": "สุ่มรหัส",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "สร้างรหัสผ่านที่รัดกุมและไม่ซ้ำใครโดยอัตโนมัติสำหรับการเข้าสู่ระบบของคุณ" "message": "สร้างรหัสผ่านที่รัดกุมและไม่ซ้ำใครโดยอัตโนมัติสำหรับการเข้าสู่ระบบของคุณ"
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Confirm" "message": "Confirm"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Oluşturucu", "message": "Oluşturucu",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Hesaplarınız için otomatik olarak güçlü, özgün parolalar oluşturun." "message": "Hesaplarınız için otomatik olarak güçlü, özgün parolalar oluşturun."
@ -2498,8 +2498,26 @@
"message": "Send başarıyla oluşturuldu.", "message": "Send başarıyla oluşturuldu.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "$DAYS$ gün boyunca bu bağlantıya sahip olan herkes bu Send'e ulaşabilir.", "message": "Önümüzdeki 1 saat boyunca bu bağlantıya sahip olan herkes bu Send'e ulaşabilir.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "Önümüzdeki $HOURS$ saat boyunca bu bağlantıya sahip olan herkes bu Send'e ulaşabilir.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "Önümüzdeki 1 gün boyunca bu bağlantıya sahip olan herkes bu Send'e ulaşabilir.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "Önümüzdeki $DAYS$ gün boyunca bu bağlantıya sahip olan herkes bu Send'e ulaşabilir.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
"days": { "days": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Bu siteyle eşleşen hesap bulunamadı" "message": "Bu siteyle eşleşen hesap bulunamadı"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Onayla" "message": "Onayla"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Генератор", "message": "Генератор",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Автоматичне генерування стійких, унікальних паролів." "message": "Автоматичне генерування стійких, унікальних паролів."
@ -2498,8 +2498,26 @@
"message": "Відправлення успішно створено!", "message": "Відправлення успішно створено!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "Це відправлення буде доступним будь-кому за посиланням протягом $DAYS$ днів.", "message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
"days": { "days": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "Немає відповідних записів для цього сайту" "message": "Немає відповідних записів для цього сайту"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Підтвердити" "message": "Підтвердити"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "Trình tạo", "message": "Trình tạo",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "Tự động tạo mật khẩu mạnh mẽ, độc nhất cho đăng nhập của bạn." "message": "Tự động tạo mật khẩu mạnh mẽ, độc nhất cho đăng nhập của bạn."
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "Xác nhận" "message": "Xác nhận"
}, },

View File

@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "生成器", "message": "生成器",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "自动生成安全可靠唯一的登录密码。" "message": "自动生成安全可靠唯一的登录密码。"
@ -2498,8 +2498,26 @@
"message": "Send 创建成功!", "message": "Send 创建成功!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "在接下来的 $DAYS$ 天内,任何拥有链接的人都可以访问此 Send。", "message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
"days": { "days": {
@ -3636,7 +3654,7 @@
"message": "通行密钥" "message": "通行密钥"
}, },
"accessing": { "accessing": {
"message": "Accessing" "message": "正在访问"
}, },
"passkeyNotCopied": { "passkeyNotCopied": {
"message": "通行密钥不会被复制" "message": "通行密钥不会被复制"
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "此站点没有匹配的登录项目" "message": "此站点没有匹配的登录项目"
}, },
"searchSavePasskeyNewLogin": {
"message": "搜索或将通行密钥保存为一个新的登录"
},
"confirm": { "confirm": {
"message": "确认" "message": "确认"
}, },

View File

@ -195,7 +195,7 @@
"message": "新增項目" "message": "新增項目"
}, },
"accountEmail": { "accountEmail": {
"message": "帳電子郵件" "message": "帳電子郵件"
}, },
"requestHint": { "requestHint": {
"message": "請求提示" "message": "請求提示"
@ -329,10 +329,10 @@
"message": "編輯資料夾" "message": "編輯資料夾"
}, },
"newFolder": { "newFolder": {
"message": "New folder" "message": "新增資料夾"
}, },
"folderName": { "folderName": {
"message": "Folder name" "message": "資料夾名稱"
}, },
"folderHintText": { "folderHintText": {
"message": "Nest a folder by adding the parent folder's name followed by a “/”. Example: Social/Forums" "message": "Nest a folder by adding the parent folder's name followed by a “/”. Example: Social/Forums"
@ -381,7 +381,7 @@
}, },
"generator": { "generator": {
"message": "產生器", "message": "產生器",
"description": "Short for 'Password Generator'." "description": "Short for 'credential generator'."
}, },
"passGenInfo": { "passGenInfo": {
"message": "自動產生安全、唯一的登入密碼。" "message": "自動產生安全、唯一的登入密碼。"
@ -557,7 +557,7 @@
"message": "前往" "message": "前往"
}, },
"launchWebsite": { "launchWebsite": {
"message": "Launch website" "message": "開啟網站"
}, },
"website": { "website": {
"message": "網站" "message": "網站"
@ -572,7 +572,7 @@
"message": "其他" "message": "其他"
}, },
"unlockMethods": { "unlockMethods": {
"message": "Unlock options" "message": "解鎖選項"
}, },
"unlockMethodNeededToChangeTimeoutActionDesc": { "unlockMethodNeededToChangeTimeoutActionDesc": {
"message": "設定解鎖方法來變更您的密碼庫逾時動作。" "message": "設定解鎖方法來變更您的密碼庫逾時動作。"
@ -581,13 +581,13 @@
"message": "在設定中設定一個解鎖方式" "message": "在設定中設定一個解鎖方式"
}, },
"sessionTimeoutHeader": { "sessionTimeoutHeader": {
"message": "Session timeout" "message": "工作階段逾時"
}, },
"vaultTimeoutHeader": { "vaultTimeoutHeader": {
"message": "Vault timeout" "message": "密碼庫逾時時間"
}, },
"otherOptions": { "otherOptions": {
"message": "Other options" "message": "其它選項"
}, },
"rateExtension": { "rateExtension": {
"message": "為本套件評分" "message": "為本套件評分"
@ -608,10 +608,10 @@
"message": "Your vault is locked" "message": "Your vault is locked"
}, },
"yourAccountIsLocked": { "yourAccountIsLocked": {
"message": "Your account is locked" "message": "您的帳戶已被鎖定。"
}, },
"or": { "or": {
"message": "or" "message": ""
}, },
"unlock": { "unlock": {
"message": "解鎖" "message": "解鎖"
@ -636,7 +636,7 @@
"message": "密碼庫逾時時間" "message": "密碼庫逾時時間"
}, },
"vaultTimeout1": { "vaultTimeout1": {
"message": "Timeout" "message": "逾時"
}, },
"lockNow": { "lockNow": {
"message": "立即鎖定" "message": "立即鎖定"
@ -929,7 +929,7 @@
"message": "詢問新增登入資料" "message": "詢問新增登入資料"
}, },
"vaultSaveOptionsTitle": { "vaultSaveOptionsTitle": {
"message": "Save to vault options" "message": "儲存至密碼庫選項"
}, },
"addLoginNotificationDesc": { "addLoginNotificationDesc": {
"message": "在密碼庫中找不到相符的項目時詢問是否新增項目。" "message": "在密碼庫中找不到相符的項目時詢問是否新增項目。"
@ -997,7 +997,7 @@
"message": "解鎖" "message": "解鎖"
}, },
"additionalOptions": { "additionalOptions": {
"message": "Additional options" "message": "額外選項"
}, },
"enableContextMenuItem": { "enableContextMenuItem": {
"message": "顯示內容選單選項" "message": "顯示內容選單選項"
@ -1033,7 +1033,7 @@
"description": "Light color" "description": "Light color"
}, },
"solarizedDark": { "solarizedDark": {
"message": "Solarized Dark 主題", "message": "Solarized 深色主題",
"description": "'Solarized' is a noun and the name of a color scheme. It should not be translated." "description": "'Solarized' is a noun and the name of a color scheme. It should not be translated."
}, },
"exportFrom": { "exportFrom": {
@ -1061,7 +1061,7 @@
"message": "Set a file password to encrypt the export and import it to any Bitwarden account using the password for decryption." "message": "Set a file password to encrypt the export and import it to any Bitwarden account using the password for decryption."
}, },
"exportTypeHeading": { "exportTypeHeading": {
"message": "Export type" "message": "匯出類型"
}, },
"accountRestricted": { "accountRestricted": {
"message": "Account restricted" "message": "Account restricted"
@ -1527,7 +1527,7 @@
"message": "布林值" "message": "布林值"
}, },
"cfTypeCheckbox": { "cfTypeCheckbox": {
"message": "Checkbox" "message": "核取方塊"
}, },
"cfTypeLinked": { "cfTypeLinked": {
"message": "連結型", "message": "連結型",
@ -1712,7 +1712,7 @@
"message": "身分" "message": "身分"
}, },
"newItemHeader": { "newItemHeader": {
"message": "New $TYPE$", "message": "新增 $TYPE$",
"placeholders": { "placeholders": {
"type": { "type": {
"content": "$1", "content": "$1",
@ -1721,7 +1721,7 @@
} }
}, },
"editItemHeader": { "editItemHeader": {
"message": "Edit $TYPE$", "message": "編輯 $TYPE$",
"placeholders": { "placeholders": {
"type": { "type": {
"content": "$1", "content": "$1",
@ -1730,7 +1730,7 @@
} }
}, },
"viewItemHeader": { "viewItemHeader": {
"message": "View $TYPE$", "message": "檢視 $TYPE$",
"placeholders": { "placeholders": {
"type": { "type": {
"content": "$1", "content": "$1",
@ -1748,7 +1748,7 @@
"message": "集合" "message": "集合"
}, },
"nCollections": { "nCollections": {
"message": "$COUNT$ collections", "message": "$COUNT$ 個集合",
"placeholders": { "placeholders": {
"count": { "count": {
"content": "$1", "content": "$1",
@ -1801,7 +1801,7 @@
"description": "Domain name. Ex. website.com" "description": "Domain name. Ex. website.com"
}, },
"baseDomainOptionRecommended": { "baseDomainOptionRecommended": {
"message": "Base domain (recommended)", "message": "基礎網域 (推薦)",
"description": "Domain name. Ex. website.com" "description": "Domain name. Ex. website.com"
}, },
"domainName": { "domainName": {
@ -1855,7 +1855,7 @@
"message": "沒有可列出的密碼。" "message": "沒有可列出的密碼。"
}, },
"clearHistory": { "clearHistory": {
"message": "Clear history" "message": "清除歷史紀錄"
}, },
"noPasswordsToShow": { "noPasswordsToShow": {
"message": "No passwords to show" "message": "No passwords to show"
@ -1922,10 +1922,10 @@
"message": "使用 PIN 碼解鎖" "message": "使用 PIN 碼解鎖"
}, },
"setYourPinTitle": { "setYourPinTitle": {
"message": "Set PIN" "message": "設定 PIN 碼"
}, },
"setYourPinButton": { "setYourPinButton": {
"message": "Set PIN" "message": "設定 PIN 碼"
}, },
"setYourPinCode": { "setYourPinCode": {
"message": "設定您用來解鎖 Bitwarden 的 PIN 碼。您的 PIN 設定將在您完全登出本應用程式時被重設。" "message": "設定您用來解鎖 Bitwarden 的 PIN 碼。您的 PIN 設定將在您完全登出本應用程式時被重設。"
@ -1999,7 +1999,7 @@
"message": "密碼庫逾時動作" "message": "密碼庫逾時動作"
}, },
"vaultTimeoutAction1": { "vaultTimeoutAction1": {
"message": "Timeout action" "message": "逾時後動作"
}, },
"lock": { "lock": {
"message": "鎖定", "message": "鎖定",
@ -2498,7 +2498,25 @@
"message": "Send created successfully!", "message": "Send created successfully!",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
}, },
"sendAvailability": { "sendExpiresInHoursSingle": {
"message": "The Send will be available to anyone with the link for the next 1 hour.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInHours": {
"message": "The Send will be available to anyone with the link for the next $HOURS$ hours.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": {
"hours": {
"content": "$1",
"example": "5"
}
}
},
"sendExpiresInDaysSingle": {
"message": "The Send will be available to anyone with the link for the next 1 day.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendExpiresInDays": {
"message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "message": "The Send will be available to anyone with the link for the next $DAYS$ days.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
"placeholders": { "placeholders": {
@ -3662,6 +3680,9 @@
"noMatchingLoginsForSite": { "noMatchingLoginsForSite": {
"message": "No matching logins for this site" "message": "No matching logins for this site"
}, },
"searchSavePasskeyNewLogin": {
"message": "Search or save passkey as new login"
},
"confirm": { "confirm": {
"message": "確認" "message": "確認"
}, },
@ -3913,7 +3934,7 @@
"message": "Clear filters or try another search term" "message": "Clear filters or try another search term"
}, },
"copyInfoTitle": { "copyInfoTitle": {
"message": "Copy info - $ITEMNAME$", "message": "複製資訊 - $ITEMNAME$",
"description": "Title for a button that opens a menu with options to copy information from an item.", "description": "Title for a button that opens a menu with options to copy information from an item.",
"placeholders": { "placeholders": {
"itemname": { "itemname": {
@ -3933,7 +3954,7 @@
} }
}, },
"moreOptionsLabel": { "moreOptionsLabel": {
"message": "More options, $ITEMNAME$", "message": "更多選項, $ITEMNAME$",
"description": "Aria label for a button that opens a menu with more options for an item.", "description": "Aria label for a button that opens a menu with more options for an item.",
"placeholders": { "placeholders": {
"itemname": { "itemname": {
@ -3943,7 +3964,7 @@
} }
}, },
"moreOptionsTitle": { "moreOptionsTitle": {
"message": "More options - $ITEMNAME$", "message": "更多選項 - $ITEMNAME$",
"description": "Title for a button that opens a menu with more options for an item.", "description": "Title for a button that opens a menu with more options for an item.",
"placeholders": { "placeholders": {
"itemname": { "itemname": {
@ -3976,7 +3997,7 @@
"message": "No values to copy" "message": "No values to copy"
}, },
"assignToCollections": { "assignToCollections": {
"message": "Assign to collections" "message": "指派至集合"
}, },
"copyEmail": { "copyEmail": {
"message": "Copy email" "message": "Copy email"
@ -3991,13 +4012,13 @@
"message": "Admin Console" "message": "Admin Console"
}, },
"accountSecurity": { "accountSecurity": {
"message": "Account security" "message": "帳戶安全性"
}, },
"notifications": { "notifications": {
"message": "Notifications" "message": "通知"
}, },
"appearance": { "appearance": {
"message": "Appearance" "message": "外觀"
}, },
"errorAssigningTargetCollection": { "errorAssigningTargetCollection": {
"message": "Error assigning target collection." "message": "Error assigning target collection."
@ -4029,7 +4050,7 @@
"message": "New" "message": "New"
}, },
"removeItem": { "removeItem": {
"message": "Remove $NAME$", "message": "移除 $NAME$",
"description": "Remove a selected option, such as a folder or collection", "description": "Remove a selected option, such as a folder or collection",
"placeholders": { "placeholders": {
"name": { "name": {
@ -4155,7 +4176,7 @@
"message": "Authenticator key" "message": "Authenticator key"
}, },
"autofillOptions": { "autofillOptions": {
"message": "Autofill options" "message": "自動填入選項"
}, },
"websiteUri": { "websiteUri": {
"message": "Website (URI)" "message": "Website (URI)"
@ -4229,13 +4250,13 @@
} }
}, },
"enableAnimations": { "enableAnimations": {
"message": "Enable animations" "message": "啟用動畫"
}, },
"showAnimations": { "showAnimations": {
"message": "Show animations" "message": "顯示動畫"
}, },
"addAccount": { "addAccount": {
"message": "Add account" "message": "新增帳戶"
}, },
"loading": { "loading": {
"message": "Loading" "message": "Loading"
@ -4360,7 +4381,7 @@
} }
}, },
"selectCollectionsToAssign": { "selectCollectionsToAssign": {
"message": "Select collections to assign" "message": "選擇要指派的集合"
}, },
"personalItemTransferWarningSingular": { "personalItemTransferWarningSingular": {
"message": "1 item will be permanently transferred to the selected organization. You will no longer own this item." "message": "1 item will be permanently transferred to the selected organization. You will no longer own this item."
@ -4397,7 +4418,7 @@
} }
}, },
"successfullyAssignedCollections": { "successfullyAssignedCollections": {
"message": "Successfully assigned collections" "message": "指派集合成功"
}, },
"nothingSelected": { "nothingSelected": {
"message": "You have not selected anything." "message": "You have not selected anything."

View File

@ -9,7 +9,7 @@ import {
AnonLayoutWrapperDataService, AnonLayoutWrapperDataService,
} from "@bitwarden/auth/angular"; } from "@bitwarden/auth/angular";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { Icon, IconModule } from "@bitwarden/components"; import { Icon, IconModule, Translation } from "@bitwarden/components";
import { PopOutComponent } from "../../../platform/popup/components/pop-out.component"; import { PopOutComponent } from "../../../platform/popup/components/pop-out.component";
import { PopupHeaderComponent } from "../../../platform/popup/layout/popup-header.component"; import { PopupHeaderComponent } from "../../../platform/popup/layout/popup-header.component";
@ -90,11 +90,11 @@ export class ExtensionAnonLayoutWrapperComponent implements OnInit, OnDestroy {
} }
if (firstChildRouteData["pageTitle"] !== undefined) { if (firstChildRouteData["pageTitle"] !== undefined) {
this.pageTitle = this.i18nService.t(firstChildRouteData["pageTitle"]); this.pageTitle = this.handleStringOrTranslation(firstChildRouteData["pageTitle"]);
} }
if (firstChildRouteData["pageSubtitle"] !== undefined) { if (firstChildRouteData["pageSubtitle"] !== undefined) {
this.pageSubtitle = this.i18nService.t(firstChildRouteData["pageSubtitle"]); this.pageSubtitle = this.handleStringOrTranslation(firstChildRouteData["pageSubtitle"]);
} }
if (firstChildRouteData["pageIcon"] !== undefined) { if (firstChildRouteData["pageIcon"] !== undefined) {
@ -132,19 +132,11 @@ export class ExtensionAnonLayoutWrapperComponent implements OnInit, OnDestroy {
} }
if (data.pageTitle) { if (data.pageTitle) {
this.pageTitle = this.i18nService.t(data.pageTitle); this.pageTitle = this.handleStringOrTranslation(data.pageTitle);
} }
if (data.pageSubtitle) { if (data.pageSubtitle) {
// If you pass just a string, we translate it by default this.pageSubtitle = this.handleStringOrTranslation(data.pageSubtitle);
if (typeof data.pageSubtitle === "string") {
this.pageSubtitle = this.i18nService.t(data.pageSubtitle);
} else {
// if you pass an object, you can specify if you want to translate it or not
this.pageSubtitle = data.pageSubtitle.translate
? this.i18nService.t(data.pageSubtitle.subtitle)
: data.pageSubtitle.subtitle;
}
} }
if (data.pageIcon) { if (data.pageIcon) {
@ -168,6 +160,16 @@ export class ExtensionAnonLayoutWrapperComponent implements OnInit, OnDestroy {
} }
} }
private handleStringOrTranslation(value: string | Translation): string {
if (typeof value === "string") {
// If it's a string, return it as is
return value;
}
// If it's a Translation object, translate it
return this.i18nService.t(value.key, ...(value.placeholders ?? []));
}
private resetPageData() { private resetPageData() {
this.pageTitle = null; this.pageTitle = null;
this.pageSubtitle = null; this.pageSubtitle = null;

View File

@ -221,8 +221,12 @@ export const DefaultContentExample: Story = {
// Dynamic Content Example // Dynamic Content Example
const initialData: ExtensionAnonLayoutWrapperData = { const initialData: ExtensionAnonLayoutWrapperData = {
pageTitle: "setAStrongPassword", pageTitle: {
pageSubtitle: "finishCreatingYourAccountBySettingAPassword", key: "setAStrongPassword",
},
pageSubtitle: {
key: "finishCreatingYourAccountBySettingAPassword",
},
pageIcon: LockIcon, pageIcon: LockIcon,
showAcctSwitcher: true, showAcctSwitcher: true,
showBackButton: true, showBackButton: true,
@ -230,8 +234,12 @@ const initialData: ExtensionAnonLayoutWrapperData = {
}; };
const changedData: ExtensionAnonLayoutWrapperData = { const changedData: ExtensionAnonLayoutWrapperData = {
pageTitle: "enterpriseSingleSignOn", pageTitle: {
pageSubtitle: "checkYourEmail", key: "enterpriseSingleSignOn",
},
pageSubtitle: {
key: "checkYourEmail",
},
pageIcon: RegistrationCheckEmailIcon, pageIcon: RegistrationCheckEmailIcon,
showAcctSwitcher: false, showAcctSwitcher: false,
showBackButton: false, showBackButton: false,

View File

@ -188,6 +188,8 @@ export type OverlayBackgroundExtensionMessageHandlers = {
updateIsFieldCurrentlyFilling: ({ message }: BackgroundMessageParam) => void; updateIsFieldCurrentlyFilling: ({ message }: BackgroundMessageParam) => void;
checkIsFieldCurrentlyFilling: () => boolean; checkIsFieldCurrentlyFilling: () => boolean;
getAutofillInlineMenuVisibility: () => void; getAutofillInlineMenuVisibility: () => void;
getInlineMenuCardsVisibility: () => void;
getInlineMenuIdentitiesVisibility: () => void;
openAutofillInlineMenu: () => void; openAutofillInlineMenu: () => void;
closeAutofillInlineMenu: ({ message, sender }: BackgroundOnMessageHandlerParams) => void; closeAutofillInlineMenu: ({ message, sender }: BackgroundOnMessageHandlerParams) => void;
checkAutofillInlineMenuFocused: ({ sender }: BackgroundSenderParam) => void; checkAutofillInlineMenuFocused: ({ sender }: BackgroundSenderParam) => void;

View File

@ -132,6 +132,8 @@ export class OverlayBackground implements OverlayBackgroundInterface {
updateIsFieldCurrentlyFilling: ({ message }) => this.updateIsFieldCurrentlyFilling(message), updateIsFieldCurrentlyFilling: ({ message }) => this.updateIsFieldCurrentlyFilling(message),
checkIsFieldCurrentlyFilling: () => this.checkIsFieldCurrentlyFilling(), checkIsFieldCurrentlyFilling: () => this.checkIsFieldCurrentlyFilling(),
getAutofillInlineMenuVisibility: () => this.getInlineMenuVisibility(), getAutofillInlineMenuVisibility: () => this.getInlineMenuVisibility(),
getInlineMenuCardsVisibility: () => this.getInlineMenuCardsVisibility(),
getInlineMenuIdentitiesVisibility: () => this.getInlineMenuIdentitiesVisibility(),
openAutofillInlineMenu: () => this.openInlineMenu(false), openAutofillInlineMenu: () => this.openInlineMenu(false),
closeAutofillInlineMenu: ({ message, sender }) => this.closeInlineMenu(sender, message), closeAutofillInlineMenu: ({ message, sender }) => this.closeInlineMenu(sender, message),
checkAutofillInlineMenuFocused: ({ sender }) => this.checkInlineMenuFocused(sender), checkAutofillInlineMenuFocused: ({ sender }) => this.checkInlineMenuFocused(sender),
@ -1483,6 +1485,20 @@ export class OverlayBackground implements OverlayBackgroundInterface {
return await firstValueFrom(this.autofillSettingsService.inlineMenuVisibility$); return await firstValueFrom(this.autofillSettingsService.inlineMenuVisibility$);
} }
/**
* Gets the inline menu's visibility setting for Cards from the settings service.
*/
private async getInlineMenuCardsVisibility(): Promise<boolean> {
return await firstValueFrom(this.autofillSettingsService.showInlineMenuCards$);
}
/**
* Gets the inline menu's visibility setting for Identities from the settings service.
*/
private async getInlineMenuIdentitiesVisibility(): Promise<boolean> {
return await firstValueFrom(this.autofillSettingsService.showInlineMenuIdentities$);
}
/** /**
* Gets the user's authentication status from the auth service. * Gets the user's authentication status from the auth service.
*/ */

View File

@ -1,4 +1,5 @@
import { AuthenticationStatus } from "@bitwarden/common/auth/enums/authentication-status"; import { AuthenticationStatus } from "@bitwarden/common/auth/enums/authentication-status";
import { InlineMenuVisibilitySetting } from "@bitwarden/common/autofill/types";
import { CipherType } from "@bitwarden/common/vault/enums"; import { CipherType } from "@bitwarden/common/vault/enums";
import { AutofillOverlayElementType } from "../../enums/autofill-overlay.enum"; import { AutofillOverlayElementType } from "../../enums/autofill-overlay.enum";
@ -23,7 +24,7 @@ export type AutofillExtensionMessage = {
data?: { data?: {
direction?: "previous" | "next" | "current"; direction?: "previous" | "next" | "current";
forceCloseInlineMenu?: boolean; forceCloseInlineMenu?: boolean;
inlineMenuVisibility?: number; newSettingValue?: InlineMenuVisibilitySetting;
}; };
}; };

View File

@ -46,6 +46,32 @@
</div> </div>
</div> </div>
</div> </div>
<div class="box tw-mb-5" *ngIf="inlineMenuPositioningImprovementsEnabled && inlineMenuIsEnabled">
<div class="box-content">
<div class="box-content-row box-content-row-checkbox" appBoxRow>
<label for="show-inline-menu-identities" class="!tw-mr-0">{{
"showInlineMenuIdentitiesLabel" | i18n
}}</label>
<input
id="show-inline-menu-identities"
type="checkbox"
(change)="updateShowInlineMenuIdentities()"
[(ngModel)]="showInlineMenuIdentities"
/>
</div>
<div class="box-content-row box-content-row-checkbox" appBoxRow>
<label for="show-inline-menu-cards" class="!tw-mr-0">{{
"showInlineMenuCardsLabel" | i18n
}}</label>
<input
id="show-inline-menu-cards"
type="checkbox"
(change)="updateShowInlineMenuCards()"
[(ngModel)]="showInlineMenuCards"
/>
</div>
</div>
</div>
<div class="box"> <div class="box">
<div class="box-content" *ngIf="canOverrideBrowserAutofillSetting"> <div class="box-content" *ngIf="canOverrideBrowserAutofillSetting">
<div class="box-content-row box-content-row-checkbox" appBoxRow> <div class="box-content-row box-content-row-checkbox" appBoxRow>

View File

@ -8,10 +8,12 @@ import {
InlineMenuVisibilitySetting, InlineMenuVisibilitySetting,
ClearClipboardDelaySetting, ClearClipboardDelaySetting,
} from "@bitwarden/common/autofill/types"; } from "@bitwarden/common/autofill/types";
import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum";
import { import {
UriMatchStrategy, UriMatchStrategy,
UriMatchStrategySetting, UriMatchStrategySetting,
} from "@bitwarden/common/models/domain/domain-service"; } from "@bitwarden/common/models/domain/domain-service";
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { MessagingService } from "@bitwarden/common/platform/abstractions/messaging.service"; import { MessagingService } from "@bitwarden/common/platform/abstractions/messaging.service";
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
@ -20,7 +22,6 @@ import { DialogService } from "@bitwarden/components";
import { BrowserApi } from "../../../platform/browser/browser-api"; import { BrowserApi } from "../../../platform/browser/browser-api";
import { enableAccountSwitching } from "../../../platform/flags"; import { enableAccountSwitching } from "../../../platform/flags";
import { AutofillService } from "../../services/abstractions/autofill.service";
@Component({ @Component({
selector: "app-autofill-v1", selector: "app-autofill-v1",
@ -32,6 +33,10 @@ export class AutofillV1Component implements OnInit {
protected autoFillOverlayVisibility: InlineMenuVisibilitySetting; protected autoFillOverlayVisibility: InlineMenuVisibilitySetting;
protected autoFillOverlayVisibilityOptions: any[]; protected autoFillOverlayVisibilityOptions: any[];
protected disablePasswordManagerLink: string; protected disablePasswordManagerLink: string;
protected inlineMenuPositioningImprovementsEnabled: boolean = false;
protected showInlineMenuIdentities: boolean = true;
protected showInlineMenuCards: boolean = true;
inlineMenuIsEnabled: boolean = false;
enableAutoFillOnPageLoad = false; enableAutoFillOnPageLoad = false;
autoFillOnPageLoadDefault = false; autoFillOnPageLoadDefault = false;
autoFillOnPageLoadOptions: any[]; autoFillOnPageLoadOptions: any[];
@ -50,7 +55,7 @@ export class AutofillV1Component implements OnInit {
private i18nService: I18nService, private i18nService: I18nService,
private platformUtilsService: PlatformUtilsService, private platformUtilsService: PlatformUtilsService,
private domainSettingsService: DomainSettingsService, private domainSettingsService: DomainSettingsService,
private autofillService: AutofillService, private configService: ConfigService,
private dialogService: DialogService, private dialogService: DialogService,
private autofillSettingsService: AutofillSettingsServiceAbstraction, private autofillSettingsService: AutofillSettingsServiceAbstraction,
private messagingService: MessagingService, private messagingService: MessagingService,
@ -109,6 +114,20 @@ export class AutofillV1Component implements OnInit {
this.autofillSettingsService.inlineMenuVisibility$, this.autofillSettingsService.inlineMenuVisibility$,
); );
this.inlineMenuPositioningImprovementsEnabled = await this.configService.getFeatureFlag(
FeatureFlag.InlineMenuPositioningImprovements,
);
this.inlineMenuIsEnabled = this.isInlineMenuEnabled();
this.showInlineMenuIdentities =
this.inlineMenuPositioningImprovementsEnabled &&
(await firstValueFrom(this.autofillSettingsService.showInlineMenuIdentities$));
this.showInlineMenuCards =
this.inlineMenuPositioningImprovementsEnabled &&
(await firstValueFrom(this.autofillSettingsService.showInlineMenuCards$));
this.enableAutoFillOnPageLoad = await firstValueFrom( this.enableAutoFillOnPageLoad = await firstValueFrom(
this.autofillSettingsService.autofillOnPageLoad$, this.autofillSettingsService.autofillOnPageLoad$,
); );
@ -140,9 +159,18 @@ export class AutofillV1Component implements OnInit {
); );
} }
isInlineMenuEnabled() {
return (
this.autoFillOverlayVisibility === AutofillOverlayVisibility.OnFieldFocus ||
this.autoFillOverlayVisibility === AutofillOverlayVisibility.OnButtonClick
);
}
async updateAutoFillOverlayVisibility() { async updateAutoFillOverlayVisibility() {
await this.autofillSettingsService.setInlineMenuVisibility(this.autoFillOverlayVisibility); await this.autofillSettingsService.setInlineMenuVisibility(this.autoFillOverlayVisibility);
await this.requestPrivacyPermission(); await this.requestPrivacyPermission();
this.inlineMenuIsEnabled = this.isInlineMenuEnabled();
} }
async updateAutoFillOnPageLoad() { async updateAutoFillOnPageLoad() {
@ -298,4 +326,12 @@ export class AutofillV1Component implements OnInit {
async updateShowIdentitiesCurrentTab() { async updateShowIdentitiesCurrentTab() {
await this.vaultSettingsService.setShowIdentitiesCurrentTab(this.showIdentitiesCurrentTab); await this.vaultSettingsService.setShowIdentitiesCurrentTab(this.showIdentitiesCurrentTab);
} }
async updateShowInlineMenuCards() {
await this.autofillSettingsService.setShowInlineMenuCards(this.showInlineMenuCards);
}
async updateShowInlineMenuIdentities() {
await this.autofillSettingsService.setShowInlineMenuIdentities(this.showInlineMenuIdentities);
}
} }

View File

@ -27,7 +27,37 @@
{{ "showInlineMenuOnFormFieldsDescAlt" | i18n }} {{ "showInlineMenuOnFormFieldsDescAlt" | i18n }}
</bit-hint> </bit-hint>
</bit-form-control> </bit-form-control>
<bit-form-control *ngIf="enableInlineMenu" class="tw-pl-5"> <bit-form-control
*ngIf="inlineMenuPositioningImprovementsEnabled && enableInlineMenu"
class="tw-ml-5"
>
<input
bitCheckbox
id="show-inline-menu-identities"
type="checkbox"
(change)="updateShowInlineMenuIdentities()"
[(ngModel)]="showInlineMenuIdentities"
/>
<bit-label for="show-inline-menu-identities">
{{ "showInlineMenuIdentitiesLabel" | i18n }}
</bit-label>
</bit-form-control>
<bit-form-control
*ngIf="inlineMenuPositioningImprovementsEnabled && enableInlineMenu"
class="tw-ml-5"
>
<input
bitCheckbox
id="show-inline-menu-cards"
type="checkbox"
(change)="updateShowInlineMenuCards()"
[(ngModel)]="showInlineMenuCards"
/>
<bit-label for="show-inline-menu-cards">
{{ "showInlineMenuCardsLabel" | i18n }}
</bit-label>
</bit-form-control>
<bit-form-control *ngIf="enableInlineMenu" class="tw-ml-5">
<input <input
bitCheckbox bitCheckbox
id="show-autofill-suggestions-on-icon" id="show-autofill-suggestions-on-icon"

View File

@ -21,10 +21,12 @@ import {
DisablePasswordManagerUri, DisablePasswordManagerUri,
InlineMenuVisibilitySetting, InlineMenuVisibilitySetting,
} from "@bitwarden/common/autofill/types"; } from "@bitwarden/common/autofill/types";
import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum";
import { import {
UriMatchStrategy, UriMatchStrategy,
UriMatchStrategySetting, UriMatchStrategySetting,
} from "@bitwarden/common/models/domain/domain-service"; } from "@bitwarden/common/models/domain/domain-service";
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { MessagingService } from "@bitwarden/common/platform/abstractions/messaging.service"; import { MessagingService } from "@bitwarden/common/platform/abstractions/messaging.service";
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
@ -82,6 +84,7 @@ export class AutofillComponent implements OnInit {
protected defaultBrowserAutofillDisabled: boolean = false; protected defaultBrowserAutofillDisabled: boolean = false;
protected inlineMenuVisibility: InlineMenuVisibilitySetting = protected inlineMenuVisibility: InlineMenuVisibilitySetting =
AutofillOverlayVisibility.OnFieldFocus; AutofillOverlayVisibility.OnFieldFocus;
protected inlineMenuPositioningImprovementsEnabled: boolean = false;
protected browserClientVendor: BrowserClientVendor = BrowserClientVendors.Unknown; protected browserClientVendor: BrowserClientVendor = BrowserClientVendors.Unknown;
protected disablePasswordManagerURI: DisablePasswordManagerUri = protected disablePasswordManagerURI: DisablePasswordManagerUri =
DisablePasswordManagerUris.Unknown; DisablePasswordManagerUris.Unknown;
@ -93,6 +96,8 @@ export class AutofillComponent implements OnInit {
enableAutofillOnPageLoad: boolean = false; enableAutofillOnPageLoad: boolean = false;
enableInlineMenu: boolean = false; enableInlineMenu: boolean = false;
enableInlineMenuOnIconSelect: boolean = false; enableInlineMenuOnIconSelect: boolean = false;
showInlineMenuIdentities: boolean = true;
showInlineMenuCards: boolean = true;
autofillOnPageLoadDefault: boolean = false; autofillOnPageLoadDefault: boolean = false;
autofillOnPageLoadOptions: { name: string; value: boolean }[]; autofillOnPageLoadOptions: { name: string; value: boolean }[];
enableContextMenuItem: boolean = false; enableContextMenuItem: boolean = false;
@ -114,6 +119,7 @@ export class AutofillComponent implements OnInit {
private autofillSettingsService: AutofillSettingsServiceAbstraction, private autofillSettingsService: AutofillSettingsServiceAbstraction,
private messagingService: MessagingService, private messagingService: MessagingService,
private vaultSettingsService: VaultSettingsService, private vaultSettingsService: VaultSettingsService,
private configService: ConfigService,
) { ) {
this.autofillOnPageLoadOptions = [ this.autofillOnPageLoadOptions = [
{ name: i18nService.t("autoFillOnPageLoadYes"), value: true }, { name: i18nService.t("autoFillOnPageLoadYes"), value: true },
@ -151,6 +157,18 @@ export class AutofillComponent implements OnInit {
this.autofillSettingsService.inlineMenuVisibility$, this.autofillSettingsService.inlineMenuVisibility$,
); );
this.inlineMenuPositioningImprovementsEnabled = await this.configService.getFeatureFlag(
FeatureFlag.InlineMenuPositioningImprovements,
);
this.showInlineMenuIdentities =
this.inlineMenuPositioningImprovementsEnabled &&
(await firstValueFrom(this.autofillSettingsService.showInlineMenuIdentities$));
this.showInlineMenuCards =
this.inlineMenuPositioningImprovementsEnabled &&
(await firstValueFrom(this.autofillSettingsService.showInlineMenuCards$));
this.enableInlineMenuOnIconSelect = this.enableInlineMenuOnIconSelect =
this.inlineMenuVisibility === AutofillOverlayVisibility.OnButtonClick; this.inlineMenuVisibility === AutofillOverlayVisibility.OnButtonClick;
@ -381,4 +399,12 @@ export class AutofillComponent implements OnInit {
async updateShowIdentitiesCurrentTab() { async updateShowIdentitiesCurrentTab() {
await this.vaultSettingsService.setShowIdentitiesCurrentTab(this.showIdentitiesCurrentTab); await this.vaultSettingsService.setShowIdentitiesCurrentTab(this.showIdentitiesCurrentTab);
} }
async updateShowInlineMenuCards() {
await this.autofillSettingsService.setShowInlineMenuCards(this.showInlineMenuCards);
}
async updateShowInlineMenuIdentities() {
await this.autofillSettingsService.setShowInlineMenuIdentities(this.showInlineMenuIdentities);
}
} }

View File

@ -2238,7 +2238,7 @@ describe("AutofillOverlayContentService", () => {
it("updates the inlineMenuVisibility property", () => { it("updates the inlineMenuVisibility property", () => {
sendMockExtensionMessage({ sendMockExtensionMessage({
command: "updateAutofillInlineMenuVisibility", command: "updateAutofillInlineMenuVisibility",
data: { inlineMenuVisibility: AutofillOverlayVisibility.OnButtonClick }, data: { newSettingValue: AutofillOverlayVisibility.OnButtonClick },
}); });
expect(autofillOverlayContentService["inlineMenuVisibility"]).toEqual( expect(autofillOverlayContentService["inlineMenuVisibility"]).toEqual(

View File

@ -9,6 +9,7 @@ import {
AUTOFILL_OVERLAY_HANDLE_REPOSITION, AUTOFILL_OVERLAY_HANDLE_REPOSITION,
AUTOFILL_TRIGGER_FORM_FIELD_SUBMIT, AUTOFILL_TRIGGER_FORM_FIELD_SUBMIT,
} from "@bitwarden/common/autofill/constants"; } from "@bitwarden/common/autofill/constants";
import { InlineMenuVisibilitySetting } from "@bitwarden/common/autofill/types";
import { CipherType } from "@bitwarden/common/vault/enums"; import { CipherType } from "@bitwarden/common/vault/enums";
import { import {
@ -51,7 +52,9 @@ import { AutoFillConstants } from "./autofill-constants";
export class AutofillOverlayContentService implements AutofillOverlayContentServiceInterface { export class AutofillOverlayContentService implements AutofillOverlayContentServiceInterface {
pageDetailsUpdateRequired = false; pageDetailsUpdateRequired = false;
inlineMenuVisibility: number; inlineMenuVisibility: InlineMenuVisibilitySetting;
private showInlineMenuIdentities: boolean;
private showInlineMenuCards: boolean;
private readonly findTabs = tabbable; private readonly findTabs = tabbable;
private readonly sendExtensionMessage = sendExtensionMessage; private readonly sendExtensionMessage = sendExtensionMessage;
private formFieldElements: Map<ElementWithOpId<FormFieldElement>, AutofillField> = new Map(); private formFieldElements: Map<ElementWithOpId<FormFieldElement>, AutofillField> = new Map();
@ -183,6 +186,18 @@ export class AutofillOverlayContentService implements AutofillOverlayContentServ
autofillFieldData: AutofillField, autofillFieldData: AutofillField,
pageDetails: AutofillPageDetails, pageDetails: AutofillPageDetails,
) { ) {
if (!this.inlineMenuVisibility) {
await this.getInlineMenuVisibility();
}
if (this.showInlineMenuCards == null) {
await this.getInlineMenuCardsVisibility();
}
if (this.showInlineMenuIdentities == null) {
await this.getInlineMenuIdentitiesVisibility();
}
if ( if (
this.formFieldElements.has(formFieldElement) || this.formFieldElements.has(formFieldElement) ||
this.isIgnoredField(autofillFieldData, pageDetails) this.isIgnoredField(autofillFieldData, pageDetails)
@ -1019,10 +1034,16 @@ export class AutofillOverlayContentService implements AutofillOverlayContentServ
const { width, height, top, left } = const { width, height, top, left } =
await this.getMostRecentlyFocusedFieldRects(formFieldElement); await this.getMostRecentlyFocusedFieldRects(formFieldElement);
const autofillFieldData = this.formFieldElements.get(formFieldElement); const autofillFieldData = this.formFieldElements.get(formFieldElement);
let accountCreationFieldType = null; let accountCreationFieldType = null;
if ( if (
// user setting allows display of identities in inline menu
this.showInlineMenuIdentities &&
// `showInlineMenuAccountCreation` has been set or field is filled by Login cipher
(autofillFieldData?.showInlineMenuAccountCreation || (autofillFieldData?.showInlineMenuAccountCreation ||
autofillFieldData?.filledByCipherType === CipherType.Login) && autofillFieldData?.filledByCipherType === CipherType.Login) &&
// field is a username field, which is relevant to both Identity and Login ciphers
this.inlineMenuFieldQualificationService.isUsernameField(autofillFieldData) this.inlineMenuFieldQualificationService.isUsernameField(autofillFieldData)
) { ) {
accountCreationFieldType = this.inlineMenuFieldQualificationService.isEmailField( accountCreationFieldType = this.inlineMenuFieldQualificationService.isEmailField(
@ -1125,6 +1146,7 @@ export class AutofillOverlayContentService implements AutofillOverlayContentServ
} }
if ( if (
this.showInlineMenuCards &&
this.inlineMenuFieldQualificationService.isFieldForCreditCardForm( this.inlineMenuFieldQualificationService.isFieldForCreditCardForm(
autofillFieldData, autofillFieldData,
pageDetails, pageDetails,
@ -1135,6 +1157,7 @@ export class AutofillOverlayContentService implements AutofillOverlayContentServ
} }
if ( if (
this.showInlineMenuIdentities &&
this.inlineMenuFieldQualificationService.isFieldForAccountCreationForm( this.inlineMenuFieldQualificationService.isFieldForAccountCreationForm(
autofillFieldData, autofillFieldData,
pageDetails, pageDetails,
@ -1146,6 +1169,7 @@ export class AutofillOverlayContentService implements AutofillOverlayContentServ
} }
if ( if (
this.showInlineMenuIdentities &&
this.inlineMenuFieldQualificationService.isFieldForIdentityForm( this.inlineMenuFieldQualificationService.isFieldForIdentityForm(
autofillFieldData, autofillFieldData,
pageDetails, pageDetails,
@ -1244,6 +1268,7 @@ export class AutofillOverlayContentService implements AutofillOverlayContentServ
autofillFieldData.readonly = getAttributeBoolean(formFieldElement, "disabled"); autofillFieldData.readonly = getAttributeBoolean(formFieldElement, "disabled");
autofillFieldData.disabled = getAttributeBoolean(formFieldElement, "disabled"); autofillFieldData.disabled = getAttributeBoolean(formFieldElement, "disabled");
autofillFieldData.viewable = true; autofillFieldData.viewable = true;
void this.setupOverlayListenersOnQualifiedField(formFieldElement, autofillFieldData); void this.setupOverlayListenersOnQualifiedField(formFieldElement, autofillFieldData);
} }
@ -1266,10 +1291,6 @@ export class AutofillOverlayContentService implements AutofillOverlayContentServ
await this.updateMostRecentlyFocusedField(formFieldElement); await this.updateMostRecentlyFocusedField(formFieldElement);
} }
if (!this.inlineMenuVisibility) {
await this.getInlineMenuVisibility();
}
this.setupFormFieldElementEventListeners(formFieldElement); this.setupFormFieldElementEventListeners(formFieldElement);
this.setupFormSubmissionEventListeners(formFieldElement, autofillFieldData); this.setupFormSubmissionEventListeners(formFieldElement, autofillFieldData);
@ -1291,6 +1312,30 @@ export class AutofillOverlayContentService implements AutofillOverlayContentServ
this.inlineMenuVisibility = inlineMenuVisibility || AutofillOverlayVisibility.OnFieldFocus; this.inlineMenuVisibility = inlineMenuVisibility || AutofillOverlayVisibility.OnFieldFocus;
} }
/**
* Queries the background script for the autofill inline menu's Cards visibility setting.
* If the setting is not found, a default value of true will be used
* @private
*/
private async getInlineMenuCardsVisibility() {
const inlineMenuCardsVisibility = await this.sendExtensionMessage(
"getInlineMenuCardsVisibility",
);
this.showInlineMenuCards = inlineMenuCardsVisibility ?? true;
}
/**
* Queries the background script for the autofill inline menu's Identities visibility setting.
* If the setting is not found, a default value of true will be used
* @private
*/
private async getInlineMenuIdentitiesVisibility() {
const inlineMenuIdentitiesVisibility = await this.sendExtensionMessage(
"getInlineMenuIdentitiesVisibility",
);
this.showInlineMenuIdentities = inlineMenuIdentitiesVisibility ?? true;
}
/** /**
* Returns a value that indicates if we should hide the inline menu list due to a filled field. * Returns a value that indicates if we should hide the inline menu list due to a filled field.
* *
@ -1318,8 +1363,10 @@ export class AutofillOverlayContentService implements AutofillOverlayContentServ
* @param data - The data object from the extension message. * @param data - The data object from the extension message.
*/ */
private updateInlineMenuVisibility({ data }: AutofillExtensionMessage) { private updateInlineMenuVisibility({ data }: AutofillExtensionMessage) {
if (!isNaN(data?.inlineMenuVisibility)) { const newSettingValue = data?.newSettingValue;
this.inlineMenuVisibility = data.inlineMenuVisibility;
if (!isNaN(newSettingValue)) {
this.inlineMenuVisibility = newSettingValue;
} }
} }

View File

@ -75,6 +75,8 @@ describe("AutofillService", () => {
let autofillService: AutofillService; let autofillService: AutofillService;
const cipherService = mock<CipherService>(); const cipherService = mock<CipherService>();
let inlineMenuVisibilityMock$!: BehaviorSubject<InlineMenuVisibilitySetting>; let inlineMenuVisibilityMock$!: BehaviorSubject<InlineMenuVisibilitySetting>;
let showInlineMenuCardsMock$!: BehaviorSubject<boolean>;
let showInlineMenuIdentitiesMock$!: BehaviorSubject<boolean>;
let autofillSettingsService: MockProxy<AutofillSettingsServiceAbstraction>; let autofillSettingsService: MockProxy<AutofillSettingsServiceAbstraction>;
const mockUserId = Utils.newGuid() as UserId; const mockUserId = Utils.newGuid() as UserId;
const accountService: FakeAccountService = mockAccountServiceWith(mockUserId); const accountService: FakeAccountService = mockAccountServiceWith(mockUserId);
@ -98,8 +100,12 @@ describe("AutofillService", () => {
beforeEach(() => { beforeEach(() => {
scriptInjectorService = new BrowserScriptInjectorService(platformUtilsService, logService); scriptInjectorService = new BrowserScriptInjectorService(platformUtilsService, logService);
inlineMenuVisibilityMock$ = new BehaviorSubject(AutofillOverlayVisibility.OnFieldFocus); inlineMenuVisibilityMock$ = new BehaviorSubject(AutofillOverlayVisibility.OnFieldFocus);
showInlineMenuCardsMock$ = new BehaviorSubject(false);
showInlineMenuIdentitiesMock$ = new BehaviorSubject(false);
autofillSettingsService = mock<AutofillSettingsServiceAbstraction>(); autofillSettingsService = mock<AutofillSettingsServiceAbstraction>();
autofillSettingsService.inlineMenuVisibility$ = inlineMenuVisibilityMock$; autofillSettingsService.inlineMenuVisibility$ = inlineMenuVisibilityMock$;
autofillSettingsService.showInlineMenuCards$ = showInlineMenuCardsMock$;
autofillSettingsService.showInlineMenuIdentities$ = showInlineMenuIdentitiesMock$;
activeAccountStatusMock$ = new BehaviorSubject(AuthenticationStatus.Unlocked); activeAccountStatusMock$ = new BehaviorSubject(AuthenticationStatus.Unlocked);
authService = mock<AuthService>(); authService = mock<AuthService>();
authService.activeAccountStatus$ = activeAccountStatusMock$; authService.activeAccountStatus$ = activeAccountStatusMock$;
@ -291,12 +297,12 @@ describe("AutofillService", () => {
expect(BrowserApi.tabSendMessageData).toHaveBeenCalledWith( expect(BrowserApi.tabSendMessageData).toHaveBeenCalledWith(
tab1, tab1,
"updateAutofillInlineMenuVisibility", "updateAutofillInlineMenuVisibility",
{ inlineMenuVisibility: AutofillOverlayVisibility.OnButtonClick }, { newSettingValue: AutofillOverlayVisibility.OnButtonClick },
); );
expect(BrowserApi.tabSendMessageData).toHaveBeenCalledWith( expect(BrowserApi.tabSendMessageData).toHaveBeenCalledWith(
tab2, tab2,
"updateAutofillInlineMenuVisibility", "updateAutofillInlineMenuVisibility",
{ inlineMenuVisibility: AutofillOverlayVisibility.OnButtonClick }, { newSettingValue: AutofillOverlayVisibility.OnButtonClick },
); );
}); });
@ -308,12 +314,12 @@ describe("AutofillService", () => {
expect(BrowserApi.tabSendMessageData).toHaveBeenCalledWith( expect(BrowserApi.tabSendMessageData).toHaveBeenCalledWith(
tab1, tab1,
"updateAutofillInlineMenuVisibility", "updateAutofillInlineMenuVisibility",
{ inlineMenuVisibility: AutofillOverlayVisibility.OnFieldFocus }, { newSettingValue: AutofillOverlayVisibility.OnFieldFocus },
); );
expect(BrowserApi.tabSendMessageData).toHaveBeenCalledWith( expect(BrowserApi.tabSendMessageData).toHaveBeenCalledWith(
tab2, tab2,
"updateAutofillInlineMenuVisibility", "updateAutofillInlineMenuVisibility",
{ inlineMenuVisibility: AutofillOverlayVisibility.OnFieldFocus }, { newSettingValue: AutofillOverlayVisibility.OnFieldFocus },
); );
}); });
}); });

View File

@ -130,10 +130,23 @@ export default class AutofillService implements AutofillServiceInterface {
async loadAutofillScriptsOnInstall() { async loadAutofillScriptsOnInstall() {
BrowserApi.addListener(chrome.runtime.onConnect, this.handleInjectedScriptPortConnection); BrowserApi.addListener(chrome.runtime.onConnect, this.handleInjectedScriptPortConnection);
void this.injectAutofillScriptsInAllTabs(); void this.injectAutofillScriptsInAllTabs();
this.autofillSettingsService.inlineMenuVisibility$ this.autofillSettingsService.inlineMenuVisibility$
.pipe(startWith(undefined), pairwise()) .pipe(startWith(undefined), pairwise())
.subscribe(([previousSetting, currentSetting]) => .subscribe(([previousSetting, currentSetting]) =>
this.handleInlineMenuVisibilityChange(previousSetting, currentSetting), this.handleInlineMenuVisibilitySettingsChange(previousSetting, currentSetting),
);
this.autofillSettingsService.showInlineMenuCards$
.pipe(startWith(undefined), pairwise())
.subscribe(([previousSetting, currentSetting]) =>
this.handleInlineMenuVisibilitySettingsChange(previousSetting, currentSetting),
);
this.autofillSettingsService.showInlineMenuIdentities$
.pipe(startWith(undefined), pairwise())
.subscribe(([previousSetting, currentSetting]) =>
this.handleInlineMenuVisibilitySettingsChange(previousSetting, currentSetting),
); );
} }
@ -3043,27 +3056,36 @@ export default class AutofillService implements AutofillServiceInterface {
} }
/** /**
* Updates the autofill inline menu visibility setting in all active tabs * Updates the autofill inline menu visibility settings in all active tabs
* when the InlineMenuVisibilitySetting observable is updated. * when the inlineMenuVisibility, showInlineMenuCards, or showInlineMenuIdentities
* observables are updated.
* *
* @param previousSetting - The previous setting value * @param oldSettingValue - The previous setting value
* @param currentSetting - The current setting value * @param newSettingValue - The current setting value
* @param cipherType - The cipher type of the changed inline menu setting
*/ */
private async handleInlineMenuVisibilityChange( private async handleInlineMenuVisibilitySettingsChange(
previousSetting: InlineMenuVisibilitySetting, oldSettingValue: InlineMenuVisibilitySetting | boolean,
currentSetting: InlineMenuVisibilitySetting, newSettingValue: InlineMenuVisibilitySetting | boolean,
) { ) {
if (previousSetting === undefined || previousSetting === currentSetting) { if (oldSettingValue === undefined || oldSettingValue === newSettingValue) {
return; return;
} }
const inlineMenuPreviouslyDisabled = previousSetting === AutofillOverlayVisibility.Off; const isInlineMenuVisibilitySubSetting =
const inlineMenuCurrentlyDisabled = currentSetting === AutofillOverlayVisibility.Off; typeof oldSettingValue === "boolean" || typeof newSettingValue === "boolean";
if (!inlineMenuPreviouslyDisabled && !inlineMenuCurrentlyDisabled) { const inlineMenuPreviouslyDisabled = oldSettingValue === AutofillOverlayVisibility.Off;
const inlineMenuCurrentlyDisabled = newSettingValue === AutofillOverlayVisibility.Off;
if (
!isInlineMenuVisibilitySubSetting &&
!inlineMenuPreviouslyDisabled &&
!inlineMenuCurrentlyDisabled
) {
const tabs = await BrowserApi.tabsQuery({}); const tabs = await BrowserApi.tabsQuery({});
tabs.forEach((tab) => tabs.forEach((tab) =>
BrowserApi.tabSendMessageData(tab, "updateAutofillInlineMenuVisibility", { BrowserApi.tabSendMessageData(tab, "updateAutofillInlineMenuVisibility", {
inlineMenuVisibility: currentSetting, newSettingValue,
}), }),
); );
return; return;

View File

@ -1340,7 +1340,7 @@ export default class MainBackground {
} }
if (!supported) { if (!supported) {
this.sdkService.failedToInitialize().catch(this.logService.error); this.sdkService.failedToInitialize().catch((e) => this.logService.error(e));
} }
} }

View File

@ -476,7 +476,9 @@ const routes: Routes = [
canActivate: [canAccessFeature(FeatureFlag.ExtensionRefresh), lockGuard()], canActivate: [canAccessFeature(FeatureFlag.ExtensionRefresh), lockGuard()],
data: { data: {
pageIcon: LockIcon, pageIcon: LockIcon,
pageTitle: "yourVaultIsLockedV2", pageTitle: {
key: "yourVaultIsLockedV2",
},
showReadonlyHostname: true, showReadonlyHostname: true,
showAcctSwitcher: true, showAcctSwitcher: true,
} satisfies ExtensionAnonLayoutWrapperData, } satisfies ExtensionAnonLayoutWrapperData,
@ -498,7 +500,9 @@ const routes: Routes = [
canActivate: [canAccessFeature(FeatureFlag.EmailVerification), unauthGuardFn()], canActivate: [canAccessFeature(FeatureFlag.EmailVerification), unauthGuardFn()],
data: { data: {
state: "signup", state: "signup",
pageTitle: "createAccount", pageTitle: {
key: "createAccount",
},
} satisfies RouteDataProperties & AnonLayoutWrapperData, } satisfies RouteDataProperties & AnonLayoutWrapperData,
children: [ children: [
{ {
@ -519,8 +523,12 @@ const routes: Routes = [
path: "finish-signup", path: "finish-signup",
canActivate: [canAccessFeature(FeatureFlag.EmailVerification), unauthGuardFn()], canActivate: [canAccessFeature(FeatureFlag.EmailVerification), unauthGuardFn()],
data: { data: {
pageTitle: "setAStrongPassword", pageTitle: {
pageSubtitle: "finishCreatingYourAccountBySettingAPassword", key: "setAStrongPassword",
},
pageSubtitle: {
key: "finishCreatingYourAccountBySettingAPassword",
},
state: "finish-signup", state: "finish-signup",
} satisfies RouteDataProperties & AnonLayoutWrapperData, } satisfies RouteDataProperties & AnonLayoutWrapperData,
children: [ children: [
@ -535,8 +543,12 @@ const routes: Routes = [
canActivate: [canAccessFeature(FeatureFlag.EmailVerification)], canActivate: [canAccessFeature(FeatureFlag.EmailVerification)],
component: SetPasswordJitComponent, component: SetPasswordJitComponent,
data: { data: {
pageTitle: "joinOrganization", pageTitle: {
pageSubtitle: "finishJoiningThisOrganizationBySettingAMasterPassword", key: "joinOrganization",
},
pageSubtitle: {
key: "finishJoiningThisOrganizationBySettingAMasterPassword",
},
state: "set-password-jit", state: "set-password-jit",
} satisfies RouteDataProperties & AnonLayoutWrapperData, } satisfies RouteDataProperties & AnonLayoutWrapperData,
}, },

View File

@ -81,7 +81,7 @@ export class AppComponent implements OnInit, OnDestroy {
.subscribe((supported) => { .subscribe((supported) => {
if (!supported) { if (!supported) {
this.logService.debug("SDK is not supported"); this.logService.debug("SDK is not supported");
this.sdkService.failedToInitialize().catch(this.logService.error); this.sdkService.failedToInitialize().catch((e) => this.logService.error(e));
} else { } else {
this.logService.debug("SDK is supported"); this.logService.debug("SDK is supported");
} }

View File

@ -576,8 +576,14 @@ const safeProviders: SafeProvider[] = [
}), }),
safeProvider({ safeProvider({
provide: ForegroundTaskSchedulerService, provide: ForegroundTaskSchedulerService,
useFactory: getBgService<ForegroundTaskSchedulerService>("taskSchedulerService"), useFactory: (logService: LogService, stateProvider: StateProvider) => {
deps: [], if (needsBackgroundInit) {
return getBgService<ForegroundTaskSchedulerService>("taskSchedulerService")();
}
return new ForegroundTaskSchedulerService(logService, stateProvider);
},
deps: [LogService, StateProvider],
}), }),
safeProvider({ safeProvider({
provide: AnonLayoutWrapperDataService, provide: AnonLayoutWrapperDataService,

View File

@ -1,4 +1,5 @@
import { Component } from "@angular/core"; import { Component } from "@angular/core";
import { RouterModule } from "@angular/router";
import { JslibModule } from "@bitwarden/angular/jslib.module"; import { JslibModule } from "@bitwarden/angular/jslib.module";
import { ItemModule } from "@bitwarden/components"; import { ItemModule } from "@bitwarden/components";
@ -22,6 +23,7 @@ import { PopupPageComponent } from "../../../platform/popup/layout/popup-page.co
PopupHeaderComponent, PopupHeaderComponent,
PopupPageComponent, PopupPageComponent,
PopupFooterComponent, PopupFooterComponent,
RouterModule,
ItemModule, ItemModule,
], ],
}) })

View File

@ -9,7 +9,6 @@
<bit-item> <bit-item>
<button type="button" bit-item-content (click)="about()"> <button type="button" bit-item-content (click)="about()">
{{ "aboutBitwarden" | i18n }} {{ "aboutBitwarden" | i18n }}
<i slot="end" class="bwi bwi-angle-right" aria-hidden="true"></i>
</button> </button>
</bit-item> </bit-item>
<bit-item> <bit-item>

View File

@ -32,6 +32,7 @@
"@bitwarden/importer/ui": ["../../libs/importer/src/components"], "@bitwarden/importer/ui": ["../../libs/importer/src/components"],
"@bitwarden/platform": ["../../libs/platform/src"], "@bitwarden/platform": ["../../libs/platform/src"],
"@bitwarden/send-ui": ["../../libs/tools/send/send-ui/src"], "@bitwarden/send-ui": ["../../libs/tools/send/send-ui/src"],
"@bitwarden/tools-card": ["../../libs/tools/card/src"],
"@bitwarden/key-management": ["../../libs/key-management/src"], "@bitwarden/key-management": ["../../libs/key-management/src"],
"@bitwarden/vault": ["../../libs/vault/src"] "@bitwarden/vault": ["../../libs/vault/src"]
}, },

View File

@ -80,7 +80,7 @@
"papaparse": "5.4.1", "papaparse": "5.4.1",
"proper-lockfile": "4.1.2", "proper-lockfile": "4.1.2",
"rxjs": "7.8.1", "rxjs": "7.8.1",
"tldts": "6.1.48", "tldts": "6.1.51",
"zxcvbn": "4.4.2" "zxcvbn": "4.4.2"
} }
} }

View File

@ -858,7 +858,7 @@ export class ServiceContainer {
} }
if (!supported) { if (!supported) {
this.sdkService.failedToInitialize().catch(this.logService.error); this.sdkService.failedToInitialize().catch((e) => this.logService.error(e));
} }
} }
} }

View File

@ -1037,9 +1037,9 @@ dependencies = [
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.155" version = "0.2.159"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
[[package]] [[package]]
name = "libloading" name = "libloading"
@ -1161,9 +1161,9 @@ dependencies = [
[[package]] [[package]]
name = "napi" name = "napi"
version = "2.16.7" version = "2.16.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "633e41b2b983cf7983134f0c50986ca524d0caf38a2c6fc893ea3fa2e26abb0c" checksum = "53575dfa17f208dd1ce3a2da2da4659aae393b256a472f2738a8586a6c4107fd"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"ctor", "ctor",
@ -1181,9 +1181,9 @@ checksum = "e1c0f5d67ee408a4685b61f5ab7e58605c8ae3f2b4189f0127d804ff13d5560a"
[[package]] [[package]]
name = "napi-derive" name = "napi-derive"
version = "2.16.6" version = "2.16.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70a8a778fd367b13c64232e58632514b795514ece491ce136d96e976d34a3eb8" checksum = "17435f7a00bfdab20b0c27d9c56f58f6499e418252253081bfff448099da31d1"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"convert_case", "convert_case",

View File

@ -32,7 +32,7 @@ cbc = { version = "=0.1.2", features = ["alloc"] }
dirs = "=5.0.1" dirs = "=5.0.1"
futures = "=0.3.30" futures = "=0.3.30"
interprocess = { version = "=2.2.1", features = ["tokio"] } interprocess = { version = "=2.2.1", features = ["tokio"] }
libc = "=0.2.155" libc = "=0.2.159"
log = "=0.4.22" log = "=0.4.22"
rand = "=0.8.5" rand = "=0.8.5"
retry = "=2.0.0" retry = "=2.0.0"

View File

@ -16,8 +16,8 @@ manual_test = []
[dependencies] [dependencies]
anyhow = "=1.0.86" anyhow = "=1.0.86"
desktop_core = { path = "../core" } desktop_core = { path = "../core" }
napi = { version = "=2.16.7", features = ["async"] } napi = { version = "=2.16.11", features = ["async"] }
napi-derive = "=2.16.6" napi-derive = "=2.16.12"
tokio = { version = "1.38.0" } tokio = { version = "1.38.0" }
tokio-util = "0.7.11" tokio-util = "0.7.11"

View File

@ -51,7 +51,7 @@ export declare namespace powermonitors {
export function onLock(callback: (err: Error | null, ) => any): Promise<void> export function onLock(callback: (err: Error | null, ) => any): Promise<void>
export function isLockMonitorAvailable(): Promise<boolean> export function isLockMonitorAvailable(): Promise<boolean>
} }
export namespace ipc { export declare namespace ipc {
export interface IpcMessage { export interface IpcMessage {
clientId: number clientId: number
kind: IpcMessageType kind: IpcMessageType

View File

@ -10,7 +10,7 @@ publish = false
anyhow = "=1.0.86" anyhow = "=1.0.86"
desktop_core = { path = "../core", default-features = false } desktop_core = { path = "../core", default-features = false }
futures = "0.3.30" futures = "0.3.30"
log = "0.4.21" log = "0.4.22"
simplelog = "0.12.2" simplelog = "0.12.2"
tokio = { version = "1.38.0", features = ["io-std", "io-util", "macros", "rt"] } tokio = { version = "1.38.0", features = ["io-std", "io-util", "macros", "rt"] }
tokio-util = { version = "0.7.11", features = ["codec"] } tokio-util = { version = "0.7.11", features = ["codec"] }

View File

@ -18,7 +18,7 @@
"yargs": "17.7.2" "yargs": "17.7.2"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "20.16.10", "@types/node": "20.16.11",
"@types/node-ipc": "9.2.3", "@types/node-ipc": "9.2.3",
"typescript": "4.7.4" "typescript": "4.7.4"
} }
@ -106,9 +106,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "20.16.10", "version": "20.16.11",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.10.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz",
"integrity": "sha512-vQUKgWTjEIRFCvK6CyriPH3MZYiYlNy0fKiEYHWbcoWLEgs4opurGGKlebrTLqdSMIbXImH6XExNiIyNUv3WpA==", "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"undici-types": "~6.19.2" "undici-types": "~6.19.2"

View File

@ -23,7 +23,7 @@
"yargs": "17.7.2" "yargs": "17.7.2"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "20.16.10", "@types/node": "20.16.11",
"@types/node-ipc": "9.2.3", "@types/node-ipc": "9.2.3",
"typescript": "4.7.4" "typescript": "4.7.4"
}, },

View File

@ -142,8 +142,12 @@ const routes: Routes = [
path: "hint", path: "hint",
canActivate: [unauthGuardFn()], canActivate: [unauthGuardFn()],
data: { data: {
pageTitle: "requestPasswordHint", pageTitle: {
pageSubtitle: "enterYourAccountEmailAddressAndYourPasswordHintWillBeSentToYou", key: "requestPasswordHint",
},
pageSubtitle: {
key: "enterYourAccountEmailAddressAndYourPasswordHintWillBeSentToYou",
},
pageIcon: UserLockIcon, pageIcon: UserLockIcon,
} satisfies AnonLayoutWrapperData, } satisfies AnonLayoutWrapperData,
children: [ children: [
@ -195,7 +199,11 @@ const routes: Routes = [
{ {
path: "signup", path: "signup",
canActivate: [canAccessFeature(FeatureFlag.EmailVerification), unauthGuardFn()], canActivate: [canAccessFeature(FeatureFlag.EmailVerification), unauthGuardFn()],
data: { pageTitle: "createAccount" } satisfies AnonLayoutWrapperData, data: {
pageTitle: {
key: "createAccount",
},
} satisfies AnonLayoutWrapperData,
children: [ children: [
{ {
path: "", path: "",
@ -215,8 +223,12 @@ const routes: Routes = [
path: "finish-signup", path: "finish-signup",
canActivate: [canAccessFeature(FeatureFlag.EmailVerification), unauthGuardFn()], canActivate: [canAccessFeature(FeatureFlag.EmailVerification), unauthGuardFn()],
data: { data: {
pageTitle: "setAStrongPassword", pageTitle: {
pageSubtitle: "finishCreatingYourAccountBySettingAPassword", key: "setAStrongPassword",
},
pageSubtitle: {
key: "finishCreatingYourAccountBySettingAPassword",
},
} satisfies AnonLayoutWrapperData, } satisfies AnonLayoutWrapperData,
children: [ children: [
{ {
@ -230,7 +242,9 @@ const routes: Routes = [
canActivate: [canAccessFeature(FeatureFlag.ExtensionRefresh), lockGuard()], canActivate: [canAccessFeature(FeatureFlag.ExtensionRefresh), lockGuard()],
data: { data: {
pageIcon: LockIcon, pageIcon: LockIcon,
pageTitle: "yourVaultIsLockedV2", pageTitle: {
key: "yourVaultIsLockedV2",
},
showReadonlyHostname: true, showReadonlyHostname: true,
} satisfies AnonLayoutWrapperData, } satisfies AnonLayoutWrapperData,
children: [ children: [
@ -245,8 +259,12 @@ const routes: Routes = [
canActivate: [canAccessFeature(FeatureFlag.EmailVerification)], canActivate: [canAccessFeature(FeatureFlag.EmailVerification)],
component: SetPasswordJitComponent, component: SetPasswordJitComponent,
data: { data: {
pageTitle: "joinOrganization", pageTitle: {
pageSubtitle: "finishJoiningThisOrganizationBySettingAMasterPassword", key: "joinOrganization",
},
pageSubtitle: {
key: "finishJoiningThisOrganizationBySettingAMasterPassword",
},
} satisfies AnonLayoutWrapperData, } satisfies AnonLayoutWrapperData,
}, },
], ],

View File

@ -167,7 +167,7 @@ export class AppComponent implements OnInit, OnDestroy {
.subscribe((supported) => { .subscribe((supported) => {
if (!supported) { if (!supported) {
this.logService.debug("SDK is not supported"); this.logService.debug("SDK is not supported");
this.sdkService.failedToInitialize().catch(this.logService.error); this.sdkService.failedToInitialize().catch((e) => this.logService.error(e));
} else { } else {
this.logService.debug("SDK is supported"); this.logService.debug("SDK is supported");
} }

View File

@ -407,17 +407,56 @@
"message": "Minimum password length" "message": "Minimum password length"
}, },
"uppercase": { "uppercase": {
"message": "Hoofletters (A-Z)" "message": "Hoofletters (A-Z)",
"description": "deprecated. Use uppercaseLabel instead."
}, },
"lowercase": { "lowercase": {
"message": "Kleinletters (a-z)" "message": "Kleinletters (a-z)",
"description": "deprecated. Use lowercaseLabel instead."
}, },
"numbers": { "numbers": {
"message": "Syfers (0-9)" "message": "Syfers (0-9)",
"description": "deprecated. Use numbersLabel instead."
}, },
"specialCharacters": { "specialCharacters": {
"message": "Spesiale karakters (!@#$%^&*)" "message": "Spesiale karakters (!@#$%^&*)"
}, },
"include": {
"message": "Include",
"description": "Card header for password generator include block"
},
"uppercaseDescription": {
"message": "Include uppercase characters",
"description": "Tooltip for the password generator uppercase character checkbox"
},
"uppercaseLabel": {
"message": "A-Z",
"description": "Label for the password generator uppercase character checkbox"
},
"lowercaseDescription": {
"message": "Include lowercase characters",
"description": "Full description for the password generator lowercase character checkbox"
},
"lowercaseLabel": {
"message": "a-z",
"description": "Label for the password generator lowercase character checkbox"
},
"numbersDescription": {
"message": "Include numbers",
"description": "Full description for the password generator numbers checkbox"
},
"numbersLabel": {
"message": "0-9",
"description": "Label for the password generator numbers checkbox"
},
"specialCharactersDescription": {
"message": "Include special characters",
"description": "Full description for the password generator special characters checkbox"
},
"specialCharactersLabel": {
"message": "!@#$%^&*",
"description": "Label for the password generator special characters checkbox"
},
"numWords": { "numWords": {
"message": "Aantal Woorde" "message": "Aantal Woorde"
}, },
@ -442,7 +481,12 @@
"description": "Minimum Special Characters" "description": "Minimum Special Characters"
}, },
"ambiguous": { "ambiguous": {
"message": "Vermy dubbelsinnige karakters" "message": "Vermy dubbelsinnige karakters",
"description": "deprecated. Use avoidAmbiguous instead."
},
"avoidAmbiguous": {
"message": "Avoid ambiguous characters",
"description": "Label for the avoid ambiguous characters checkbox."
}, },
"generatorPolicyInEffect": { "generatorPolicyInEffect": {
"message": "Enterprise policy requirements have been applied to your generator options.", "message": "Enterprise policy requirements have been applied to your generator options.",
@ -2275,7 +2319,8 @@
"message": "Ontgrendel" "message": "Ontgrendel"
}, },
"generator": { "generator": {
"message": "Opwekker" "message": "Opwekker",
"description": "Short for 'credential generator'."
}, },
"whatWouldYouLikeToGenerate": { "whatWouldYouLikeToGenerate": {
"message": "Wat wil u opwek?" "message": "Wat wil u opwek?"

View File

@ -407,17 +407,56 @@
"message": "الحد الأدنى لطول كلمة المرور" "message": "الحد الأدنى لطول كلمة المرور"
}, },
"uppercase": { "uppercase": {
"message": "أحرف كبيرة (A-Z)" "message": "أحرف كبيرة (A-Z)",
"description": "deprecated. Use uppercaseLabel instead."
}, },
"lowercase": { "lowercase": {
"message": "أحرف صغيرة (a-z)" "message": "أحرف صغيرة (a-z)",
"description": "deprecated. Use lowercaseLabel instead."
}, },
"numbers": { "numbers": {
"message": "الأرقام (0-9)" "message": "الأرقام (0-9)",
"description": "deprecated. Use numbersLabel instead."
}, },
"specialCharacters": { "specialCharacters": {
"message": "أحرف خاصة (!@#$%^&*)" "message": "أحرف خاصة (!@#$%^&*)"
}, },
"include": {
"message": "Include",
"description": "Card header for password generator include block"
},
"uppercaseDescription": {
"message": "Include uppercase characters",
"description": "Tooltip for the password generator uppercase character checkbox"
},
"uppercaseLabel": {
"message": "A-Z",
"description": "Label for the password generator uppercase character checkbox"
},
"lowercaseDescription": {
"message": "Include lowercase characters",
"description": "Full description for the password generator lowercase character checkbox"
},
"lowercaseLabel": {
"message": "a-z",
"description": "Label for the password generator lowercase character checkbox"
},
"numbersDescription": {
"message": "Include numbers",
"description": "Full description for the password generator numbers checkbox"
},
"numbersLabel": {
"message": "0-9",
"description": "Label for the password generator numbers checkbox"
},
"specialCharactersDescription": {
"message": "Include special characters",
"description": "Full description for the password generator special characters checkbox"
},
"specialCharactersLabel": {
"message": "!@#$%^&*",
"description": "Label for the password generator special characters checkbox"
},
"numWords": { "numWords": {
"message": "عدد الكلمات" "message": "عدد الكلمات"
}, },
@ -442,7 +481,12 @@
"description": "Minimum Special Characters" "description": "Minimum Special Characters"
}, },
"ambiguous": { "ambiguous": {
"message": "تجنب الأحرف الغامضة" "message": "تجنب الأحرف الغامضة",
"description": "deprecated. Use avoidAmbiguous instead."
},
"avoidAmbiguous": {
"message": "Avoid ambiguous characters",
"description": "Label for the avoid ambiguous characters checkbox."
}, },
"generatorPolicyInEffect": { "generatorPolicyInEffect": {
"message": "Enterprise policy requirements have been applied to your generator options.", "message": "Enterprise policy requirements have been applied to your generator options.",
@ -2275,7 +2319,8 @@
"message": "غير مقفل" "message": "غير مقفل"
}, },
"generator": { "generator": {
"message": "المولّد" "message": "المولّد",
"description": "Short for 'credential generator'."
}, },
"whatWouldYouLikeToGenerate": { "whatWouldYouLikeToGenerate": {
"message": "ما الذي ترغب في توليده؟" "message": "ما الذي ترغب في توليده؟"

View File

@ -407,17 +407,56 @@
"message": "Minimal parol uzunluğu" "message": "Minimal parol uzunluğu"
}, },
"uppercase": { "uppercase": {
"message": "Böyük hərf (A-Z)" "message": "Böyük hərf (A-Z)",
"description": "deprecated. Use uppercaseLabel instead."
}, },
"lowercase": { "lowercase": {
"message": "Kiçik hərf (a-z)" "message": "Kiçik hərf (a-z)",
"description": "deprecated. Use lowercaseLabel instead."
}, },
"numbers": { "numbers": {
"message": "Rəqəmlər (0-9)" "message": "Rəqəmlər (0-9)",
"description": "deprecated. Use numbersLabel instead."
}, },
"specialCharacters": { "specialCharacters": {
"message": "Xüsusi simvollar (!@#$%^&*)" "message": "Xüsusi simvollar (!@#$%^&*)"
}, },
"include": {
"message": "Daxil et",
"description": "Card header for password generator include block"
},
"uppercaseDescription": {
"message": "Böyük hərf xarakterlərini daxil et",
"description": "Tooltip for the password generator uppercase character checkbox"
},
"uppercaseLabel": {
"message": "A-Z",
"description": "Label for the password generator uppercase character checkbox"
},
"lowercaseDescription": {
"message": "Kiçik hərf xarakterlərini daxil et",
"description": "Full description for the password generator lowercase character checkbox"
},
"lowercaseLabel": {
"message": "a-z",
"description": "Label for the password generator lowercase character checkbox"
},
"numbersDescription": {
"message": "Rəqəmləri daxil et",
"description": "Full description for the password generator numbers checkbox"
},
"numbersLabel": {
"message": "0-9",
"description": "Label for the password generator numbers checkbox"
},
"specialCharactersDescription": {
"message": "Xüsusi xarakterləri daxil et",
"description": "Full description for the password generator special characters checkbox"
},
"specialCharactersLabel": {
"message": "!@#$%^&*",
"description": "Label for the password generator special characters checkbox"
},
"numWords": { "numWords": {
"message": "Söz sayı" "message": "Söz sayı"
}, },
@ -442,7 +481,12 @@
"description": "Minimum Special Characters" "description": "Minimum Special Characters"
}, },
"ambiguous": { "ambiguous": {
"message": "Anlaşılmaz simvollardan çəkinin" "message": "Anlaşılmaz simvollardan çəkinin",
"description": "deprecated. Use avoidAmbiguous instead."
},
"avoidAmbiguous": {
"message": "Anlaşılmaz xarakterlərdən çəkin",
"description": "Label for the avoid ambiguous characters checkbox."
}, },
"generatorPolicyInEffect": { "generatorPolicyInEffect": {
"message": "Müəssisə siyasət tələbləri, yaradıcı seçimlərinizə tətbiq edildi.", "message": "Müəssisə siyasət tələbləri, yaradıcı seçimlərinizə tətbiq edildi.",
@ -2275,7 +2319,8 @@
"message": "Kilidi açıldı" "message": "Kilidi açıldı"
}, },
"generator": { "generator": {
"message": "Yaradıcı" "message": "Yaradıcı",
"description": "Short for 'credential generator'."
}, },
"whatWouldYouLikeToGenerate": { "whatWouldYouLikeToGenerate": {
"message": "Nə yaratmaq istəyirsiniz?" "message": "Nə yaratmaq istəyirsiniz?"

View File

@ -407,17 +407,56 @@
"message": "Minimum password length" "message": "Minimum password length"
}, },
"uppercase": { "uppercase": {
"message": "Вялікія літары (A-Z)" "message": "Вялікія літары (A-Z)",
"description": "deprecated. Use uppercaseLabel instead."
}, },
"lowercase": { "lowercase": {
"message": "Маленькія літары (a-z)" "message": "Маленькія літары (a-z)",
"description": "deprecated. Use lowercaseLabel instead."
}, },
"numbers": { "numbers": {
"message": "Лічбы (0-9)" "message": "Лічбы (0-9)",
"description": "deprecated. Use numbersLabel instead."
}, },
"specialCharacters": { "specialCharacters": {
"message": "Спецыяльныя сімвалы (!@#$%^&*)" "message": "Спецыяльныя сімвалы (!@#$%^&*)"
}, },
"include": {
"message": "Include",
"description": "Card header for password generator include block"
},
"uppercaseDescription": {
"message": "Include uppercase characters",
"description": "Tooltip for the password generator uppercase character checkbox"
},
"uppercaseLabel": {
"message": "A-Z",
"description": "Label for the password generator uppercase character checkbox"
},
"lowercaseDescription": {
"message": "Include lowercase characters",
"description": "Full description for the password generator lowercase character checkbox"
},
"lowercaseLabel": {
"message": "a-z",
"description": "Label for the password generator lowercase character checkbox"
},
"numbersDescription": {
"message": "Include numbers",
"description": "Full description for the password generator numbers checkbox"
},
"numbersLabel": {
"message": "0-9",
"description": "Label for the password generator numbers checkbox"
},
"specialCharactersDescription": {
"message": "Include special characters",
"description": "Full description for the password generator special characters checkbox"
},
"specialCharactersLabel": {
"message": "!@#$%^&*",
"description": "Label for the password generator special characters checkbox"
},
"numWords": { "numWords": {
"message": "Колькасць слоў" "message": "Колькасць слоў"
}, },
@ -442,7 +481,12 @@
"description": "Minimum Special Characters" "description": "Minimum Special Characters"
}, },
"ambiguous": { "ambiguous": {
"message": "Пазбягаць неадназначных сімвалаў" "message": "Пазбягаць неадназначных сімвалаў",
"description": "deprecated. Use avoidAmbiguous instead."
},
"avoidAmbiguous": {
"message": "Avoid ambiguous characters",
"description": "Label for the avoid ambiguous characters checkbox."
}, },
"generatorPolicyInEffect": { "generatorPolicyInEffect": {
"message": "Enterprise policy requirements have been applied to your generator options.", "message": "Enterprise policy requirements have been applied to your generator options.",
@ -2275,7 +2319,8 @@
"message": "Разблакіравана" "message": "Разблакіравана"
}, },
"generator": { "generator": {
"message": "Генератар" "message": "Генератар",
"description": "Short for 'credential generator'."
}, },
"whatWouldYouLikeToGenerate": { "whatWouldYouLikeToGenerate": {
"message": "Што вы хочаце генерыраваць?" "message": "Што вы хочаце генерыраваць?"

View File

@ -407,17 +407,56 @@
"message": "Минимална дължина на паролата" "message": "Минимална дължина на паролата"
}, },
"uppercase": { "uppercase": {
"message": "Главни букви (A-Z)" "message": "Главни букви (A-Z)",
"description": "deprecated. Use uppercaseLabel instead."
}, },
"lowercase": { "lowercase": {
"message": "Малки букви (a-z)" "message": "Малки букви (a-z)",
"description": "deprecated. Use lowercaseLabel instead."
}, },
"numbers": { "numbers": {
"message": "Числа (0-9)" "message": "Числа (0-9)",
"description": "deprecated. Use numbersLabel instead."
}, },
"specialCharacters": { "specialCharacters": {
"message": "Специални знаци (!@#$%^&*)" "message": "Специални знаци (!@#$%^&*)"
}, },
"include": {
"message": "Включване",
"description": "Card header for password generator include block"
},
"uppercaseDescription": {
"message": "Включване на главни букви",
"description": "Tooltip for the password generator uppercase character checkbox"
},
"uppercaseLabel": {
"message": "A-Z",
"description": "Label for the password generator uppercase character checkbox"
},
"lowercaseDescription": {
"message": "Включване на малки букви",
"description": "Full description for the password generator lowercase character checkbox"
},
"lowercaseLabel": {
"message": "a-z",
"description": "Label for the password generator lowercase character checkbox"
},
"numbersDescription": {
"message": "Включване на цифри",
"description": "Full description for the password generator numbers checkbox"
},
"numbersLabel": {
"message": "0-9",
"description": "Label for the password generator numbers checkbox"
},
"specialCharactersDescription": {
"message": "Включване на специални знаци",
"description": "Full description for the password generator special characters checkbox"
},
"specialCharactersLabel": {
"message": "!@#$%^&*",
"description": "Label for the password generator special characters checkbox"
},
"numWords": { "numWords": {
"message": "Брой думи" "message": "Брой думи"
}, },
@ -442,7 +481,12 @@
"description": "Minimum Special Characters" "description": "Minimum Special Characters"
}, },
"ambiguous": { "ambiguous": {
"message": "Без нееднозначни знаци" "message": "Без нееднозначни знаци",
"description": "deprecated. Use avoidAmbiguous instead."
},
"avoidAmbiguous": {
"message": "Без нееднозначни знаци",
"description": "Label for the avoid ambiguous characters checkbox."
}, },
"generatorPolicyInEffect": { "generatorPolicyInEffect": {
"message": "Изискванията на политиката за големи компании бяха приложени към настройките на генератора.", "message": "Изискванията на политиката за големи компании бяха приложени към настройките на генератора.",
@ -2275,7 +2319,8 @@
"message": "Отключено" "message": "Отключено"
}, },
"generator": { "generator": {
"message": "Генератор" "message": "Генератор",
"description": "Short for 'credential generator'."
}, },
"whatWouldYouLikeToGenerate": { "whatWouldYouLikeToGenerate": {
"message": "Какво бихте искали да генерирате?" "message": "Какво бихте искали да генерирате?"

Some files were not shown because too many files have changed in this diff Show More