feat(locales): add French translation (fr) - #194
Conversation
Full French catalog — 5506/5506 keys translated from en.json. - keys, placeholders and ICU plural/select structures preserved verbatim - product names left untranslated (Empryo, Forge, Genome, Marionette, Hearth, Claude, OpenAI, GitHub, JSON, API, MCP, LSP, fff, DevPass) - command .name values are single ASCII tokens, unaccented so they stay typeable (apropos, jalon-annuler, git-remise, abonnements-statut); acronyms untouched (mcp, lsp, fff, git) - no control, bidi or zero-width characters; every value under 400 chars - values kept close to the English length for the fixed-width panels
|
Important Review skippedReview was skipped as selected files did not have any reviewable changes. 💤 Files selected but had no reviewable changes (1)
⚙️ Run configurationConfiguration used: Repository UI Review profile: ASSERTIVE Plan: Team Run ID: 📒 Files selected for processing (1)
You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
proxysoul
left a comment
There was a problem hiding this comment.
Validated locally: 5506/5506 keys against the published en.json, placeholders and plural wrappers intact, no control/bidi/zero-width characters, all 162 command names unique ASCII with no collisions. Spot-checked the prose — idiomatic and consistent. Merci !
Adds
locales/fr.json— a complete French catalog, 5506/5506 keys (100%).bun scripts/validate-locales.ts frshould print:What was done
en.json, translated values only — keys, order and JSON shape untouched.{placeholder}preserved, including ones nested inside plural/selectbranch bodies (
{delta},{count, number}).pluralwrapper and anotherbranch; empty=0branches and
selectkeywords (one/other/yes/on/global/running…) areuntouched — only branch bodies are translated.
Claude, OpenAI, GitHub, JSON, API, MCP, LSP, fff, DevPass, Grok, Copilot.
command.*.namevalues are single unaccented ASCII tokens so they staytypeable on any keyboard (
apropos,jalon-annuler,git-remise,abonnements-statut); acronyms untouched (mcp,lsp,fff,git).No duplicates, no spaces, no slashes.
terminal. Longest value is well under the 400-char limit.
still fit; the 331 values identical to English are terms that are already
French or untranslatable (Git, Chat, Auto, Console,
Ctrl+K,stdio, distronames…).
Note
desktop.settings-drawer.type-slash-commands-in-this-languageuses a Frenchexample (
/languefor/language) instead of the Arabic one from the Englishstring, which keeps the catalog free of any RTL text.