Skip to content

feat: add French language support#692

Open
shivangtanwar wants to merge 2 commits intosrbhr:mainfrom
shivangtanwar:feat/653-add-french-language-support
Open

feat: add French language support#692
shivangtanwar wants to merge 2 commits intosrbhr:mainfrom
shivangtanwar:feat/653-add-french-language-support

Conversation

@shivangtanwar
Copy link
Copy Markdown
Contributor

@shivangtanwar shivangtanwar commented Mar 3, 2026

Summary

Closes #653

Adds French (Français) as a fully supported UI and content language, enabling users in francophone countries (France, Switzerland, Belgium, Canada, etc.) to use Resume Matcher in their native language.

Changes

File Change
apps/frontend/messages/fr.json Complete French translation (620 keys, 1:1 parity with en.json)
apps/frontend/i18n/config.ts Register 'fr' locale with name "Français" and flag
apps/frontend/lib/i18n/messages.ts Import and register French messages
apps/backend/app/routers/config.py Add "fr" to SUPPORTED_LANGUAGES

Translation notes

  • Formal register (vous form) used throughout
  • Technical terms preserved: API, LLM, PDF, GitHub, LinkedIn, etc.
  • All placeholder variables ({count}, {date}, {status}, etc.) preserved
  • Localized examples: Jean Dupont, +33 phone format, French city names
  • "Resume" → "CV", "Cover Letter" → "Lettre de motivation", "Tailor" → "Adapter"

Test plan

  • Set UI language to French in Settings — verify all UI strings render correctly
  • Set content language to French — verify AI-generated content uses French
  • Verify language selector shows "Français" with the French flag
  • Switch between French and other languages — verify no missing keys or fallback to English
  • Verify backend accepts "fr" as a valid language in /config/language endpoint

Summary by cubic

Adds full French (Français) support for both UI and generated content. Syncs backend language schema defaults to include fr and pt. Closes #653.

  • New Features

    • Added fr.json with complete French translations (parity with en.json).
    • Registered 'fr' locale and flag in i18n config; loaded French messages in the frontend.
    • Added 'fr' to backend SUPPORTED_LANGUAGES.
  • Bug Fixes

    • Synced LanguageConfig schema defaults and comments to include fr and pt, matching router supported languages.

Written for commit f8c76f0. Summary will update on new commits.

Add French (Français) as a supported UI and content language for
users in francophone countries (France, Switzerland, Belgium, etc.).

Changes:
- Add fr.json with complete French translations (620 keys, 1:1 parity
  with en.json)
- Register 'fr' locale in i18n config with name and flag
- Import French messages in the message loader
- Add 'fr' to backend SUPPORTED_LANGUAGES list

Closes srbhr#653
@kilo-code-bot
Copy link
Copy Markdown
Contributor

kilo-code-bot bot commented Mar 3, 2026

Code Review Summary

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 1
WARNING 0
SUGGESTION 0
Other Observations (not in diff)

Issues found in unchanged code that cannot receive inline comments:

File Line Issue
apps/backend/app/prompts/templates.py 4-10 CRITICAL: Missing French in LANGUAGE_NAMES dictionary. The dictionary maps language codes to full names for LLM prompts, but French ("fr") is not included. When a user selects French as their content language, get_language_name("fr") will return "English" (the fallback), causing the LLM to generate content in English instead of French. Add "fr": "French", to the LANGUAGE_NAMES dictionary.
Files Reviewed (5 files)
  • apps/backend/app/routers/config.py - 0 new issues (existing comment about schema sync is now resolved in this PR)
  • apps/backend/app/schemas/models.py - 0 issues
  • apps/frontend/i18n/config.ts - 0 issues
  • apps/frontend/lib/i18n/messages.ts - 0 issues
  • apps/frontend/messages/fr.json - 0 issues (new file with French translations)

Notes

  • The PR correctly adds French support to the frontend i18n configuration and backend API validation.
  • The schema and router SUPPORTED_LANGUAGES are now properly synchronized (previous comment about this is resolved).
  • Action Required: Update apps/backend/app/prompts/templates.py to include French in the LANGUAGE_NAMES dictionary to complete the i18n support for LLM-generated content.

Fix these issues in Kilo Cloud

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-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.

1 issue found across 4 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="apps/backend/app/routers/config.py">

<violation number="1" location="apps/backend/app/routers/config.py:219">
P2: Schema and router constants are out of sync: `LanguageConfigResponse` has default `supported_languages=["en", "es", "zh", "ja"]` but router's `SUPPORTED_LANGUAGES` includes `["en", "es", "fr", "zh", "ja", "pt"]`. Update the schema default value and comments in `LanguageConfigRequest` to match the router's supported languages.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Update LanguageConfigResponse default and LanguageConfigRequest
comments to include fr and pt, matching the router constant.
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.

[Feature]: Support French as a content language

1 participant