Skip to content

feat(i18n): add French translation#905

Merged
dopicatto merged 4 commits intoscanoss:mainfrom
robinguy44:feat/i18n/french-translation
Mar 25, 2026
Merged

feat(i18n): add French translation#905
dopicatto merged 4 commits intoscanoss:mainfrom
robinguy44:feat/i18n/french-translation

Conversation

@robinguy44
Copy link
Contributor

@robinguy44 robinguy44 commented Mar 21, 2026

Hi,
This adds support for French language in the UI. I translated all strings based on the English folder of the latest commit.
I tested the changes locally and everything seems to work correctly.
Thanks,
Robin

Summary by CodeRabbit

  • New Features
    • Added full French (Français) localization. Users can select French to see translated menus, buttons, dialogs, titles, table headers, tooltips and common UI messages across project management, component identification, dependency handling, vulnerability reporting, pipeline stages and configuration workflows.

@coderabbitai
Copy link

coderabbitai bot commented Mar 21, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 3c344395-cbe3-4603-927f-7ceaaa123221

📥 Commits

Reviewing files that changed from the base of the PR and between f533757 and 257a0f9.

📒 Files selected for processing (2)
  • assets/i18n/fr/Common.json
  • assets/i18n/fr/Table.json
✅ Files skipped from review due to trivial changes (2)
  • assets/i18n/fr/Common.json
  • assets/i18n/fr/Table.json

📝 Walkthrough

Walkthrough

Adds French localization: seven new i18n JSON resource files (menus, buttons, common, dialogs, table, titles, tooltips) and registers French (fr: 'Français') in the app i18n language mapping.

Changes

Cohort / File(s) Summary
French i18n resources
assets/i18n/fr/AppMenu.json, assets/i18n/fr/Button.json, assets/i18n/fr/Common.json, assets/i18n/fr/Dialog.json, assets/i18n/fr/Table.json, assets/i18n/fr/Title.json, assets/i18n/fr/Tooltip.json
Added comprehensive French translation strings covering menus, buttons, common/shared texts, dialogs, table headers, titles, and tooltips. Includes placeholder variables and pluralization variants.
Language configuration
src/shared/i18n/index.ts
Registered French (fr: 'Français') in AppI18n.languages to enable loading/selection of the new French resources.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐇 J'ai bondi dans le code ce matin,
J'ai semé "Bonjour" dans chaque chemin.
Menus, boutons, dialogues en français,
Un petit trèfle pour l'app — et voilà la clé! 🌿

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and accurately summarizes the main change: adding French language translations to the application.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@assets/i18n/fr/Common.json`:
- Line 78: The French translation keys are misnamed: replace the
incorrect/duplicate keys "PreRequisite" and "PreRequiste" with the exact source
lookup key "PreRequisite:" (including the trailing colon) so the translator will
match the English lookup; update all occurrences (including the other instance
noted) to use the exact key "PreRequisite:" and remove the misspelled
"PreRequiste" entry, keeping the French value "Prérequis".
- Around line 1-134: The French i18n file has inconsistent keys: change the
"PreRequisite" key to match the English key "PreRequisite:" (include the
trailing colon) and remove the duplicate/misspelled "PreRequiste" entry; ensure
only a single "PreRequisite:" key remains with the correct translated value and
no other duplicate keys exist (check occurrences of "PreRequisite",
"PreRequisite:", and "PreRequiste" and normalize to "PreRequisite:").

In `@assets/i18n/fr/Dialog.json`:
- Line 14: Remove the stray leading apostrophe in the value for the key
"ProjectSannedPreviousVersionQuestion" so the string begins with the opening
quote only, and update the "UpdateFinished" value to a correct finished-state
translation (e.g., replace "en cours" with "terminé" or another appropriate
finished wording) to reflect completion; edit the values for the keys
"ProjectSannedPreviousVersionQuestion" and "UpdateFinished" in the JSON
accordingly.

In `@assets/i18n/fr/Table.json`:
- Around line 21-24: The translation keys "Strength " and "Dependencies " in the
Table.json language files include trailing spaces causing lookup mismatches;
open each Table.json (en, es, fr and check jp, zh) and remove the trailing
whitespace so the keys become "Strength" and "Dependencies", update any
occurrences found by searching the repo for the exact strings "Strength " and
"Dependencies " and replace them with the trimmed versions, and validate the
JSON files after edits to ensure no syntax errors.

In `@assets/i18n/fr/Tooltip.json`:
- Line 38: The translation for the key "CopyFilePath" is incorrect (it currently
reads "Rechercher dans le fichier"); update the value for the "CopyFilePath" key
in assets/i18n/fr/Tooltip.json to the correct French phrase for copying a file
path (e.g., "Copier le chemin du fichier" or equivalent), ensuring the JSON
string remains properly quoted and comma placement stays valid within the file.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 288114c7-559e-4367-ac70-17e4846ec41c

📥 Commits

Reviewing files that changed from the base of the PR and between 84aaf4a and efa29da.

📒 Files selected for processing (8)
  • assets/i18n/fr/AppMenu.json
  • assets/i18n/fr/Button.json
  • assets/i18n/fr/Common.json
  • assets/i18n/fr/Dialog.json
  • assets/i18n/fr/Table.json
  • assets/i18n/fr/Title.json
  • assets/i18n/fr/Tooltip.json
  • src/shared/i18n/index.ts

@tatysanic-maker22
Copy link

Bonjour @robinguy44

Responsable du support client chez SCANOSS. Nous voulions simplement vous remercier pour votre contribution. Nous l’avons bien reçue et prise en compte, et nous apprécions sincèrement le temps et les efforts que vous y avez consacrés :)
Le monde de l’open source a vraiment besoin de plus de personnes comme vous!

Encore merci pour votre aide!

Cordialement,
Tatiana

Copy link

@dopicatto dopicatto left a comment

Choose a reason for hiding this comment

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

Hi @robinguy44, great work on the French translation! 🇫🇷 Just a couple of small fixes needed before we can merge:

  1. assets/i18n/fr/Table.json — Remove trailing spaces from these keys:

    • "Strength ""Strength"
    • "Dependencies ""Dependencies"
  2. assets/i18n/fr/Common.json — There are two duplicate keys for the same translation. Please remove "PreRequiste" (line ~100) and keep only "PreRequisite":

    "PreRequisite": "Prérequis"

Once those are fixed we're good to go! Thanks

@robinguy44
Copy link
Contributor Author

Hi @robinguy44, great work on the French translation! 🇫🇷 Just a couple of small fixes needed before we can merge:

  1. assets/i18n/fr/Table.json — Remove trailing spaces from these keys:

    • "Strength ""Strength"
    • "Dependencies ""Dependencies"
  2. assets/i18n/fr/Common.json — There are two duplicate keys for the same translation. Please remove "PreRequiste" (line ~100) and keep only "PreRequisite":

    "PreRequisite": "Prérequis"

Once those are fixed we're good to go! Thanks

Done (257a0f9)!

Copy link

@dopicatto dopicatto left a comment

Choose a reason for hiding this comment

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

Thanks for fixing the remaining whirlpool typos! Changes look good, approved.

@dopicatto dopicatto merged commit 80a009b into scanoss:main Mar 25, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants