Skip to content

docs(l10n): use profile terminology for better comprehension#264

Merged
nullvariant merged 3 commits into
mainfrom
docs/l10n-profile-terminology
Feb 4, 2026
Merged

docs(l10n): use profile terminology for better comprehension#264
nullvariant merged 3 commits into
mainfrom
docs/l10n-profile-terminology

Conversation

@nullvariant

@nullvariant nullvariant commented Feb 4, 2026

Copy link
Copy Markdown
Owner

User description

Summary

  • 15 languages updated to use "profile" equivalent instead of "identity (profile)" format
  • Changes in extension.description and config.identities.markdown fields
  • Rationale: "identity" causes confusion with "identifier" in many languages due to similar word roots

Test plan

  • Verify l10n files render correctly in VS Code settings UI
  • Check that extension description displays properly in marketplace preview

🤖 Generated with Claude Code


PR Type

Documentation, Enhancement


Description

  • Comprehensive README restructuring with improved organization and clarity

  • Terminology shift from "identity (profile)" to "identity" in English, "profile" in other languages

  • Updated documentation hashes reflecting content changes

  • Enhanced quick start guide with UI-based setup instead of JSON configuration

  • Added new sections for Identity Management, Commands, and improved troubleshooting


Diagram Walkthrough

flowchart LR
  A["README Files"] -->|"Restructure & Clarify"| B["Improved Organization"]
  C["Localization Files"] -->|"Update Terminology"| D["Profile vs Identity"]
  E["Documentation Hashes"] -->|"Recalculate"| F["Updated Checksums"]
  B --> G["Enhanced User Experience"]
  D --> G
Loading

File Walkthrough

Relevant files
Configuration changes
1 files
documentationInternal.ts
Update documentation hash checksums                                           
+2/-2     
Documentation
18 files
README.md
Major restructuring with UI-first setup approach                 
+119/-202
README.md
Parallel restructuring matching main README changes           
+119/-202
package.nls.json
Change "profiles" to "identities" in English                         
+2/-2     
package.nls.bg.json
Update Bulgarian: remove "identity" parenthetical               
+2/-2     
package.nls.cs.json
Update Czech: simplify terminology to profiles                     
+2/-2     
package.nls.de.json
Update German: use profile terminology only                           
+2/-2     
package.nls.es.json
Update Spanish: remove identity parenthetical                       
+2/-2     
package.nls.fr.json
Update French: simplify to profile terminology                     
+2/-2     
package.nls.hu.json
Update Hungarian: use profile terminology                               
+2/-2     
package.nls.it.json
Update Italian: remove identity parenthetical                       
+2/-2     
package.nls.ko.json
Update Korean: simplify to profile terminology                     
+2/-2     
package.nls.pl.json
Update Polish: remove identity parenthetical                         
+2/-2     
package.nls.pt-BR.json
Update Portuguese: simplify to profile terminology             
+2/-2     
package.nls.ru.json
Update Russian: use profile terminology only                         
+2/-2     
package.nls.tr.json
Update Turkish: remove identity parenthetical                       
+2/-2     
package.nls.uk.json
Update Ukrainian: simplify to profile terminology               
+2/-2     
package.nls.zh-CN.json
Update Simplified Chinese: use profile terminology             
+2/-2     
package.nls.zh-TW.json
Update Traditional Chinese: simplify terminology                 
+2/-2     

15 languages updated to use "profile" equivalent instead of
"identity (profile)" format in extension description and
config.identities.markdown fields.
Rationale: "identity" causes confusion with "identifier" in many
languages due to similar word roots. "Profile" is more familiar
to users in software settings context.

🖥️ IDE: [Cursor](https://cursor.sh)
🔌 Extension: [Claude Code](https://claude.ai/download)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Model-Raw: claude-opus-4-5-20251101
@qodo-code-review

qodo-code-review Bot commented Feb 4, 2026

Copy link
Copy Markdown

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
External resource loading

Description: The README introduces externally-hosted images loaded from
https://assets.nullvariant.com/... (also mirrored in
extensions/git-id-switcher/docs/i18n/en/README.md), which can leak user
IP/user-agent/referrer to a third-party domain when rendered (privacy/tracking risk) and
should be reviewed/approved or replaced with bundled/local assets.
README.md [36-216]

Referred Code
<img src="https://assets.nullvariant.com/nullvariant-vscode-extensions/extensions/git-id-switcher/images/en/demo.webp" width="600" alt="Demo" loading="lazy">

## 🎯 Why Git ID Switcher?

While many Git identity switchers exist, **Git ID Switcher** solves the complex problems that others overlook:

1. **Submodule Nightmare**: When working with repositories that have submodules (e.g., Hugo themes, vendored libraries), you normally need to manually set `git config user.name` for *each* submodule. This extension elegantly solves this by recursively applying your identity to all active submodules.
2. **SSH & GPG Handling**: It doesn't just change your name; it swaps SSH keys in ssh-agent and configures GPG signing, preventing commits with the wrong signature.

## Features

- **Identity Management UI**: Add, edit, delete, and reorder identities without editing settings.json
- **One-Click Identity Switch**: Instantly change Git user.name and user.email
- **Status Bar Integration**: Always see your current identity at a glance
- **Submodule Support**: Automatically propagate identity to Git submodules
- **SSH Key Management**: Automatically switch SSH keys in ssh-agent
- **GPG Signing Support**: Configure GPG key for commit signing (optional)
- **Rich Tooltips**: Detailed identity info including description and SSH host
- **Cross-Platform**: Works on macOS, Linux, and Windows
- **Multilingual**: Supports 17 languages



 ... (clipped 160 lines)
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

  • Update
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@qodo-code-review

qodo-code-review Bot commented Feb 4, 2026

Copy link
Copy Markdown

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Fix inconsistent UI terminology

Correct the terminology in package.nls.json by changing "identity" back to
"profile". This will resolve the inconsistency with other localization files and
ensure a uniform user experience.

extensions/git-id-switcher/package.nls.json [1-39]

 {
   "extension.displayName": "Git ID Switcher",
   "extension.description": "Switch between multiple Git profiles with one click. SSH keys and GPG signing sync automatically, and changes apply to submodules.",
-  "command.selectIdentity": "Select Identity",
-  "command.showCurrentIdentity": "Show Current Identity",
+  "command.selectIdentity": "Select Profile",
+  "command.showCurrentIdentity": "Show Current Profile",
   "command.showDocumentation": "Show Documentation",
-  "command.deleteIdentity": "Delete Identity",
+  "command.deleteIdentity": "Delete Profile",
   "config.title": "Git ID Switcher",
-  "config.category.identity": "Git ID Switcher: Identity",
+  "config.category.identity": "Git ID Switcher: Profile",
   ...
   "config.category.advanced": "Git ID Switcher: Other",
-  "config.identities": "List of Git identities to switch between",
-  "config.identities.markdown": "List of Git profiles. Each identity can have:\n- `id`: Unique ID (alphanumeric, hyphens, underscores only; must not duplicate; required)\n- `name`: Git user.name (required)\n- `email`: Git user.email (required)\n- `service`: Git hosting service (e.g., GitHub, GitLab, Bitbucket)\n- `icon`: Emoji to display in status bar (e.g., 🏠, 💼)\n- `description`: Note for this identity (e.g., Work, Personal)\n- `sshKeyPath`: Path to SSH private key (e.g., ~/.ssh/id_ed25519_work)\n- `sshHost`: SSH config host alias (e.g., github-work, gitlab-personal)\n- `gpgKeyId`: GPG key ID for commit signing (e.g., ABCD1234EF567890)",
+  "config.identities": "List of Git profiles to switch between",
+  "config.identities.markdown": "List of Git profiles. Each profile can have:\n- `id`: Unique ID (alphanumeric, hyphens, underscores only; must not duplicate; required)\n- `name`: Git user.name (required)\n- `email`: Git user.email (required)\n- `service`: Git hosting service (e.g., GitHub, GitLab, Bitbucket)\n- `icon`: Emoji to display in status bar (e.g., 🏠, 💼)\n- `description`: Note for this profile (e.g., Work, Personal)\n- `sshKeyPath`: Path to SSH private key (e.g., ~/.ssh/id_ed25519_work)\n- `sshHost`: SSH config host alias (e.g., github-work, gitlab-personal)\n- `gpgKeyId`: GPG key ID for commit signing (e.g., ABCD1234EF567890)",
   "config.identities.id": "Unique ID (alphanumeric, hyphens, underscores only; must not duplicate; required)",
   ...
 }

[To ensure code accuracy, apply this suggestion manually]

Suggestion importance[1-10]: 8

__

Why: The suggestion correctly identifies a significant inconsistency where the default English localization file (package.nls.json) was changed from profile to identity, directly contradicting the changes in all other localization files and the PR's apparent goal.

Medium
General
Fix inconsistent terminology in documentation

Standardize terminology in the "Identity Management" section of the
documentation. Change all references from "identity" to "profile" to match the
UI and improve clarity for users.

extensions/git-id-switcher/docs/i18n/en/README.md [207-214]

-## Identity Management
+## Profile Management
 
 Click the status bar → select "Manage Profiles" at the bottom of the list to open the management screen.
-You can add, edit, delete, and reorder identities directly from the UI.
+You can add, edit, delete, and reorder profiles directly from the UI.
 
-<img src="https://assets.nullvariant.com/nullvariant-vscode-extensions/extensions/git-id-switcher/images/en/profile-management.webp" width="600" alt="Identity Management: Guide for delete and reorder operations" loading="lazy">
+<img src="https://assets.nullvariant.com/nullvariant-vscode-extensions/extensions/git-id-switcher/images/en/profile-management.webp" width="600" alt="Profile Management: Guide for delete and reorder operations" loading="lazy">
 
-You can also delete an identity from the command palette using `Git ID Switcher: Delete Identity`.
+You can also delete a profile from the command palette using `Git ID Switcher: Delete Profile`.
  • Apply / Chat
Suggestion importance[1-10]: 7

__

Why: The suggestion correctly points out inconsistent terminology ("Identity" vs. "Profile") within a new documentation section, which could confuse users. Aligning the terms improves clarity and consistency.

Medium
  • Update

nullvariant and others added 2 commits February 4, 2026 22:01
🖥️ IDE: [Cursor](https://cursor.sh)
🔌 Extension: [Claude Code](https://claude.ai/download)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Model-Raw: claude-opus-4-5-20251101
- Run npx prettier to fix markdown table alignment
- Add prettier as dev dependency for local formatting verification
- Prevents future Restyled bot comments by enabling local checks

🖥️ IDE: [Cursor](https://cursor.sh)
🔌 Extension: [Claude Code](https://claude.ai/download)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Model-Raw: claude-opus-4-5-20251101
@sonarqubecloud

sonarqubecloud Bot commented Feb 4, 2026

Copy link
Copy Markdown

@nullvariant nullvariant merged commit c3f2f89 into main Feb 4, 2026
21 checks passed
@nullvariant nullvariant deleted the docs/l10n-profile-terminology branch February 4, 2026 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants