Skip to content

[PM-33981] feat: Add device management localizations#2488

Draft
andrebispo5 wants to merge 1 commit intopm-33981/innovation-device-listfrom
pm-33981/localizations
Draft

[PM-33981] feat: Add device management localizations#2488
andrebispo5 wants to merge 1 commit intopm-33981/innovation-device-listfrom
pm-33981/localizations

Conversation

@andrebispo5
Copy link
Copy Markdown
Contributor

@andrebispo5 andrebispo5 commented Mar 25, 2026

Depends on: #2487

🎟️ Tracking

https://bitwarden.atlassian.net/browse/PM-33981

📔 Objective

Add localized strings for the device management feature including device types, activity status labels, and UI text.

Copilot AI review requested due to automatic review settings March 25, 2026 17:19
@andrebispo5 andrebispo5 requested a review from a team as a code owner March 25, 2026 17:19
@github-actions github-actions bot added app:password-manager Bitwarden Password Manager app context app:authenticator Bitwarden Authenticator app context t:feature labels Mar 25, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds new English localization keys to support the Device Management feature UI, including device/session status labels and device-type strings.

Changes:

  • Added device management UI strings (manage devices, empty state, session/status labels).
  • Added date-range labels for activity recency.
  • Added device type labels (mobile, browser extension, web vault, desktop, CLI, SDK, server).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

"AreYouSureYouWantToLogOutDevice" = "Are you sure you want to log out %1$@?";
"Mobile" = "Mobile";
"BrowserExtension" = "Browser extension";
"WebVault" = "Web vault";
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WebVault is already defined earlier in this file (currently as "Bitwarden web vault"). Adding a second WebVault entry here will override the earlier value at runtime, potentially changing existing UI text unexpectedly. Please either reuse the existing WebVault value (and remove this new entry) or introduce a distinct key for the shorter device-type label (e.g., WebVaultDeviceType/WebVaultShort).

Suggested change
"WebVault" = "Web vault";
"WebVaultDeviceType" = "Web vault";

Copilot uses AI. Check for mistakes.
@github-actions
Copy link
Copy Markdown
Contributor

Logo
Checkmarx One – Scan Summary & Detailsdb692fdf-dc6b-44f4-860e-5e0054d409e5

Great job! No new security vulnerabilities introduced in this pull request

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 25, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.72%. Comparing base (5a99710) to head (3e7b01d).
⚠️ Report is 2 commits behind head on pm-33981/innovation-device-list.

Additional details and impacted files
@@                         Coverage Diff                         @@
##           pm-33981/innovation-device-list    #2488      +/-   ##
===================================================================
- Coverage                            86.87%   85.72%   -1.16%     
===================================================================
  Files                                 1846     2079     +233     
  Lines                               162969   177860   +14891     
===================================================================
+ Hits                                141572   152462   +10890     
- Misses                               21397    25398    +4001     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment on lines +1336 to +1337
"PendingRequest" = "Pending request";
"PendingRequests" = "%1$d Pending requests";
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Localizations that need pluralization based on a parameter should be added in Localizable.stringsdict now so they're handled correctly on all languages.

Comment on lines +1340 to +1342
"RecentlyActiveLabel" = "Recently active:";
"FirstLogin" = "First login: %1$@";
"FirstLoginLabel" = "First login:";
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⛏️ I would use directly "Colon" instead of "Label" as suffix. What do you think @KatherineInCode ?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm in the category of wondering if there's a better way to do this in general, as I agree with the later comment of not following why there's two of them. But if we do have to have two, then I agree with Colon over Label.

"PendingRequest" = "Pending request";
"PendingRequests" = "%1$d Pending requests";
"Trusted" = "Trusted";
"RecentlyActive" = "Recently active: %1$@";
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎨 This has parameter so I'd change it to "RecentlyActiveX"

Comment on lines +1341 to +1342
"FirstLogin" = "First login: %1$@";
"FirstLoginLabel" = "First login:";
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤔 Not following why you have two first login localizations? Couldn't you have just the one with the parameter and if the parameter is empty then it's just not shown? Or is there a distinction so the "space" is not shown? Same applies to RecentlyActive

Comment on lines +1351 to +1352
"AreYouSureYouWantToRemoveDevice" = "Are you sure you want to remove %1$@?";
"AreYouSureYouWantToLogOutDevice" = "Are you sure you want to log out %1$@?";
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⛏️ We often use "X" "Y" "Z" for parameters in the key (if you want you can add a comment to indicate that it represents a device):

Suggested change
"AreYouSureYouWantToRemoveDevice" = "Are you sure you want to remove %1$@?";
"AreYouSureYouWantToLogOutDevice" = "Are you sure you want to log out %1$@?";
"AreYouSureYouWantToRemoveX" = "Are you sure you want to remove %1$@?";
"AreYouSureYouWantToLogOutX" = "Are you sure you want to log out %1$@?";

@andrebispo5 andrebispo5 marked this pull request as draft March 26, 2026 10:11
@andrebispo5 andrebispo5 added the innovation Feature work related to Innovation Sprint or BEEEP projects label Mar 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app:authenticator Bitwarden Authenticator app context app:password-manager Bitwarden Password Manager app context innovation Feature work related to Innovation Sprint or BEEEP projects t:feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants