mirror of
https://github.com/we-promise/sure.git
synced 2026-05-12 15:15:01 +00:00
* i18n(fr): complete provider_sync_summary translations
Add 13 missing French translations under provider_sync_summary in
config/locales/views/components/fr.yml to bring it to parity with en.yml.
Covers: transactions.fetching/protected/view_protected, full skip_reasons
section, full trades section (investment activities), and
health.view_error_details.
* chore(i18n): fix i18n-tasks scanner config
Add app/components to i18n-tasks relative_roots so component .erb files
using t(".relative_key") are correctly resolved by the scanner. Without
this, the scanner crashed on any component using relative i18n keys.
* i18n(fr): complete high-impact view translations
Bring full FR parity to the 5 most-visited user-facing screens:
- accounts (+25 keys)
- transactions (+168)
- holdings (+53)
- settings (+81)
- reports (+20)
Vocabulary aligned with docs/i18n/fr-glossary.md (Holding → Avoir,
Trade → Transaction boursière, Brokerage → Courtier, Posted → Validée,
Merchant → Commerçant, Net worth → Patrimoine net, etc.).
* i18n(fr): complete remaining incomplete view translations
Bring full FR parity to 23 partially-translated view locale files:
Mid-size (8-68 keys each): investments, pages, merchants, imports,
coinstats_items, sessions, cryptos, rules, transfers, trades,
invitations, entries, onboardings, simplefin_items.
Small (1-4 keys each): plaid_items, recurring_transactions, users,
password_resets, other_assets, loans, shared, registrations,
oidc_accounts.
Total: ~430 new FR keys. Existing FR translations preserved where
already in place; only missing keys were added.
Note: shared/fr.yml retains a `breadcrumbs:` block not present in EN
(used by FR breadcrumb controllers — removing would regress).
* i18n(fr): complete nested admin & settings translations
Cover the nested view subdirectories missed by the top-level scan:
- defaults/fr.yml (+3 custom keys: global.expand,
helpers.select.default_label, helpers.select.search_placeholder)
- admin/sso_providers (+2 keys: role_guest, guest_groups)
- admin/users (+25 keys: section title, family/role/trial filters,
table columns, summary, role descriptions, invitations)
- settings/api_keys (+1 key + structural fix: no_api_key and
current_api_key were nested incorrectly, now match en.yml)
- settings/hostings (+93 keys: assistant_settings, provider_selection,
tiingo/eodhd/alpha_vantage/openai blocks, twelve_data plan upgrade)
* i18n(fr): add fr.yml for 11 previously untranslated views
Create French locale files for all view directories that had no fr.yml:
Core features (6 files, 112 keys):
- account_sharings, budgets, splits, pdf_import_mailer (view scope),
pending_duplicate_merges, securities
Provider integrations (5 files, 575 keys):
- binance_items (Binance crypto exchange)
- coinbase_items (Coinbase crypto exchange)
- indexa_capital_items (Indexa Capital robo-advisor)
- mercury_items (Mercury business banking)
- snaptrade_items (SnapTrade broker aggregator)
Provider names kept in English. Domain vocabulary follows
docs/i18n/fr-glossary.md (Reconnect → Reconnecter, Refresh →
Actualiser, Wallet → Portefeuille, Cost basis → Coût d'acquisition,
Canadian retirement accounts mapped to official FR-CA acronyms
RRSP→REER, TFSA→CELI, RRIF→FERR).
* i18n(fr): add models, mailer, breadcrumb & Doorkeeper translations
Create French locale files for the remaining non-view scopes:
- models/coinbase_account/fr.yml (1 key)
- models/transaction/fr.yml (3 keys)
- mailers/pdf_import_mailer/fr.yml (1 key)
- breadcrumbs/fr.yml (5 root-level breadcrumb labels)
- doorkeeper.fr.yml (89 keys: full OAuth2 UI translation
modeled on the doorkeeper-i18n FR conventions; PKCE/scope/
Client Credentials kept in English as proper grant names;
date_format adjusted to %d/%m/%Y %H:%M:%S)
* i18n(fr): use "Inscription des utilisateurs" for invite_codes onboarding
In the invite_codes settings section, EN "Onboarding" was translated as
"Intégration" — wrong context. The page controls how new people sign up
to the instance, so "Inscription des utilisateurs" is the natural
French term for this UX flow.
* i18n(fr): use "Marchand" consistently for Merchant
Aligns transactions/, settings/, and settings/hostings/ with the FR
fintech convention (Lydia, Revolut FR, Boursorama, N26 FR all use
"Marchand"). Earlier waves had introduced "Commerçant" via a glossary
choice that turned out to imply a small physical retailer rather than
a generic transaction payee.
Net effect: a single consistent term across all FR screens.
* i18n(fr): address CodeRabbit review feedback
Fixes 9 of 17 actionable items from the CodeRabbit review:
- Remove duplicate breadcrumbs block from shared/fr.yml (item 2)
- Standardize "Indexa Capital" naming throughout (item 6)
- Pluralize merchants.perform_merge.success in EN+FR (item 7)
- Add rel="noopener noreferrer" to Coinbase + Binance external links
in EN+FR settings (item 9, security)
- Replace "rappeler" with "invoquer" for MCP tool calling (item 10)
- Localize Doorkeeper "Single Page Apps" + grant names with FR-first
phrasing (item 12)
- Reorder twelve_data_settings to put title first (item 14)
- Enrich IRA/SEP/SIMPLE/ISA/LISA/SIPP long labels with FR expansion
+ acronym in parens (item 15)
- Use "Transfert" (not "Virement") for investment activity_labels.transfer
to disambiguate from banking transfers (item 16)
Items deferred (require non-FR code changes or are pre-existing EN bugs):
1, 3, 4, 5, 8, 11, 13.
* i18n(fr): address second-wave CodeRabbit review feedback
- transactions: fix gender agreement on one_time_title
("%{type} ponctuel" → "Transaction ponctuelle (%{type})") so that
"Dépense" no longer renders as "Dépense ponctuel"
- transactions: fix bare-noun-modifier in rule_description_prefix
("Les futures transactions %{type}…" → "…de type %{type}…")
- settings/hostings: clarify email_confirmation_description
("lors du changement" → "lorsqu'ils la modifient")
- settings/hostings: fix dangling "Utilisé de préférence" in EODHD
and Alpha Vantage rate_limit_warning ("À utiliser de préférence")
54 lines
2.4 KiB
YAML
54 lines
2.4 KiB
YAML
---
|
|
fr:
|
|
admin:
|
|
users:
|
|
index:
|
|
title: "Gestion des utilisateurs"
|
|
description: "Gérez les rôles des utilisateurs pour votre instance. Les super administrateurs peuvent accéder aux paramètres des fournisseurs SSO et à la gestion des utilisateurs."
|
|
section_title: "Familles / Groupes"
|
|
you: "(Vous)"
|
|
trial_ends_at: "Fin de l'essai"
|
|
not_available: "n/a"
|
|
no_users: "Aucun utilisateur trouvé."
|
|
unnamed_family: "Famille/Groupe sans nom"
|
|
no_subscription: "Aucun abonnement"
|
|
family_summary: "%{members} membres · %{accounts} comptes · %{transactions} transactions"
|
|
filters:
|
|
role: "Rôle"
|
|
role_all: "Tous les rôles"
|
|
trial_status: "Statut de l'essai"
|
|
trial_all: "Tous"
|
|
trial_expiring_soon: "Expire dans 7 jours"
|
|
trial_trialing: "En essai"
|
|
submit: "Filtrer"
|
|
summary:
|
|
trials_expiring_7_days: "Essais expirant dans les 7 prochains jours"
|
|
table:
|
|
user: "Utilisateur"
|
|
trial_ends_at: "Fin de l'essai"
|
|
family_accounts: "Comptes de la famille"
|
|
family_transactions: "Transactions de la famille"
|
|
last_login: "Dernière connexion"
|
|
session_count: "Nombre de sessions"
|
|
never: "Jamais"
|
|
role: "Rôle"
|
|
role_descriptions_title: "Description des rôles"
|
|
roles:
|
|
guest: "Invité"
|
|
member: "Membre"
|
|
admin: "Administrateur"
|
|
super_admin: "Super Administrateur"
|
|
role_descriptions:
|
|
guest: "Expérience axée sur l'assistant avec des permissions volontairement restreintes pour les parcours d'introduction."
|
|
member: "Accès utilisateur de base. Peut gérer ses propres comptes, transactions et paramètres."
|
|
admin: "Administrateur familial. Peut accéder aux paramètres avancés comme les clés API, les importations et les prompts IA."
|
|
super_admin: "Administrateur de l'instance. Peut gérer les fournisseurs SSO, les rôles des utilisateurs et usurper l'identité des utilisateurs pour le support."
|
|
invitations:
|
|
pending_label: "Invité (en attente)"
|
|
expires: "Expire le %{date}"
|
|
delete: "Supprimer"
|
|
delete_all: "Tout supprimer"
|
|
update:
|
|
success: "Rôle de l'utilisateur mis à jour avec succès."
|
|
failure: "Échec de la mise à jour du rôle de l'utilisateur."
|