Skip to content

Translation enhancements#423

Open
Bekka592 wants to merge 9 commits intofossasia:mainfrom
Bekka592:translation-enhancements
Open

Translation enhancements#423
Bekka592 wants to merge 9 commits intofossasia:mainfrom
Bekka592:translation-enhancements

Conversation

@Bekka592
Copy link

@Bekka592 Bekka592 commented Mar 3, 2026

📌 Fixes

Fixes #422


📝 Summary of Changes

  • Fixed the placeholder translation bugs: The two formerly buggy placeholders are now also automatically translated into the system language. All other placeholders were tested and did not need any fixing.
image
  • Determined all error messages that are printed to the user
  • Added translations for these messages, while still providing the English version as a fallback, in case there is an issue with the translation dictionary. Some examples:
  1. translated version of the githubUserNotFoundError
image
  1. translated version of the usernameRequiredError
image

✅ Checklist

  • I’ve tested my changes locally
  • My code follows the project’s code style guidelines

Summary by Sourcery

Localize user-facing error and status messages and hook them into the browser i18n system with fallbacks.

Bug Fixes:

  • Fix non-translated input placeholders by wiring them to i18n placeholders.

Enhancements:

  • Add i18n-backed translations for GitHub and GitLab error messages, invalid token notices, and repository filter/load notices across the popup and helper scripts.
  • Adjust GitLab token tooltip copy for clearer wording about token usage.

Copilot AI review requested due to automatic review settings March 3, 2026 23:27
@sourcery-ai
Copy link
Contributor

sourcery-ai bot commented Mar 3, 2026

Reviewer's Guide

This PR internationalizes key user-facing messages and placeholders across the Scrum Helper popup, GitHub/GitLab helpers, and report generation flows by routing them through chrome.i18n with safe English fallbacks, and adds the corresponding translation entries for all supported locales.

Sequence diagram for localized GitHub user fetch error handling

sequenceDiagram
    actor User
    participant Popup
    participant ScrumHelper
    participant GitHubAPI
    participant ChromeI18n as chrome_i18n

    User->>Popup: Click generate report
    Popup->>ScrumHelper: allIncluded(outputTarget)
    ScrumHelper->>GitHubAPI: fetch(userUrl)
    GitHubAPI-->>ScrumHelper: 404 Not Found
    ScrumHelper->>ChromeI18n: getMessage(githubUserNotFoundError, [platformUsernameLocal])
    ChromeI18n-->>ScrumHelper: localizedMessage or null
    alt localizedMessage available
        ScrumHelper->>ScrumHelper: errorMsg = localizedMessage
    else no localizedMessage
        ScrumHelper->>ScrumHelper: errorMsg = English fallback string
    end
    ScrumHelper->>Popup: throw Error(errorMsg)
    Popup-->>User: Show localized error in UI
Loading

Sequence diagram for localized invalid token handling in popup

sequenceDiagram
    actor User
    participant Popup
    participant ScrumHelper
    participant ChromeI18n as chrome_i18n

    User->>Popup: Trigger action requiring GitHub token
    Popup->>ScrumHelper: allIncluded(outputTarget = popup)
    ScrumHelper->>ScrumHelper: detect invalid or expired token
    ScrumHelper->>ChromeI18n: getMessage(invalidTokenError)
    ChromeI18n-->>ScrumHelper: localizedMessage or null
    alt localizedMessage available
        ScrumHelper->>ScrumHelper: errMsg = localizedMessage
    else no localizedMessage
        ScrumHelper->>ScrumHelper: errMsg = English fallback
    end
    alt scrumReport element exists
        ScrumHelper->>Popup: Set innerHTML with errMsg
        ScrumHelper->>Popup: Re-enable generateReport button
    else no scrumReport element
        ScrumHelper->>User: alert(errMsg)
    end
Loading

Flow diagram for chrome.i18n message resolution with English fallback

flowchart TD
    A[Need user-facing message] --> B[Call chrome.i18n.getMessage with key and optional args]
    B --> C{chrome and i18n<br>available?}
    C -- No --> F[Use hardcoded English fallback string]
    C -- Yes --> D{getMessage<br>returned value?}
    D -- Has value --> E[Use localized message]
    D -- Null or empty --> F[Use hardcoded English fallback string]
    E --> G[Render message in UI or throw Error]
    F --> G[Render message in UI or throw Error]
Loading

File-Level Changes

Change Details Files
Route Scrum Helper GitHub/GitLab/report error messages through chrome.i18n with English fallbacks.
  • Wrap username-required popup error messages in scrumHelper.js with chrome.i18n.getMessage('usernameRequiredError') and retain the previous English string as a fallback.
  • Update GitLab fetch error handlers in scrumHelper.js to use a new 'gitlabFetchingError' i18n key when err.message is not set, falling back to the existing English text.
  • Internationalize GitHub validation and fetch errors in scrumHelper.js (user not found, validation failures, invalid search query, issues/PR/user fetch failures) using dedicated i18n keys with parameter substitution and English fallbacks.
  • Refactor the generic report-generation error handler in scrumHelper.js to derive the user-visible message from chrome.i18n.getMessage('reportGenerationError') while still respecting any explicit error message or string thrown.
  • Introduce an i18n-backed invalid-token error message in scrumHelper.js and reuse it both for the in-popup error panel and the alert() fallback.
src/scripts/scrumHelper.js
Internationalize popup UI notices and repository-filtering guidance in the extension popup.
  • Change the display mode notice text to use the 'displayModeNotice' i18n key with modeLabel as a parameter, falling back to the original English string.
  • Update repo filtering and loading status/error messages in popup.js (GitHub-only notices, loading state, username required) to use new i18n keys like 'repoFilteringGithubOnly', 'repoLoadingGithubOnly', 'repoFetchingGithubOnly', 'loadingAutomatically', and 'usernameRequiredError' with English fallbacks.
src/scripts/popup.js
Internationalize GitLab helper errors for user lookup and project fetching.
  • Wrap GitLab user fetch failure in an i18n message 'gitlabUserFetchError' with status and statusText parameters and English fallback.
  • Wrap GitLab user-not-found condition in 'gitlabUserNotFoundError' with the username parameter and English fallback.
  • Wrap membership and contributed-project fetch failures in 'gitlabMembershipError' and 'gitlabContributedError' i18n messages with status and statusText parameters and English fallbacks.
src/scripts/gitlabHelper.js
Convert popup form placeholders to i18n-driven attributes and tweak GitLab token tooltip copy.
  • Replace hard-coded project name input placeholder with a data-i18n-placeholder="projectNamePlaceholder" attribute so the placeholder can be translated.
  • Replace the GitHub username input placeholder text with data-i18n-placeholder="githubUsernamePlaceholder" to enable localization.
  • Clarify the GitLab token tooltip text to mention "Scrum Helper" explicitly while keeping behavior description unchanged.
src/popup.html
Add or update locale message entries for new error and placeholder keys across all supported languages.
  • Introduce translation keys for all newly internationalized strings (e.g., usernameRequiredError, githubUserNotFoundError, githubUserValidationError, gitlabFetchingError, reportGenerationError, invalidTokenError, repo*GithubOnly, loadingAutomatically, projectNamePlaceholder, githubUsernamePlaceholder, GitLab helper errors) in the English locale.
  • Propagate these keys with localized or placeholder translations into all supported locales (de, es, fr, he, hi, id, it, ja, ml, my, nb, pt, pt_BR, ru, te, uk, vi, zh_CN, etc.) so that language switching covers the new messages.
src/_locales/en/messages.json
src/_locales/de/messages.json
src/_locales/es/messages.json
src/_locales/fr/messages.json
src/_locales/he/messages.json
src/_locales/hi/messages.json
src/_locales/id/messages.json
src/_locales/it/messages.json
src/_locales/ja/messages.json
src/_locales/ml/messages.json
src/_locales/my/messages.json
src/_locales/nb/messages.json
src/_locales/pt/messages.json
src/_locales/pt_BR/messages.json
src/_locales/ru/messages.json
src/_locales/te/messages.json
src/_locales/uk/messages.json
src/_locales/vi/messages.json
src/_locales/zh_CN/messages.json

Assessment against linked issues

Issue Objective Addressed Explanation
#422 Ensure the project name and GitHub username input placeholders are internationalized and translated via the extension’s i18n system.
#422 Internationalize user-facing error and status messages (e.g., username required, GitHub/GitLab fetch/validation errors, report generation errors, repo-filtering notices), providing translations via chrome.i18n with English as a fallback.

Possibly linked issues


Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

Hey - I've found 14 security issues, 1 other issue, and left some high level feedback:

Security issues:

  • User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities (link)
  • User controlled data in a scrumReport.innerHTML is an anti-pattern that can lead to XSS vulnerabilities (link)
  • User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities (link)
  • User controlled data in a scrumReport.innerHTML is an anti-pattern that can lead to XSS vulnerabilities (link)
  • User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities (link)
  • User controlled data in a scrumReport.innerHTML is an anti-pattern that can lead to XSS vulnerabilities (link)
  • User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities (link)
  • User controlled data in a scrumReport.innerHTML is an anti-pattern that can lead to XSS vulnerabilities (link)
  • User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities (link)
  • User controlled data in a scrumReport.innerHTML is an anti-pattern that can lead to XSS vulnerabilities (link)
  • User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities (link)
  • User controlled data in a scrumReport.innerHTML is an anti-pattern that can lead to XSS vulnerabilities (link)
  • User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities (link)
  • User controlled data in a reportDiv.innerHTML is an anti-pattern that can lead to XSS vulnerabilities (link)

General comments:

  • In showInvalidTokenMessage, errMsg is assigned without a const/let declaration, which will create/overwrite a global variable and can throw in strict mode—declare it locally (const errMsg = ...) to avoid that.
  • There are many repeated snippets building the same styled error <div> with i18n fallbacks; consider extracting a small helper (e.g., getErrorMessage(key, fallback, args) or renderError(container, key, fallback, args)) to reduce duplication and make future changes to error styling/messages safer.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- In `showInvalidTokenMessage`, `errMsg` is assigned without a `const`/`let` declaration, which will create/overwrite a global variable and can throw in strict mode—declare it locally (`const errMsg = ...`) to avoid that.
- There are many repeated snippets building the same styled error `<div>` with i18n fallbacks; consider extracting a small helper (e.g., `getErrorMessage(key, fallback, args)` or `renderError(container, key, fallback, args)`) to reduce duplication and make future changes to error styling/messages safer.

## Individual Comments

### Comment 1
<location path="src/scripts/scrumHelper.js" line_range="941" />
<code_context>
 	verifyCacheStatus();

 	function showInvalidTokenMessage() {
+		errMsg = chrome?.i18n.getMessage('invalidTokenError') || 'Invalid or expired GitHub token. Please check your token in the Scrum Helper settings and try again.';
 		if (outputTarget === 'popup') {
 			const reportDiv = document.getElementById('scrumReport');
</code_context>
<issue_to_address>
**issue (bug_risk):** Declare `errMsg` locally to avoid leaking a global variable.

This assignment creates/overwrites a global `errMsg` in non-strict mode, which can cause subtle conflicts elsewhere. Declare it locally, e.g. `const errMsg = ...` inside `showInvalidTokenMessage`.
</issue_to_address>

### Comment 2
<location path="src/scripts/scrumHelper.js" line_range="179-180" />
<code_context>
								scrumReport.innerHTML =
									'<div class="error-message" style="color: #dc2626; font-weight: bold; padding: 10px;">' + (chrome?.i18n.getMessage('usernameRequiredError') || 'Please enter your username to generate a report.') + '</div>';
</code_context>
<issue_to_address>
**security (javascript.browser.security.insecure-document-method):** User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities

*Source: opengrep*
</issue_to_address>

### Comment 3
<location path="src/scripts/scrumHelper.js" line_range="179-180" />
<code_context>
								scrumReport.innerHTML =
									'<div class="error-message" style="color: #dc2626; font-weight: bold; padding: 10px;">' + (chrome?.i18n.getMessage('usernameRequiredError') || 'Please enter your username to generate a report.') + '</div>';
</code_context>
<issue_to_address>
**security (javascript.browser.security.insecure-innerhtml):** User controlled data in a `scrumReport.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities

*Source: opengrep*
</issue_to_address>

### Comment 4
<location path="src/scripts/scrumHelper.js" line_range="265" />
<code_context>
											scrumReport.innerHTML = `<div class="error-message" style="color: #dc2626; font-weight: bold; padding: 10px;">${err.message || chrome?.i18n.getMessage('gitlabFetchingError') || 'An error occurred while fetching GitLab data.'}</div>`;
</code_context>
<issue_to_address>
**security (javascript.browser.security.insecure-document-method):** User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities

*Source: opengrep*
</issue_to_address>

### Comment 5
<location path="src/scripts/scrumHelper.js" line_range="265" />
<code_context>
											scrumReport.innerHTML = `<div class="error-message" style="color: #dc2626; font-weight: bold; padding: 10px;">${err.message || chrome?.i18n.getMessage('gitlabFetchingError') || 'An error occurred while fetching GitLab data.'}</div>`;
</code_context>
<issue_to_address>
**security (javascript.browser.security.insecure-innerhtml):** User controlled data in a `scrumReport.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities

*Source: opengrep*
</issue_to_address>

### Comment 6
<location path="src/scripts/scrumHelper.js" line_range="313" />
<code_context>
											scrumReport.innerHTML = `<div class="error-message" style="color: #dc2626; font-weight: bold; padding: 10px;">${err.message || chrome?.i18n.getMessage('gitlabFetchingError') || 'An error occurred while fetching GitLab data.'}</div>`;
</code_context>
<issue_to_address>
**security (javascript.browser.security.insecure-document-method):** User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities

*Source: opengrep*
</issue_to_address>

### Comment 7
<location path="src/scripts/scrumHelper.js" line_range="313" />
<code_context>
											scrumReport.innerHTML = `<div class="error-message" style="color: #dc2626; font-weight: bold; padding: 10px;">${err.message || chrome?.i18n.getMessage('gitlabFetchingError') || 'An error occurred while fetching GitLab data.'}</div>`;
</code_context>
<issue_to_address>
**security (javascript.browser.security.insecure-innerhtml):** User controlled data in a `scrumReport.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities

*Source: opengrep*
</issue_to_address>

### Comment 8
<location path="src/scripts/scrumHelper.js" line_range="325-326" />
<code_context>
								scrumReport.innerHTML =
									`<div class="error-message" style="color: #dc2626; font-weight: bold; padding: 10px;">${chrome?.i18n.getMessage('usernameRequiredError') || 'Please enter your username to generate a report.'}</div>`;
</code_context>
<issue_to_address>
**security (javascript.browser.security.insecure-document-method):** User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities

*Source: opengrep*
</issue_to_address>

### Comment 9
<location path="src/scripts/scrumHelper.js" line_range="325-326" />
<code_context>
								scrumReport.innerHTML =
									`<div class="error-message" style="color: #dc2626; font-weight: bold; padding: 10px;">${chrome?.i18n.getMessage('usernameRequiredError') || 'Please enter your username to generate a report.'}</div>`;
</code_context>
<issue_to_address>
**security (javascript.browser.security.insecure-innerhtml):** User controlled data in a `scrumReport.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities

*Source: opengrep*
</issue_to_address>

### Comment 10
<location path="src/scripts/scrumHelper.js" line_range="340-341" />
<code_context>
							scrumReport.innerHTML =
								`<div class="error-message" style="color: #dc2626; font-weight: bold; padding: 10px;">${chrome?.i18n.getMessage('unknownPlatformError') || 'Unknown platform selected.'}</div>`;
</code_context>
<issue_to_address>
**security (javascript.browser.security.insecure-document-method):** User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities

*Source: opengrep*
</issue_to_address>

### Comment 11
<location path="src/scripts/scrumHelper.js" line_range="340-341" />
<code_context>
							scrumReport.innerHTML =
								`<div class="error-message" style="color: #dc2626; font-weight: bold; padding: 10px;">${chrome?.i18n.getMessage('unknownPlatformError') || 'Unknown platform selected.'}</div>`;
</code_context>
<issue_to_address>
**security (javascript.browser.security.insecure-innerhtml):** User controlled data in a `scrumReport.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities

*Source: opengrep*
</issue_to_address>

### Comment 12
<location path="src/scripts/scrumHelper.js" line_range="766" />
<code_context>
					scrumReport.innerHTML = `<div class="error-message" style="color: #dc2626; font-weight: bold; padding: 10px;">${errorMsg}</div>`;
</code_context>
<issue_to_address>
**security (javascript.browser.security.insecure-document-method):** User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities

*Source: opengrep*
</issue_to_address>

### Comment 13
<location path="src/scripts/scrumHelper.js" line_range="766" />
<code_context>
					scrumReport.innerHTML = `<div class="error-message" style="color: #dc2626; font-weight: bold; padding: 10px;">${errorMsg}</div>`;
</code_context>
<issue_to_address>
**security (javascript.browser.security.insecure-innerhtml):** User controlled data in a `scrumReport.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities

*Source: opengrep*
</issue_to_address>

### Comment 14
<location path="src/scripts/scrumHelper.js" line_range="945-946" />
<code_context>
				reportDiv.innerHTML =
					`<div class="error-message" style="color: #dc2626; font-weight: bold; padding: 10px;">${errMsg}</div>`;
</code_context>
<issue_to_address>
**security (javascript.browser.security.insecure-document-method):** User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities

*Source: opengrep*
</issue_to_address>

### Comment 15
<location path="src/scripts/scrumHelper.js" line_range="945-946" />
<code_context>
				reportDiv.innerHTML =
					`<div class="error-message" style="color: #dc2626; font-weight: bold; padding: 10px;">${errMsg}</div>`;
</code_context>
<issue_to_address>
**security (javascript.browser.security.insecure-innerhtml):** User controlled data in a `reportDiv.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities

*Source: opengrep*
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Copy link
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

This PR improves internationalization across the extension by translating previously hard-coded UI placeholders and user-facing error/status messages (addressing #422), while keeping English fallbacks when translations are unavailable.

Changes:

  • Replaced several hard-coded user-facing strings in the popup and report generation flows with chrome.i18n.getMessage(...) lookups (with English fallback).
  • Updated popup.html inputs to use data-i18n-placeholder so placeholders are set via the existing i18n mechanism.
  • Added many new i18n message keys across locales for common errors/status messages.

Reviewed changes

Copilot reviewed 23 out of 23 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/scripts/scrumHelper.js Uses i18n-backed error messages during report generation and token validation.
src/scripts/popup.js Uses i18n-backed status/error strings in popup UI (display mode notice, repo filtering/loading, etc.).
src/scripts/gitlabHelper.js Throws i18n-backed errors for GitLab fetch failures.
src/popup.html Switches certain input placeholders to data-i18n-placeholder for translation.
src/_locales/en/messages.json Adds new English message keys (and improves tooltip metadata).
src/_locales/de/messages.json Adds German translations for new message keys.
src/_locales/es/messages.json Adds Spanish translations for new message keys.
src/_locales/fr/messages.json Adds French translations for new message keys.
src/_locales/he/messages.json Adds Hebrew translations for new message keys.
src/_locales/hi/messages.json Adds Hindi translations for new message keys.
src/_locales/id/messages.json Adds Indonesian translations for new message keys.
src/_locales/it/messages.json Adds Italian translations for new message keys.
src/_locales/ja/messages.json Adds Japanese translations for new message keys.
src/_locales/ml/messages.json Adds Malayalam translations for new message keys.
src/_locales/my/messages.json Adds Burmese translations for new message keys.
src/_locales/nb/messages.json Adds Norwegian Bokmål translations for new message keys.
src/_locales/pt/messages.json Adds Portuguese translations for new message keys.
src/_locales/pt_BR/messages.json Adds Brazilian Portuguese translations for new message keys.
src/_locales/ru/messages.json Adds Russian translations for new message keys.
src/_locales/te/messages.json Adds Telugu translations for new message keys.
src/_locales/uk/messages.json Adds Ukrainian translations for new message keys.
src/_locales/vi/messages.json Adds Vietnamese translations for new message keys.
src/_locales/zh_CN/messages.json Adds Simplified Chinese translations for new message keys.

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

Copilot AI review requested due to automatic review settings March 4, 2026 00:07
Copy link
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

Copilot reviewed 23 out of 23 changed files in this pull request and generated 6 comments.


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

Copy link
Member

@vedansh-5 vedansh-5 left a comment

Choose a reason for hiding this comment

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

Hi @Bekka592
Thankyou for your contribution. Please address AI comments and resolve the conflicts.

Copilot AI review requested due to automatic review settings March 4, 2026 15:50
Copy link
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

Copilot reviewed 23 out of 23 changed files in this pull request and generated 4 comments.


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

Copy link
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

Copilot reviewed 23 out of 23 changed files in this pull request and generated 4 comments.


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

Copy link
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

Copilot reviewed 23 out of 23 changed files in this pull request and generated 1 comment.


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

@Bekka592
Copy link
Author

Bekka592 commented Mar 4, 2026

Hey @vedansh-5, thanks for the feedback! I completely missed the new Copilot suggestions, sorry about that. Hope it looks good to you now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core extension frontend javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Enhancement]: Translation of Error Messages and Remaining Placeholders

3 participants