clients icon indicating copy to clipboard operation
clients copied to clipboard

[PM-23258] changing verbiage from import data to import items

Open itsadrago opened this issue 2 months ago â€ĸ 7 comments

đŸŽŸī¸ Tracking

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

📔 Objective

We have some minor verbiage inconsistency around import and export screens, navigation bars, and menu items. The changes are shown below, per client

Desktop

Export vault → Export

Import data → Import

Sync vault → Sync now

Import vault → Import

Browser

Sync vault now → Sync now

Export vault → Export

Import data → Import

Import items → Import

Web Vault

Import data → Import

Export vault → Export

Confirm format -> Export

Libs

Import data → Import

Export vault → Export

📸 Screenshots

⏰ Reminders before review

  • Contributor guidelines followed
  • All formatters and local linters executed and passed
  • Written new unit and / or integration tests where applicable
  • Protected functional changes with optionality (feature flags)
  • Used internationalization (i18n) for all UI strings
  • CI builds passed
  • Communicated to DevOps any deployment requirements
  • Updated any necessary documentation (Confluence, contributing docs) or informed the documentation team

đŸĻŽ Reviewer guidelines

  • 👍 (:+1:) or similar for great changes
  • 📝 (:memo:) or â„šī¸ (:information_source:) for notes or general info
  • ❓ (:question:) for questions
  • 🤔 (:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion
  • 🎨 (:art:) for suggestions / improvements
  • ❌ (:x:) or âš ī¸ (:warning:) for more significant problems or concerns needing attention
  • 🌱 (:seedling:) or â™ģī¸ (:recycle:) for future improvements or indications of technical debt
  • ⛏ (:pick:) for minor or nitpick changes

itsadrago avatar Oct 30 '25 01:10 itsadrago

Codecov Report

:white_check_mark: All modified and coverable lines are covered by tests. :white_check_mark: Project coverage is 41.82%. Comparing base (7f892cf) to head (d150542). :warning: Report is 29 commits behind head on main. :white_check_mark: All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #17123   +/-   ##
=======================================
  Coverage   41.81%   41.82%           
=======================================
  Files        3589     3589           
  Lines      104160   104160           
  Branches    15707    15707           
=======================================
+ Hits        43557    43564    +7     
+ Misses      58759    58748   -11     
- Partials     1844     1848    +4     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

:rocket: New features to boost your workflow:
  • :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

codecov[bot] avatar Oct 30 '25 01:10 codecov[bot]

Logo Checkmarx One – Scan Summary & Details – b31127a9-a078-47ab-8da6-f26b5d8ef4cc

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

github-actions[bot] avatar Oct 30 '25 17:10 github-actions[bot]

Claude finished @itsadrago's task —— View job


Code Review Complete

Tasks

  • [x] Analyze PR changes using bitwarden-code-reviewer agent
  • [x] Review locale file changes for consistency
  • [x] Verify template changes are correct
  • [x] Check for any unused locale keys
  • [x] Provide comprehensive review feedback

Review Findings

❌ Critical Issues Found

Issue 1: Incomplete locale cleanup for Secrets Manager

The latest commit (d150542612) removed exportData and exportSecrets keys from the English locale file (apps/web/src/locales/en/messages.json), but these keys still exist in all other locale files (fil, or, ca, ru, tr, nb, ka, sk, ko, pt_BR, el, be, da, bg, de, zh_CN, fi, uk, sr_CS, te, es, th, en_IN, fa, ta, mr, ml, km, sr, zh_TW, en_GB, ja, vi, cs, sv, eu, my, lv, nn, cy, bs, it, ro, et, ar, bn, fr, nl, pl, eo, kn, gl, pt_PT, az, sl, id, hr, si, hi, ne, hu, he, sr_CY, af).

Impact: When Crowdin syncs, translators will see orphaned keys that no longer exist in the English base. This creates translation inconsistency.

Recommendation: Remove exportData and exportSecrets from all non-English locale files in apps/web/src/locales/*/messages.json.


Issue 2: Missed importData references still in code

The importData i18n key is still being used in TWO locations that were NOT updated in this PR:

  1. bitwarden_license/bit-web/src/app/dirt/access-intelligence/risk-insights.component.html:22

    [buttonText]="this.i18nService.t('importData')"
    
  2. apps/web/src/app/vault/individual-vault/vault-onboarding/vault-onboarding.component.html:17

    [title]="'importData' | i18n"
    

Impact: These components will continue displaying "Import data" instead of "Import", creating inconsistency across the application.

Recommendation: Update these two templates to use import instead of importData, or clarify if these are intentionally excluded from the scope.


✅ What Works Well

  • Secrets Manager changes are consistent and complete within their scope
  • The new simpler verbiage ("Import", "Export") is clearer and more concise
  • No security issues introduced (text-only changes)
  • Changes follow i18n best practices by using translation keys
  • Desktop, Browser, and main Web Vault changes appear complete and consistent

🎨 Suggested Actions

  1. Clarify scope: Should the two remaining importData usages in risk-insights and vault-onboarding also be updated?
  2. Clean up locale files: Remove orphaned exportData and exportSecrets keys from all non-English locale files
  3. Verify completeness: Run a global search to ensure no other instances were missed

claude[bot] avatar Nov 06 '25 01:11 claude[bot]

Are the old keys actively used? If not please delete them from the english locale files.

Old keys preserved: The original keys like "importData" and "exportVault" are intentionally kept in locale files for backward compatibility (e.g., used in other contexts or by other locales during translation cycles).

Hinton avatar Nov 06 '25 08:11 Hinton

But, probably a larger question for product/design.

Yep, these are changes from design

itsadrago avatar Nov 07 '25 20:11 itsadrago

Are the old keys actively used? If not please delete them from the english locale files.

Old keys preserved: The original keys like "importData" and "exportVault" are intentionally kept in locale files for backward compatibility (e.g., used in other contexts or by other locales during translation cycles).

Old keys that are no longer referenced in the code have been removed

itsadrago avatar Nov 07 '25 20:11 itsadrago

Regarding the issues that Claude is reporting...

Issue 1: Incomplete locale cleanup for Secrets Manager

We don't remove entries from non-English locale files because the export / import process from Crowdin refreshes the non-English locale files

Issue 2: Missed importData references still in code

This was purposeful and approved by Design

itsadrago avatar Dec 10 '25 23:12 itsadrago

Sorry for commenting right into a PR again. But as I translate (sometimes / a bit) on Crowdin, I just wanted to add, that there are many languages where such single words as "Import" and "Export" are ambiguous in that way, that if it's not clear if it's meant as a noun or as a verb, the translation would be different.

E.g. for German:

"Export" as a noun = Export "Export" as verb = Exportieren

"Import" as a noun = Import "Import" as a verb = Importieren

So I hope that the strings get at least some hints whether they are meant as a noun or as a verb.

pamperer562580892423 avatar Dec 13 '25 12:12 pamperer562580892423