Translation FR#106
Conversation
|
Warning Review limit reached
More reviews will be available in 28 minutes and 58 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please see our Fair Usage Limits Policy for further information. 📝 WalkthroughWalkthroughAdds French locale configuration and translation strings, updates the mermaid dependency, and adds French documentation pages across getting started, reference, upgrade, guide, and integration sections. ChangesFrench locale and documentation
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
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 |
There was a problem hiding this comment.
Actionable comments posted: 5
Note
Due to the large number of review comments, Critical, Major severity comments were prioritized as inline comments.
🟡 Minor comments (16)
src/content/i18n/en.json-1-1 (1)
1-1: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winAdd the custom footer translation key to the root bundle.
Line 1 leaves the default
rootlocale empty, butsrc/components/footer.astro:30readsAstro.locals.t("builtWithStarlight.label"). WithdefaultLocale: 'root'inastro.config.mjs, that key currently has no value to resolve from for either locale.Suggested fix
-{} +{ + "builtWithStarlight.label": "Built with Starlight" +}Add the matching French entry in
src/content/i18n/fr.jsonas well.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/i18n/en.json` at line 1, The root i18n bundle is empty, so `Astro.locals.t("builtWithStarlight.label")` in `footer.astro` has no fallback value when `defaultLocale` is `root`. Add the `builtWithStarlight.label` translation to the root locale in `src/content/i18n/en.json`, and mirror the same key in the French bundle `src/content/i18n/fr.json` so both locales resolve correctly.src/content/docs/fr/docs/guides/pocket-id.mdx-12-12 (1)
12-12: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winTranslate the heading to French.
"Configuring Pocket ID" should be "Configuration de Pocket ID" for consistency with the French translation.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/guides/pocket-id.mdx` at line 12, The page heading text is still in English instead of French. Update the Markdown heading in the Pocket ID guide content to use the French translation, matching the existing French localization style and keeping the heading consistent with the rest of the translated docs.src/content/docs/fr/docs/guides/github-oauth.mdx-27-27 (1)
27-27: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winTranslate the heading to French.
"Retrieving Credentials" should be translated to French, e.g., "Récupération des identifiants".
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/guides/github-oauth.mdx` at line 27, The heading in the GitHub OAuth guide is still in English and should be translated to French; update the “Retrieving Credentials” section title in the documentation content to a French equivalent, such as “Récupération des identifiants,” so the localized guide stays consistent with the rest of the fr docs.src/content/docs/fr/docs/guides/github-oauth.mdx-8-8 (1)
8-8: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winTranslate the heading to French.
"Requirements" should be "Exigences" for consistency with the French translation and the other French guides.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/guides/github-oauth.mdx` at line 8, The heading in the French GitHub OAuth guide is still in English; update the Markdown heading currently written as Requirements to the French equivalent Exigences so it matches the rest of the translated documentation and the established French terminology.src/content/docs/fr/docs/guides/google-oauth.mdx-8-8 (1)
8-8: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winTranslate the heading to French.
"Requirements" should be "Exigences" for consistency with the French translation.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/guides/google-oauth.mdx` at line 8, The heading text in the Google OAuth docs is still in English; update the markdown heading labeled “Requirements” to the French equivalent “Exigences” so it matches the rest of the French translation and keeps terminology consistent.src/content/docs/fr/docs/guides/google-oauth.mdx-13-13 (1)
13-13: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winTranslate the heading to French.
"Creating the Google OAuth App" should be translated to French, e.g., "Création de l'application OAuth Google".
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/guides/google-oauth.mdx` at line 13, The heading in the Google OAuth guide is still in English and needs to be localized; update the markdown title text in the docs content to French in the relevant section, keeping the meaning of “Creating the Google OAuth App” and matching the surrounding French documentation style.src/content/docs/fr/docs/guides/github-oauth.mdx-13-13 (1)
13-13: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winTranslate the heading to French.
"Creating the GitHub OAuth App" should be translated to French, e.g., "Création de l'application OAuth GitHub".
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/guides/github-oauth.mdx` at line 13, The heading in the GitHub OAuth guide is still in English and should be localized; update the markdown heading in the docs content to French so it matches the rest of the translated page, using the existing section title text for the GitHub OAuth App creation step.src/content/docs/fr/docs/guides/github-oauth.mdx-39-39 (1)
39-39: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winTranslate the heading to French.
"Configuring Tinyauth" should be "Configuration de Tinyauth" for consistency with the French translation.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/guides/github-oauth.mdx` at line 39, The heading text is still in English, so update the markdown section title in the French docs to match the localized translation. Change the “Configuring Tinyauth” heading in the GitHub OAuth guide to “Configuration de Tinyauth” and keep the surrounding French content consistent.src/content/docs/fr/docs/guides/other-oauth.mdx-38-41 (1)
38-41: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winTranslate comments in the YAML code block to French.
Lines 38-41 contain English comments that should be translated for consistency with the French documentation:
- Line 38: "This is usually not needed as Tinyauth can auto-generate it, but you can specify it if your provider requires a specific redirect URL."
- Line 39: "Ensure you include the necessary scopes for your provider."
- Line 40: "This is the name that will be displayed on the login page for this provider."
- Line 41: "Only set this to true if your provider uses self-signed certificates"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/guides/other-oauth.mdx` around lines 38 - 41, Translate the English inline YAML comments in the OAuth example to French so the documentation stays consistent with the rest of the page; update the commented descriptions associated with the provider settings in the markdown snippet, especially the notes for the redirect URL, scopes, display name, and insecure/self-signed certificate option, while keeping the surrounding configuration keys unchanged.src/content/docs/fr/docs/guides/google-oauth.mdx-55-55 (1)
55-55: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winTranslate the heading to French.
"Configuring Tinyauth" should be "Configuration de Tinyauth" for consistency with the French translation.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/guides/google-oauth.mdx` at line 55, The heading in the French Google OAuth guide is still in English and should be translated for consistency. Update the markdown heading text currently rendered by the docs content so it uses the French equivalent, and keep the surrounding structure unchanged; this is the section titled with the Tinyauth configuration heading.src/content/docs/fr/docs/guides/pocket-id.mdx-8-8 (1)
8-8: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winTranslate the heading to French.
"Requirements" should be "Exigences" for consistency with the French translation.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/guides/pocket-id.mdx` at line 8, The section heading in the Pocket ID French documentation is still in English, so update the “Requirements” heading in the MDX content to the French equivalent “Exigences” to keep the translation consistent.src/content/docs/fr/docs/guides/pocket-id.mdx-35-35 (1)
35-35: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winTranslate the heading to French.
"Configuring Tinyauth" should be "Configuration de Tinyauth" for consistency with the French translation.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/guides/pocket-id.mdx` at line 35, The heading text in the pocket-id guide is still in English and should be translated for the French docs. Update the markdown heading currently labeled “Configuring Tinyauth” to the French equivalent “Configuration de Tinyauth” in the docs content so it matches the rest of the localized page.src/content/docs/fr/docs/reference/telemetry.mdx-13-13 (1)
13-13: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winUse "L'UUID" instead of "Le UUID".
In French, the definite article must elide before a vowel: "L'UUID" not "Le UUID".
📝 Proposed fix
- Le UUID généré à partir de l'URL de l'application est un hachage irréversible et ne peut pas être utilisé pour identifier l'instance. + L'UUID généré à partir de l'URL de l'application est un hachage irréversible et ne peut pas être utilisé pour identifier l'instance.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/reference/telemetry.mdx` at line 13, Update the French telemetry documentation wording to use the correct elided article, changing the phrase in the telemetry.mdx content from “Le UUID” to “L’UUID”; this is a copy/edit fix in the documentation text, so adjust the sentence directly where the UUID description appears.src/content/docs/fr/docs/reference/telemetry.mdx-16-16 (1)
16-16: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winFix adjective agreement: "identifiable" (singular).
"Information" is singular, so the coordinated adjective must agree: "Aucune information personnelle, sensible ou identifiable n'est collectée."
📝 Proposed fix
- Les données sont envoyées à `https://api.tinyauth.app/v1/instances/hearbeat` toutes les 12 heures. Aucune information personnelle, sensible ou identifiables n'est collectée. Le battement peut être désactivé avec : + Les données sont envoyées à `https://api.tinyauth.app/v1/instances/hearbeat` toutes les 12 heures. Aucune information personnelle, sensible ou identifiable n'est collectée. Le battement peut être désactivé avec :🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/reference/telemetry.mdx` at line 16, In the telemetry docs copy, fix the adjective agreement in the sentence about collected data: since “information” is singular, update the wording in the affected line to use the singular form “identifiable” alongside “personnelle” and “sensible” in the `telemetry.mdx` text.src/content/docs/fr/docs/reference/changelog.mdx-21-21 (1)
21-21: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winFix contributor handle typo:
@scottmckendr→@scottmckendry.The GitHub handle is missing the final
y. This is inconsistent with the correct spelling used on lines 11–12.📝 Proposed fix
- - Corriger le remplissage automatique du champ TOTP qui ne fonctionnait pas dans certains gestionnaires de mots de passe `@scottmckendr` + - Corriger le remplissage automatique du champ TOTP qui ne fonctionnait pas dans certains gestionnaires de mots de passe `@scottmckendry`🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/reference/changelog.mdx` at line 21, Correct the contributor handle typo in the changelog entry by updating the author mention in the relevant markdown content from the misspelled GitHub handle to the correct one. Locate the French changelog entry in the markdown section and ensure the contributor reference matches the existing spelling used elsewhere in the document, keeping the same entry text and only fixing the handle.src/content/docs/fr/docs/guides/using-the-binary.mdx-36-36 (1)
36-36: 🎯 Functional Correctness | 🟡 MinorUse a locale-preserving docs link and fix the fragile shell commands for environment variables.
Docs Link (Line 36)
The absolute link
/docs/reference/configurationbypasses the locale-aware routing. It will likely redirect French users to the English default page.
- Fix: Change to a relative link:
../reference/configuration.- Verification: The file
src/content/docs/fr/docs/reference/configuration.mdxexists, so the relative path resolves correctly within thefrlocale.Shell Snippets (Lines 43–48)
The commands
export $(grep ... | xargs ...)and theunsetvariant are unsafe.
- Issue: These patterns break if values contain spaces, quotes, or special characters (common in secrets). Even if values are quoted in
.env, the shell expansion outside quotes often splits words or misinterprets characters.sedrisk: The regexs/(.*)=.*/\1/in theunsetexample captures the last=in the line. Values likeKEY="value=with=equals"would incorrectly identify the variable name.- Recommendation: Use
set -a; source .env; set +afor safe exporting, or at least ensure values are strictly simple strings without spaces in the documentation context.Suggested diff for the shell snippets
Une fois configuré, démarrez Tinyauth. Pour les configurations basées sur des variables d'environnement, exportez les variables dans le shell : ```sh - export $(grep -v '^#' .env | xargs -d '\n') + set -a + source .env + set +a:::note
- Pour désactiver les variables d'environnement à des fins de sécurité, utilisez : `unset $(grep
- -v '^#' .env | sed -E 's/(.)=./\1/' | xargs)`.
- Pour désactiver les variables d'environnement à des fins de sécurité, redémarrez la session ou définissez manuellement les variables à vide.
:::</details> <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.In
@src/content/docs/fr/docs/guides/using-the-binary.mdxat line 36, Update the
French docs in the using-the-binary guide to use the locale-relative
configuration link instead of the absolute /docs/reference/configuration path,
so it resolves within the fr locale. Also replace the fragile shell examples in
the environment-variable section with a safer approach in the same guide
content, using the existing shell snippet and note wording to avoid
exporting/unsetting via grep/xargs/sed patterns that break on spaces, quotes, or
equals signs.</details> <!-- cr-comment:v1:d6d1567f741029a9365d9788 --> </blockquote></details> </blockquote></details> <details> <summary>🧹 Nitpick comments (6)</summary><blockquote> <details> <summary>src/content/docs/fr/docs/reference/labels.mdx (2)</summary><blockquote> `8-8`: _📐 Maintainability & Code Quality_ | _🔵 Trivial_ | _⚡ Quick win_ **Translate section header "Discovery" to French.** Consider using "Découverte" or "Identification" to match the French translation pattern used throughout this page. <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.In
@src/content/docs/fr/docs/reference/labels.mdxat line 8, The section header
in the labels documentation is still in English, so update the “Discovery”
heading to a French equivalent to match the rest of the page. Edit the markdown
header in the labels reference content and replace it with the appropriate
translated term, such as “Découverte” or “Identification,” keeping the
surrounding structure unchanged.</details> <!-- cr-comment:v1:d59563341b09b12bd3282262 --> --- `22-22`: _📐 Maintainability & Code Quality_ | _🔵 Trivial_ | _⚡ Quick win_ **Translate section header "Full List" to French.** Consider using "Liste complète" to match the French translation pattern used throughout this page. <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.In
@src/content/docs/fr/docs/reference/labels.mdxat line 22, The section header
in the labels documentation is still in English; update the “Full List” heading
to French to match the rest of the localized page. Make this change in the
markdown heading within the labels docs content, keeping the translation
consistent with the existing French wording pattern such as “Liste complète.”</details> <!-- cr-comment:v1:5d9dc34003fa03d27a2ede8a --> </blockquote></details> <details> <summary>src/content/docs/fr/docs/reference/cli.mdx (1)</summary><blockquote> `2-2`: _📐 Maintainability & Code Quality_ | _🔵 Trivial_ | _💤 Low value_ **Remove trailing period from title for consistency.** The title "Référence sur le CLI Tinyauth." ends with a period, which is inconsistent with other French reference pages (e.g., "Flux", "Étiquettes", "Configuration"). Consider removing it for uniformity. <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.In
@src/content/docs/fr/docs/reference/cli.mdxat line 2, The page title in the
French CLI reference frontmatter is inconsistent because it ends with a trailing
period. Update the title field in the docs frontmatter for the CLI reference
page to match the style used by the other French reference pages such as Flux,
Étiquettes, and Configuration, and remove the final period while keeping the
existing wording.</details> <!-- cr-comment:v1:ef41cbd2d5f717fa36f08556 --> </blockquote></details> <details> <summary>src/content/docs/fr/docs/community/caddy.mdx (1)</summary><blockquote> `56-69`: _📐 Maintainability & Code Quality_ | _🔵 Trivial_ | _⚡ Quick win_ **Translate the English comment in the French doc.** Line 111 contains an English comment `# optional when you want to make headers available to your service` in a French documentation page. For consistency, translate this to French: ```diff - caddy.forward_auth.copy_headers: Remote-User Remote-Name Remote-Email Remote-Groups # optional when you want to make headers available to your service + caddy.forward_auth.copy_headers: Remote-User Remote-Name Remote-Email Remote-Groups # optionnel lorsque vous souhaitez rendre les en-têtes disponibles pour votre service🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/community/caddy.mdx` around lines 56 - 69, The French Caddy documentation still contains an English inline comment in the Tinyauth example; translate that comment to French for consistency. Update the comment in the documentation section that shows the Caddy and caddy.reverse_proxy labels so it matches the rest of the French page, without changing the surrounding YAML example or labels.src/content/docs/fr/docs/guides/nginx-proxy-manager.mdx (1)
29-29: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winTranslate English comment to French.
The inline comment in the Docker Compose example is in English. Translate to maintain French consistency:
- # Whoami is not required, but serves as a simple example app to demonstrate Tinyauth integration. You can replace it with any app of your choice. + # Whoami n'est pas requis, mais sert d'application exemple simple pour démontrer l'intégration de Tinyauth. Vous pouvez le remplacer par l'application de votre choix.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/guides/nginx-proxy-manager.mdx` at line 29, The inline Docker Compose comment in the nginx proxy manager guide is still in English; update the comment text in the example to French so it matches the rest of the localized content. Locate the single-line comment in the docs snippet and replace it with an equivalent French sentence while preserving its meaning and placement.src/content/docs/fr/docs/guides/runtipi.mdx (1)
8-12: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winFix mixed French/English phrase.
"format for docker" should be in French since the surrounding text is French. If this refers to a CLI flag or UI label, consider code formatting or translate:
- Assurez-vous que l'option format for docker est sélectionnée pour permettre à Tinyauth d'analyser correctement l'utilisateur. + Assurez-vous que l'option « format pour Docker » est sélectionnée pour permettre à Tinyauth d'analyser correctement l'utilisateur.Or if it's a specific CLI value:
- Assurez-vous que l'option format for docker est sélectionnée + Assurez-vous que l'option `format for docker` est sélectionnée🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/content/docs/fr/docs/guides/runtipi.mdx` around lines 8 - 12, The French docs in the Runtipi guide contain a mixed-language phrase in the Tinyauth user-creation section. Update the wording around the CLI-related “format for docker” reference in the surrounding paragraph so it is fully localized in French, unless it is a literal CLI flag or UI label that should instead be preserved with proper code formatting; check the text in the Runtipi guide content and make the terminology consistent.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/content/docs/fr/docs/community/kubernetes.mdx`:
- Around line 60-64: The Kubernetes YAML example for TINYAUTH_AUTH_USERS uses
incorrect double-dollar escaping, so the manifest shows a literal bcrypt string
with $$ instead of the intended $. Update the example in the kubernetes.mdx
snippet so the env value is written with single dollar signs in the
TINYAUTH_AUTH_USERS entry, keeping the rest of the manifest unchanged.
In `@src/content/docs/fr/docs/contributing/contributing.mdx`:
- Around line 40-42: The setup instructions use an invalid pnpm subcommand in
the contributing docs; update the install step in the markdown content to
replace pnpm ci with the equivalent frozen-lockfile install command. Locate the
command block in the contributing guide and adjust the package installation
instruction so it uses pnpm install --frozen-lockfile instead of the
non-existent pnpm ci.
In `@src/content/docs/fr/docs/guides/oidc.mdx`:
- Around line 117-119: The OIDC client name guidance in the French docs is too
permissive because it says names may include hyphens, which conflicts with the
alphanumeric-only validation used by Tinyauth. Update the caution text in the
oidc.mdx docs to state that client names must contain only A–Z, a–z, and 0–9,
and remove any mention of “tirets” or other special characters so it matches the
validation rule.
In `@src/content/docs/fr/docs/guides/using-the-binary.mdx`:
- Around line 42-49: The .env shell snippets in the documentation are brittle
and misparse quoted values, spaces, and secrets containing extra equals signs.
Update the example around the dotenv loading/unsetting guidance in the
using-the-binary guide to use a shell-safe sourcing pattern with set -a and .
./.env, and replace the unset command with one that extracts only valid variable
names from .env using a name-based pattern.
In `@src/content/docs/fr/docs/reference/headers.mdx`:
- Around line 6-119: The headers reference page is still in English throughout
the main content, so translate the entire body into French while preserving the
existing structure, headings, notes/cautions, and example meaning. Update the
descriptive text for the supported headers, custom headers, and proxy sections
in src/content/docs/fr/docs/reference/headers.mdx so it fully matches the
English source content, not just the frontmatter.
---
Minor comments:
In `@src/content/docs/fr/docs/guides/github-oauth.mdx`:
- Line 27: The heading in the GitHub OAuth guide is still in English and should
be translated to French; update the “Retrieving Credentials” section title in
the documentation content to a French equivalent, such as “Récupération des
identifiants,” so the localized guide stays consistent with the rest of the fr
docs.
- Line 8: The heading in the French GitHub OAuth guide is still in English;
update the Markdown heading currently written as Requirements to the French
equivalent Exigences so it matches the rest of the translated documentation and
the established French terminology.
- Line 13: The heading in the GitHub OAuth guide is still in English and should
be localized; update the markdown heading in the docs content to French so it
matches the rest of the translated page, using the existing section title text
for the GitHub OAuth App creation step.
- Line 39: The heading text is still in English, so update the markdown section
title in the French docs to match the localized translation. Change the
“Configuring Tinyauth” heading in the GitHub OAuth guide to “Configuration de
Tinyauth” and keep the surrounding French content consistent.
In `@src/content/docs/fr/docs/guides/google-oauth.mdx`:
- Line 8: The heading text in the Google OAuth docs is still in English; update
the markdown heading labeled “Requirements” to the French equivalent “Exigences”
so it matches the rest of the French translation and keeps terminology
consistent.
- Line 13: The heading in the Google OAuth guide is still in English and needs
to be localized; update the markdown title text in the docs content to French in
the relevant section, keeping the meaning of “Creating the Google OAuth App” and
matching the surrounding French documentation style.
- Line 55: The heading in the French Google OAuth guide is still in English and
should be translated for consistency. Update the markdown heading text currently
rendered by the docs content so it uses the French equivalent, and keep the
surrounding structure unchanged; this is the section titled with the Tinyauth
configuration heading.
In `@src/content/docs/fr/docs/guides/other-oauth.mdx`:
- Around line 38-41: Translate the English inline YAML comments in the OAuth
example to French so the documentation stays consistent with the rest of the
page; update the commented descriptions associated with the provider settings in
the markdown snippet, especially the notes for the redirect URL, scopes, display
name, and insecure/self-signed certificate option, while keeping the surrounding
configuration keys unchanged.
In `@src/content/docs/fr/docs/guides/pocket-id.mdx`:
- Line 12: The page heading text is still in English instead of French. Update
the Markdown heading in the Pocket ID guide content to use the French
translation, matching the existing French localization style and keeping the
heading consistent with the rest of the translated docs.
- Line 8: The section heading in the Pocket ID French documentation is still in
English, so update the “Requirements” heading in the MDX content to the French
equivalent “Exigences” to keep the translation consistent.
- Line 35: The heading text in the pocket-id guide is still in English and
should be translated for the French docs. Update the markdown heading currently
labeled “Configuring Tinyauth” to the French equivalent “Configuration de
Tinyauth” in the docs content so it matches the rest of the localized page.
In `@src/content/docs/fr/docs/guides/using-the-binary.mdx`:
- Line 36: Update the French docs in the using-the-binary guide to use the
locale-relative configuration link instead of the absolute
/docs/reference/configuration path, so it resolves within the fr locale. Also
replace the fragile shell examples in the environment-variable section with a
safer approach in the same guide content, using the existing shell snippet and
note wording to avoid exporting/unsetting via grep/xargs/sed patterns that break
on spaces, quotes, or equals signs.
In `@src/content/docs/fr/docs/reference/changelog.mdx`:
- Line 21: Correct the contributor handle typo in the changelog entry by
updating the author mention in the relevant markdown content from the misspelled
GitHub handle to the correct one. Locate the French changelog entry in the
markdown section and ensure the contributor reference matches the existing
spelling used elsewhere in the document, keeping the same entry text and only
fixing the handle.
In `@src/content/docs/fr/docs/reference/telemetry.mdx`:
- Line 13: Update the French telemetry documentation wording to use the correct
elided article, changing the phrase in the telemetry.mdx content from “Le UUID”
to “L’UUID”; this is a copy/edit fix in the documentation text, so adjust the
sentence directly where the UUID description appears.
- Line 16: In the telemetry docs copy, fix the adjective agreement in the
sentence about collected data: since “information” is singular, update the
wording in the affected line to use the singular form “identifiable” alongside
“personnelle” and “sensible” in the `telemetry.mdx` text.
In `@src/content/i18n/en.json`:
- Line 1: The root i18n bundle is empty, so
`Astro.locals.t("builtWithStarlight.label")` in `footer.astro` has no fallback
value when `defaultLocale` is `root`. Add the `builtWithStarlight.label`
translation to the root locale in `src/content/i18n/en.json`, and mirror the
same key in the French bundle `src/content/i18n/fr.json` so both locales resolve
correctly.
---
Nitpick comments:
In `@src/content/docs/fr/docs/community/caddy.mdx`:
- Around line 56-69: The French Caddy documentation still contains an English
inline comment in the Tinyauth example; translate that comment to French for
consistency. Update the comment in the documentation section that shows the
Caddy and caddy.reverse_proxy labels so it matches the rest of the French page,
without changing the surrounding YAML example or labels.
In `@src/content/docs/fr/docs/guides/nginx-proxy-manager.mdx`:
- Line 29: The inline Docker Compose comment in the nginx proxy manager guide is
still in English; update the comment text in the example to French so it matches
the rest of the localized content. Locate the single-line comment in the docs
snippet and replace it with an equivalent French sentence while preserving its
meaning and placement.
In `@src/content/docs/fr/docs/guides/runtipi.mdx`:
- Around line 8-12: The French docs in the Runtipi guide contain a
mixed-language phrase in the Tinyauth user-creation section. Update the wording
around the CLI-related “format for docker” reference in the surrounding
paragraph so it is fully localized in French, unless it is a literal CLI flag or
UI label that should instead be preserved with proper code formatting; check the
text in the Runtipi guide content and make the terminology consistent.
In `@src/content/docs/fr/docs/reference/cli.mdx`:
- Line 2: The page title in the French CLI reference frontmatter is inconsistent
because it ends with a trailing period. Update the title field in the docs
frontmatter for the CLI reference page to match the style used by the other
French reference pages such as Flux, Étiquettes, and Configuration, and remove
the final period while keeping the existing wording.
In `@src/content/docs/fr/docs/reference/labels.mdx`:
- Line 8: The section header in the labels documentation is still in English, so
update the “Discovery” heading to a French equivalent to match the rest of the
page. Edit the markdown header in the labels reference content and replace it
with the appropriate translated term, such as “Découverte” or “Identification,”
keeping the surrounding structure unchanged.
- Line 22: The section header in the labels documentation is still in English;
update the “Full List” heading to French to match the rest of the localized
page. Make this change in the markdown heading within the labels docs content,
keeping the translation consistent with the existing French wording pattern such
as “Liste complète.”
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: b4cfd957-24c9-4015-8d5f-6ded5779529d
⛔ Files ignored due to path filters (3)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlsrc/content/docs/fr/docs/__translated.logis excluded by!**/*.logsrc/content/docs/fr/docs/__untranslated.logis excluded by!**/*.log
📒 Files selected for processing (35)
astro.config.mjspackage.jsonsrc/content/docs/fr/docs/about.mdxsrc/content/docs/fr/docs/breaking-updates/3-to-4.mdxsrc/content/docs/fr/docs/breaking-updates/4-to-5-migrator.astrosrc/content/docs/fr/docs/breaking-updates/4-to-5.mdxsrc/content/docs/fr/docs/community/caddy.mdxsrc/content/docs/fr/docs/community/kubernetes.mdxsrc/content/docs/fr/docs/community/zitadel-oauth.mdxsrc/content/docs/fr/docs/contributing/contributing.mdxsrc/content/docs/fr/docs/getting-started.mdxsrc/content/docs/fr/docs/guides/access-controls.mdxsrc/content/docs/fr/docs/guides/advanced.mdxsrc/content/docs/fr/docs/guides/github-app-oauth.mdxsrc/content/docs/fr/docs/guides/github-oauth.mdxsrc/content/docs/fr/docs/guides/google-oauth.mdxsrc/content/docs/fr/docs/guides/ldap.mdxsrc/content/docs/fr/docs/guides/nginx-proxy-manager.mdxsrc/content/docs/fr/docs/guides/oidc.mdxsrc/content/docs/fr/docs/guides/other-oauth.mdxsrc/content/docs/fr/docs/guides/pocket-id.mdxsrc/content/docs/fr/docs/guides/runtipi.mdxsrc/content/docs/fr/docs/guides/totp.mdxsrc/content/docs/fr/docs/guides/using-the-binary.mdxsrc/content/docs/fr/docs/integrations/zerobyte.mdxsrc/content/docs/fr/docs/reference/authentication.mdxsrc/content/docs/fr/docs/reference/changelog.mdxsrc/content/docs/fr/docs/reference/cli.mdxsrc/content/docs/fr/docs/reference/configuration.mdxsrc/content/docs/fr/docs/reference/flow.mdxsrc/content/docs/fr/docs/reference/headers.mdxsrc/content/docs/fr/docs/reference/labels.mdxsrc/content/docs/fr/docs/reference/telemetry.mdxsrc/content/i18n/en.jsonsrc/content/i18n/fr.json
| :::caution | ||
| Le nom du client doit être unique et ne contenir que des caractères alphanumériques et des tirets. | ||
| ::: |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Remove incorrect hyphen allowance from OIDC client name validation.
Line 118 states client names may contain "des tirets" (hyphens). This contradicts the strict alphanumeric-only validation (/^[a-zA-Z0-9]*$/) enforced by Tinyauth. Hyphens are rejected.
Based on learnings, OIDC client names must contain only alphanumeric characters (A–Z, a–z, 0–9). If any documentation claims hyphens or other special characters are allowed, treat that as incorrect and update the docs to match the regex.
📝 Proposed fix
- Le nom du client doit être unique et ne contenir que des caractères alphanumériques et des tirets.
+ Le nom du client doit être unique et ne contenir que des caractères alphanumériques.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| :::caution | |
| Le nom du client doit être unique et ne contenir que des caractères alphanumériques et des tirets. | |
| ::: | |
| :::caution | |
| Le nom du client doit être unique et ne contenir que des caractères alphanumériques. | |
| ::: |
🧰 Tools
🪛 LanguageTool
[typographical] ~117-~117: Une espace est requise.
Context: ...surez-vous de les garder sécurisées. :::caution Le nom du client doit être uniqu...
(DEUX_POINTS_ESPACE)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/content/docs/fr/docs/guides/oidc.mdx` around lines 117 - 119, The OIDC
client name guidance in the French docs is too permissive because it says names
may include hyphens, which conflicts with the alphanumeric-only validation used
by Tinyauth. Update the caution text in the oidc.mdx docs to state that client
names must contain only A–Z, a–z, and 0–9, and remove any mention of “tirets” or
other special characters so it matches the validation rule.
Source: Learnings
| ```sh | ||
| export $(grep -v '^#' .env | xargs -d '\n') | ||
| ``` | ||
|
|
||
| :::note | ||
| Pour désactiver les variables d'environnement à des fins de sécurité, utilisez : `unset $(grep | ||
| -v '^#' .env | sed -E 's/(.*)=.*/\1/' | xargs)`. | ||
| ::: |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Replace the brittle .env parsing snippets.
Lines 43-48 break on common .env values. export $(...) re-splits quoted values and values with spaces, and the unset example extracts the name from the last =, so padded/base64 secrets leave behind invalid variable names.
💡 Suggested doc fix
```sh
-export $(grep -v '^#' .env | xargs -d '\n')
+set -a
+. ./.env
+set +a@@
- Pour désactiver les variables d'environnement à des fins de sécurité, utilisez : `unset $(grep
- -v '^#' .env | sed -E 's/(.)=./\1/' | xargs)`.
- Pour désactiver les variables d'environnement à des fins de sécurité, utilisez :
unset $(sed -n 's/^\([A-Za-z_][A-Za-z0-9_]*\)=.*/\1/p' .env | xargs).
</details>
<!-- suggestion_start -->
<details>
<summary>📝 Committable suggestion</summary>
> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
```suggestion
🧰 Tools
🪛 LanguageTool
[typographical] ~46-~46: Une espace est requise.
Context: ...ep -v '^#' .env | xargs -d '\n') ``` :::note Pour désactiver les variables d'e...
(DEUX_POINTS_ESPACE)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/content/docs/fr/docs/guides/using-the-binary.mdx` around lines 42 - 49,
The .env shell snippets in the documentation are brittle and misparse quoted
values, spaces, and secrets containing extra equals signs. Update the example
around the dotenv loading/unsetting guidance in the using-the-binary guide to
use a shell-safe sourcing pattern with set -a and . ./.env, and replace the
unset command with one that extracts only valid variable names from .env using a
name-based pattern.
| Setting headers can be useful for authenticating to apps with the credentials from Tinyauth. While Tinyauth offers some defaults, it also allows setting custom headers that are automatically returned in the authentication server response. This is particularly useful for applications that support header-based authentication, where the app relies on the reverse proxy to provide authentication and user information. | ||
|
|
||
| :::note | ||
| Headers are case-insensitive. For example, both `Remote-User` and | ||
| `remote-user` are valid. | ||
| ::: | ||
|
|
||
| ## Supported Headers | ||
|
|
||
| ### Remote user | ||
|
|
||
| The `Remote-User` header contains the username of the currently logged-in user. For OAuth providers, the `preferred_username` claim from the OIDC response is used. If unavailable, a pseudo username is generated using the email address in the format `username_domain.com`. | ||
|
|
||
| ### Remote email | ||
|
|
||
| The `Remote-Email` header contains the email of the currently logged-in user. For username/password authentication, a pseudo email address is created using the username and the configured domain. For OAuth, the email is retrieved from the `email` claim. | ||
|
|
||
| ### Remote name | ||
|
|
||
| The `Remote-Name` header contains the full name of the currently logged-in user. If the `name` claim is unavailable, a pseudo name is generated using the username or email in formats like `User` or `User (example.com)`. | ||
|
|
||
| ### Remote groups | ||
|
|
||
| The `Remote-Groups` header contains the groups of the currently logged-in user, retrieved from the `groups` claim in the OIDC server or from the LDAP server. These can be used to allow access to specific user groups configured by the OIDC or LDAP server. More details are available in the [OIDC access controls](/docs/guides/access-controls#access-controls-using-oidc-groups) and [LDAP access controls](/docs/guides/access-controls#access-controls-using-ldap-groups) guides. | ||
|
|
||
| :::caution | ||
| Remote groups are only available for OIDC providers that support the `groups` | ||
| claim. | ||
| ::: | ||
|
|
||
| ### Remote sub | ||
|
|
||
| The `Remote-Sub` header contains the subject identifier of the currently logged-in user, retrieved from the `sub` claim in the OIDC server. This can be used to uniquely identify the user across different authentication providers. | ||
|
|
||
| ### Custom headers | ||
|
|
||
| Custom headers can be set using the `tinyauth.headers` label on any container that uses the Tinyauth middleware. For example: | ||
|
|
||
| ```yaml | ||
| tinyauth.apps.[app].response.headers: my-header=cool | ||
| ``` | ||
|
|
||
| When authenticating through Tinyauth, the app will receive the `my-header` header. | ||
|
|
||
| :::caution | ||
| Ensure a list of trusted proxy URLs is configured for the app. Accepting | ||
| headers from untrusted proxies can lead to security vulnerabilities. | ||
| ::: | ||
|
|
||
| :::note | ||
| By default, Tinyauth uses the subdomain name of the request to find a matching | ||
| container for labels. For example, a request to `myapp.example.com` checks for | ||
| labels that have the subdomain as the app ID. This behavior can be modified | ||
| using the `tinyauth.apps.[app].config.domain` label. More details are | ||
| available in the [access | ||
| controls](/docs/guides/access-controls#label-discovery) guide. | ||
| ::: | ||
|
|
||
| ## Adding Headers to Proxy | ||
|
|
||
| Configuring the proxy to forward headers ensures they are included in responses. The configuration varies depending on the proxy. | ||
|
|
||
| ### Traefik | ||
|
|
||
| Add the following label to the Tinyauth container: | ||
|
|
||
| ```yaml | ||
| traefik.http.middlewares.tinyauth.forwardauth.authResponseHeaders: remote-user # This can be a comma separated list of more headers you will like to copy like the custom ones you set | ||
| ``` | ||
|
|
||
| Multiple headers can be added as a comma-separated list. | ||
|
|
||
| ### Caddy | ||
|
|
||
| Add the following label to the Caddy configuration: | ||
|
|
||
| ```yaml | ||
| caddy.forward_auth.copy_headers: remote-user | ||
| ``` | ||
|
|
||
| Multiple headers are separated by spaces, for example: `remote-user remote-name remote-email remote-groups`. | ||
|
|
||
| ### Nginx/Nginx Proxy Manager | ||
|
|
||
| Insert the following lines after the `error_page 401 = @tinyauth_login;` directive: | ||
|
|
||
| ```shell | ||
| auth_request_set $tinyauth_remote_user $upstream_http_remote_user; | ||
| proxy_set_header remote-user $tinyauth_remote_user; | ||
| ``` | ||
|
|
||
| Additional headers can be added by repeating the steps. For example: | ||
|
|
||
| ```shell | ||
| auth_request_set $my_header $upstream_http_my_header; | ||
| proxy_set_header my-header $my_header; | ||
| ``` | ||
|
|
||
| #### x-tinyauth-location | ||
|
|
||
| For API requests (non-browser requests), Tinyauth sets the `x-tinyauth-location` header in error responses. This header contains the URL where Tinyauth wants the user to be redirected, such as `/login`, `/unauthorized`, or `/error` endpoints with appropriate query parameters. | ||
|
|
||
| This header is particularly useful for Nginx configurations where the error page handler can read this header and redirect accordingly, instead of hardcoding redirect URLs in the Nginx configuration. For example: | ||
|
|
||
| ```shell | ||
| error_page 401 = @tinyauth_error; | ||
| error_page 403 = @tinyauth_error; | ||
| error_page 500 = @tinyauth_error; | ||
|
|
||
| location @tinyauth_error { | ||
| auth_request_set $redirect_url $upstream_http_x_tinyauth_location; | ||
| return 307 $redirect_url; | ||
| } | ||
| ``` No newline at end of file |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟠 Major | 🏗️ Heavy lift
The headers reference page is not translated to French.
The entire body of this file—from the introductory paragraph through all header descriptions and proxy configuration examples—remains in English. Only the frontmatter title and description were translated. For a PR titled "Translation FR," this page needs complete French translation to match the upstream English content at src/content/docs/docs/reference/headers.mdx:6-119.
🧰 Tools
🪛 LanguageTool
[grammar] ~25-~25: Ensure spelling is correct
Context: .... If the name claim is unavailable, a pseudo name is generated using the username or emai...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/content/docs/fr/docs/reference/headers.mdx` around lines 6 - 119, The
headers reference page is still in English throughout the main content, so
translate the entire body into French while preserving the existing structure,
headings, notes/cautions, and example meaning. Update the descriptive text for
the supported headers, custom headers, and proxy sections in
src/content/docs/fr/docs/reference/headers.mdx so it fully matches the English
source content, not just the frontmatter.
There was a problem hiding this comment.
Is there a reason for this file? If not, please remove it.
There was a problem hiding this comment.
There was a problem hiding this comment.
The changelog is the history from GitHub. I do not believe it needs translations.
| umami({ | ||
| hostUrl: "https://analytics.doesmycode.work", | ||
| endpointUrl: "https://analytics.doesmycode.work", | ||
| id: "ed560a2b-b321-4745-b2f8-d7de846aeb7f", |
There was a problem hiding this comment.
Please do not remove the site analytics.
|
|
||
| I18N, Translation FR added |
There was a problem hiding this comment.
This line is not needed in the readme.
Translation FR
Summary by CodeRabbit
New Features
Bug Fixes
Chores