Skip to content

android: add French (fr) translation#818

Open
foXaCe wants to merge 1 commit into
tailscale:mainfrom
foXaCe:i18n/fr-initial
Open

android: add French (fr) translation#818
foXaCe wants to merge 1 commit into
tailscale:mainfrom
foXaCe:i18n/fr-initial

Conversation

@foXaCe

@foXaCe foXaCe commented Jul 6, 2026

Copy link
Copy Markdown

What

Adds a complete French (fr) localization of the Android app UI:
android/src/main/res/values-fr/strings.xml — 307 translatable strings,
mirroring the default values/strings.xml.

Details

  • Register: formal (vouvoiement), consistent throughout.
  • Terminology: Tailscale product terms kept in English (Tailscale,
    tailnet, Taildrop, WireGuard, Mullvad, Headscale, DNS, VPN, MDM,
    split tunneling). UI concepts translated consistently, e.g.
    exit nodenœud de sortie, admin consoleconsole d'administration,
    auth keyclé d'authentification, subnet routerrouteur de sous-réseau,
    Tailnet lockverrou du tailnet, peerpair.
  • Formatting preserved: all placeholders (%s, %d, %1$s, %.1f),
    XML entities ( , &), \n, and escaped apostrophes (\').
  • translatable="false" strings are intentionally omitted (Android convention).
  • The trademark footnote (about_view_footnotes) is deliberately left in English.
  • French typography applied (non-breaking spaces before ? : ;, guillemets).

Verification

  • xmllint valid; EN↔FR key parity 307/307 (no missing, no orphan keys).
  • Placeholder parity checked per key; terminology consistency checked
    (no EN string mapped to divergent FR values).
  • No unescaped apostrophes (build-safe), UTF-8, no mojibake.

Add android/src/main/res/values-fr/strings.xml with the full French
localization of the app UI (307 translatable strings).

- Vouvoiement register, terminology consistent with Tailscale product
  terms kept in English (tailnet, Taildrop, exit node -> nœud de sortie,
  admin console -> console d'administration, etc.).
- Placeholders (%s, %d, %1$s, %.1f), XML entities and escaped apostrophes
  preserved; translatable="false" strings intentionally omitted.

Updates tailscale/tailscale#7856

Signed-off-by: Stéphane <foxace66@gmail.com>
@foXaCe foXaCe force-pushed the i18n/fr-initial branch from e3a90e0 to 8cb393c Compare July 6, 2026 09:34
@bradfitz

bradfitz commented Jul 6, 2026

Copy link
Copy Markdown
Member

See #809 (comment)

Thanks for this, but we're still currently figuring out our policy (internal discussion: https://github.com/tailscale/corp/issues/43407) for what we do with translations to our various apps & websites.

We probably won't be able to merge this for some time until we figure out our overall translation plan.

@bradfitz bradfitz added the hold label Jul 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants