Commit Graph

515 Commits

Author SHA1 Message Date
Leendert de Borst
f74a09e4bb Update reset vault and refactor into its own page (#1007) 2025-07-21 11:16:39 +02:00
Leendert de Borst
99e17d0792 Add scaffolding for vault reset with local password verify (#1007) 2025-07-21 11:16:39 +02:00
dependabot[bot]
f9a4937a3a Bump the npm_and_yarn group across 1 directory with 2 updates
Bumps the npm_and_yarn group with 2 updates in the /apps/mobile-app directory: [on-headers](https://github.com/jshttp/on-headers) and [compression](https://github.com/expressjs/compression).


Updates `on-headers` from 1.0.2 to 1.1.0
- [Release notes](https://github.com/jshttp/on-headers/releases)
- [Changelog](https://github.com/jshttp/on-headers/blob/master/HISTORY.md)
- [Commits](https://github.com/jshttp/on-headers/compare/v1.0.2...v1.1.0)

Updates `compression` from 1.8.0 to 1.8.1
- [Release notes](https://github.com/expressjs/compression/releases)
- [Changelog](https://github.com/expressjs/compression/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/compression/compare/1.8.0...v1.8.1)

---
updated-dependencies:
- dependency-name: on-headers
  dependency-version: 1.1.0
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: compression
  dependency-version: 1.8.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-18 15:54:16 +02:00
Leendert de Borst
8d5d755fdf New Crowdin updates (#1012)
* New translations sharedresources.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations sharedresources.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations sharedresources.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations sharedresources.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations sharedresources.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations en.json (Dutch)
Update translations from Crowdin [ci skip]

* New translations importservices.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations searchwidget.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations apierrors.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations changepassword.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations deleteaccount.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations enable2fa.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations validationmessages.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations apierrors.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations changepassword.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations deleteaccount.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations enable2fa.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations validationmessages.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations apierrors.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations changepassword.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations deleteaccount.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations enable2fa.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations validationmessages.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations apierrors.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations changepassword.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations deleteaccount.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations enable2fa.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations validationmessages.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations en.json (Dutch)
Update translations from Crowdin [ci skip]

* New translations apierrors.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations changepassword.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations deleteaccount.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations enable2fa.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations validationmessages.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]
2025-07-17 08:53:08 +02:00
Leendert de Borst
64857bcbb4 Update AuthTests.cs 2025-07-16 19:55:58 +02:00
Leendert de Borst
4cbed21e67 Update E2E tests 2025-07-16 17:00:59 +02:00
Leendert de Borst
16f8eced09 Update Playwright timeout to allow tests more time 2025-07-16 16:27:18 +02:00
Leendert de Borst
547fa57cb6 Update ApiResponseUtility.cs (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
cbacd7486a Update username validation (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
3b413a79c9 Update E2E tests (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
a2b962bb44 Make topnav structure refresh on language change (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
95739f6758 Simplify WASM localize structure, fix re-render bug in searchwidget (#1006)
This reverts commit 32a2d13fcc.
2025-07-16 11:28:28 +02:00
Leendert de Borst
cc95779f48 Update i18n folder structure and read global config for language switcher (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
25ff5bf994 Refactor browser extension i18n to use single file structure (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
32e6ca597a Update mobile app extra locales (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
a39340262e Cleanup unused translation keys (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
58ed0bf156 Update login to localize error messages returned by API (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
77994d221e Localize UnlockSuccess.tsx (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
519fc5fb24 Refactor VaultMessageHandler.ts for translations (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
accc76d8a2 Add dynamic .json translations for content script (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
0c2de27f1a Catch ApiErrors and translate them in Login.tsx (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
53047cf3ad Update EmailPreview.tsx (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
0b7cdbce02 Update AuthSettings.tsx (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
a963064dc8 Cache localized strings for performance (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
f4c4962cb8 Localize Enable2Fa page (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
3c36020812 Update clickOutsideHandler.js to only listen on mouse outside and explicit escape key (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
9892430e59 Update import/export localization (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
1e3e542f92 Localize form model validations (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
c90c5a9f2f Update user registration flow to show correct error messages (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
7621be4cbe Update AuthController.cs (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
31868b7099 Update Unlock.razor (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
8213a81321 Add ApiErrors enum translations and implement to client login (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
df2ae22a99 Refactor API to output error codes instead of literal error texts (#1006) 2025-07-16 11:28:28 +02:00
Leendert de Borst
9999529d60 Add Crowdin initial language files (#1004)
* New translations emails.json (French)
Update translations from Crowdin [ci skip]

* New translations emails.json (Spanish)
Update translations from Crowdin [ci skip]

* New translations emails.json (German)
Update translations from Crowdin [ci skip]

* New translations emails.json (Dutch)
Update translations from Crowdin [ci skip]

* New translations emails.json (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations settings.json (French)
Update translations from Crowdin [ci skip]

* New translations settings.json (Spanish)
Update translations from Crowdin [ci skip]

* New translations settings.json (German)
Update translations from Crowdin [ci skip]

* New translations settings.json (Dutch)
Update translations from Crowdin [ci skip]

* New translations settings.json (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations en.json (French)
Update translations from Crowdin [ci skip]

* New translations en.json (Spanish)
Update translations from Crowdin [ci skip]

* New translations en.json (German)
Update translations from Crowdin [ci skip]

* New translations en.json (Dutch)
Update translations from Crowdin [ci skip]

* New translations en.json (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations login.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations login.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations login.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations login.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations login.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations register.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations register.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations register.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations register.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations register.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations passwordstep.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations passwordstep.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations passwordstep.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations passwordstep.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations passwordstep.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations termsandconditionsstep.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations termsandconditionsstep.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations termsandconditionsstep.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations termsandconditionsstep.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations termsandconditionsstep.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations usernamestep.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations usernamestep.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations usernamestep.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations usernamestep.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations usernamestep.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations totpcodes.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations totpcodes.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations totpcodes.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations totpcodes.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations totpcodes.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations totpviewer.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations totpviewer.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations totpviewer.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations totpviewer.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations totpviewer.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations emailmodal.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations emailmodal.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations emailmodal.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations emailmodal.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations emailmodal.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations emailpreview.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations emailpreview.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations emailpreview.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations emailpreview.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations emailpreview.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations emailrow.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations emailrow.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations emailrow.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations emailrow.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations emailrow.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations recentemails.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations recentemails.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations recentemails.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations recentemails.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations recentemails.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations copypasteformrow.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations copypasteformrow.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations copypasteformrow.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations copypasteformrow.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations copypasteformrow.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations editemailformrow.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations editemailformrow.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations editemailformrow.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations editemailformrow.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations editemailformrow.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations defaultpasswordsettings.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations defaultpasswordsettings.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations defaultpasswordsettings.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations defaultpasswordsettings.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations defaultpasswordsettings.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations importservicecard.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations importservicecard.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations importservicecard.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations importservicecard.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations importservicecard.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations importservices.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations importservices.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations importservices.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations importservices.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations importservices.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations passwordsettingspopup.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations passwordsettingspopup.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations passwordsettingspopup.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations passwordsettingspopup.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations passwordsettingspopup.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations activesessionssection.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations activesessionssection.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations activesessionssection.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations activesessionssection.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations activesessionssection.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations deleteaccountsection.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations deleteaccountsection.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations deleteaccountsection.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations deleteaccountsection.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations deleteaccountsection.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations passwordchangesection.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations passwordchangesection.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations passwordchangesection.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations passwordchangesection.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations passwordchangesection.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations quickvaultunlocksection.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations quickvaultunlocksection.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations quickvaultunlocksection.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations quickvaultunlocksection.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations quickvaultunlocksection.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations recentauthlogssection.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations recentauthlogssection.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations recentauthlogssection.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations recentauthlogssection.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations recentauthlogssection.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations showrecoverycodes.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations showrecoverycodes.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations showrecoverycodes.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations showrecoverycodes.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations showrecoverycodes.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations twofactorauthenticationsection.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations twofactorauthenticationsection.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations twofactorauthenticationsection.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations twofactorauthenticationsection.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations twofactorauthenticationsection.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations createnewidentitywidget.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations createnewidentitywidget.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations createnewidentitywidget.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations createnewidentitywidget.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations createnewidentitywidget.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations searchwidget.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations searchwidget.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations searchwidget.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations searchwidget.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations searchwidget.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations footer.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations footer.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations footer.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations footer.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations footer.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations topmenu.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations topmenu.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations topmenu.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations topmenu.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations topmenu.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations forgotpassword.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations forgotpassword.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations forgotpassword.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations forgotpassword.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations forgotpassword.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations logout.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations logout.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations logout.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations logout.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations logout.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations setup.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations setup.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations setup.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations setup.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations setup.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations start.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations start.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations start.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations start.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations start.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations unlock.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations unlock.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations unlock.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations unlock.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations unlock.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations addedit.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations addedit.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations addedit.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations addedit.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations addedit.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations delete.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations delete.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations delete.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations delete.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations delete.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations home.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations home.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations home.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations home.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations home.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations view.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations view.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations view.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations view.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations view.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations home.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations home.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations home.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations home.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations home.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations apps.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations apps.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations apps.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations apps.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations apps.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations general.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations general.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations general.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations general.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations general.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations importexport.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations importexport.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations importexport.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations importexport.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations importexport.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations security.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations security.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations security.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations security.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations security.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations creating.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations creating.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations creating.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations creating.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations creating.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations errorvaultdecrypt.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations errorvaultdecrypt.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations errorvaultdecrypt.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations errorvaultdecrypt.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations errorvaultdecrypt.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations vaultdecryptionprogress.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations vaultdecryptionprogress.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations vaultdecryptionprogress.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations vaultdecryptionprogress.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations vaultdecryptionprogress.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations sync.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations sync.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations sync.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations sync.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations sync.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]

* New translations welcome.en.resx (French)
Update translations from Crowdin [ci skip]

* New translations welcome.en.resx (Spanish)
Update translations from Crowdin [ci skip]

* New translations welcome.en.resx (German)
Update translations from Crowdin [ci skip]

* New translations welcome.en.resx (Dutch)
Update translations from Crowdin [ci skip]

* New translations welcome.en.resx (Ukrainian)
Update translations from Crowdin [ci skip]
2025-07-12 14:59:46 +02:00
Leendert de Borst
185b7a0ad6 Update LanguageService.cs (#1000) 2025-07-11 23:44:45 +02:00
Leendert de Borst
c3ae769d11 Cleanup mobile app i18n config file (#1000) 2025-07-11 23:44:45 +02:00
Leendert de Borst
fc7f12471a Remove unused translation keys from browser extension (#1000) 2025-07-11 23:44:45 +02:00
Leendert de Borst
d36a3dba42 Update LanguageService.cs (#1000) 2025-07-11 23:44:45 +02:00
Leendert de Borst
da21565f1b Update pods, remove duplicate localizable files (#993) 2025-07-11 12:50:41 +02:00
Leendert de Borst
5b6a80a7b1 Localize Android native autofill component (#993) 2025-07-11 12:50:41 +02:00
Leendert de Borst
cb5cd1006c Update mobile app language setting configure for mobile app (#993) 2025-07-11 12:50:41 +02:00
Leendert de Borst
ca9b9e465c Add locale config for Android app (#993) 2025-07-11 12:50:41 +02:00
Leendert de Borst
9a6c86569d Bump android dependencies and fix build after adding expo-localization (#993) 2025-07-11 12:50:41 +02:00
Leendert de Borst
21177e9927 Add localization keys for context menu (#993) 2025-07-11 12:50:41 +02:00
Leendert de Borst
e7c79f2aa4 Localize vault setting subpages (#993) 2025-07-11 12:50:41 +02:00
Leendert de Borst
8e89673cc9 Localize credential and email tabs (#993) 2025-07-11 12:50:41 +02:00
Leendert de Borst
fc75532a0d Localize native iOS autofill component (#993) 2025-07-11 12:50:41 +02:00
Leendert de Borst
9eb913c692 Add english and dutch languages to iOS app settings (#993) 2025-07-11 12:50:41 +02:00
Leendert de Borst
e1497b74aa Mobile app i18n scaffolding (#993) 2025-07-11 12:50:41 +02:00
Leendert de Borst
2d85511ec5 Fix top level await issue (#992) 2025-07-09 11:42:45 +02:00