Skip to content

feat(i18n): add French (fr) localization - #149

Merged
wflixu merged 1 commit into
wflixu:devfrom
Dam0rt:feature/french-localization
Sep 12, 2026
Merged

wflixu merged 1 commit into
wflixu:devfrom
Dam0rt:feature/french-localization

Conversation

@Dam0rt

@Dam0rt Dam0rt commented Sep 10, 2026

Copy link
Copy Markdown

Summary

Adds a complete French (fr) localization for both the main app and the FinderSync extension, following the same approach as the Spanish localization (#138):

  • RClick/Localizable.xcstrings: 167 fr strings
  • FinderSyncExt/Localizable.xcstrings: 149 fr strings
  • fr registered in knownRegions in RClick.xcodeproj
  • README localization table updated (also lists the existing es entry, which was missing there)

Terminology follows Apple's French macOS glossary so the app reads like a native one: Réglages Système, Accès complet au disque, Départ for the home folder, Ouvrir à la connexion, Supprimer immédiatement for the trash-bypassing delete.

English stays the source language and fallback. No logic, signing, entitlement or bundle-id changes — the diff is purely additive to the two string catalogs plus the one-line project registration.

Type of Change

  • 🐛 Bug fix
  • ✨ New feature
  • 📝 Documentation update
  • ♻️ Refactoring
  • ⚡ Performance improvement
  • 🔧 Build/CI change
  • 🧪 Test addition/update

Related Issue

None — French was simply not available yet.

Screenshots

N/A — strings only. The UI is unchanged in every other language.

Testing

Manual Testing

  • python3 scripts/check-localization.py --languages fr passes: every translatable key rendered in fr, format specifiers preserved in the same order (4 keys skipped as non-translatable, same as for es)
  • Existing en / zh-Hans / ja / es entries are untouched (diff is additive; the 9 pre-existing ja / zh-Hans gaps reported by the script on dev are unchanged and out of scope)
  • Catalogs still open as valid String Catalogs (JSON formatting matches Xcode's output)
  • App launches and appears in menu bar
  • Right-click menu works correctly in Finder
  • Dark mode looks correct
  • Settings persist across restarts
  • FinderSync extension loads properly

I was not able to build and run the app locally (no signing identity for the FinderSync extension on this machine), so the runtime items above are unchecked. Happy to adjust any wording a French-speaking reviewer prefers.

Build Verification

Not run locally for the reason above. CI should cover the build since only .xcstrings, project.pbxproj (knownRegions) and README.md change.

Checklist

  • My code follows the project's Swift 6.2 conventions (no Swift code changed)
  • All UI is SwiftUI (no UI code changed)
  • I have tested on macOS 15.6+
  • I have tested with both light and dark mode
  • I have updated documentation if needed
  • My branch is up-to-date with dev

Additional Notes

The translation was prepared with the help of Claude and reviewed by a native French speaker.

🤖 Generated with Claude Code

Adds a complete fr translation for both the main app and the FinderSync
extension, registers fr in knownRegions, and lists French in the README
localization table.

- RClick/Localizable.xcstrings: 167 fr strings
- FinderSyncExt/Localizable.xcstrings: 149 fr strings
- scripts/check-localization.py --languages fr passes (every translatable
  key rendered, format specifiers preserved in order)

Terminology follows Apple's French macOS glossary (Réglages Système,
Accès complet au disque, Départ for the home folder, Ouvrir à la
connexion). English stays the source language and fallback. No logic,
signing, entitlement or bundle-id changes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@wflixu
wflixu merged commit ec0631d into wflixu:dev Sep 12, 2026
1 check 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.

2 participants