mirror of
https://github.com/we-promise/sure.git
synced 2026-06-01 08:49: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")
148 lines
7.4 KiB
YAML
148 lines
7.4 KiB
YAML
---
|
|
fr:
|
|
mercury_items:
|
|
create:
|
|
success: Connexion Mercury créée avec succès
|
|
destroy:
|
|
success: Connexion Mercury supprimée
|
|
index:
|
|
title: Connexions Mercury
|
|
loading:
|
|
loading_message: Chargement des comptes Mercury…
|
|
loading_title: Chargement
|
|
link_accounts:
|
|
all_already_linked:
|
|
one: "Le compte sélectionné (%{names}) est déjà lié"
|
|
other: "Les %{count} comptes sélectionnés sont déjà liés : %{names}"
|
|
api_error: "Erreur API : %{message}"
|
|
invalid_account_names:
|
|
one: "Impossible de lier un compte sans nom"
|
|
other: "Impossible de lier %{count} comptes sans nom"
|
|
link_failed: Échec de la liaison des comptes
|
|
no_accounts_selected: Veuillez sélectionner au moins un compte
|
|
no_api_token: Jeton API Mercury introuvable. Veuillez le configurer dans les paramètres du fournisseur.
|
|
partial_invalid: "%{created_count} compte(s) lié(s) avec succès, %{already_linked_count} étaient déjà liés, %{invalid_count} compte(s) avaient des noms invalides"
|
|
partial_success: "%{created_count} compte(s) lié(s) avec succès. %{already_linked_count} compte(s) étaient déjà liés : %{already_linked_names}"
|
|
success:
|
|
one: "%{count} compte lié avec succès"
|
|
other: "%{count} comptes liés avec succès"
|
|
mercury_item:
|
|
accounts_need_setup: Des comptes doivent être configurés
|
|
delete: Supprimer la connexion
|
|
deletion_in_progress: suppression en cours…
|
|
error: Erreur
|
|
no_accounts_description: Cette connexion n'a pas encore de comptes liés.
|
|
no_accounts_title: Aucun compte
|
|
setup_action: Configurer les nouveaux comptes
|
|
setup_description: "%{linked} sur %{total} comptes liés. Choisissez les types de compte pour vos comptes Mercury nouvellement importés."
|
|
setup_needed: Nouveaux comptes prêts à être configurés
|
|
status: "Synchronisé il y a %{timestamp}"
|
|
status_never: Jamais synchronisé
|
|
status_with_summary: "Dernière synchronisation il y a %{timestamp} - %{summary}"
|
|
syncing: Synchronisation…
|
|
total: Total
|
|
unlinked: Non lié
|
|
select_accounts:
|
|
accounts_selected: comptes sélectionnés
|
|
api_error: "Erreur API : %{message}"
|
|
cancel: Annuler
|
|
configure_name_in_mercury: Impossible d'importer - veuillez configurer le nom du compte dans Mercury
|
|
description: Sélectionnez les comptes que vous souhaitez lier à votre compte %{product_name}.
|
|
link_accounts: Lier les comptes sélectionnés
|
|
no_accounts_found: Aucun compte trouvé. Veuillez vérifier la configuration de votre jeton API.
|
|
no_api_token: Le jeton API Mercury n'est pas configuré. Veuillez le configurer dans les Paramètres.
|
|
no_credentials_configured: Veuillez d'abord configurer votre jeton API Mercury dans les paramètres du fournisseur.
|
|
no_name_placeholder: "(Sans nom)"
|
|
title: Sélectionner les comptes Mercury
|
|
select_existing_account:
|
|
account_already_linked: Ce compte est déjà lié à un fournisseur
|
|
all_accounts_already_linked: Tous les comptes Mercury sont déjà liés
|
|
api_error: "Erreur API : %{message}"
|
|
cancel: Annuler
|
|
configure_name_in_mercury: Impossible d'importer - veuillez configurer le nom du compte dans Mercury
|
|
description: Sélectionnez un compte Mercury à lier avec ce compte. Les transactions seront synchronisées et dédupliquées automatiquement.
|
|
link_account: Lier le compte
|
|
no_account_specified: Aucun compte spécifié
|
|
no_accounts_found: Aucun compte Mercury trouvé. Veuillez vérifier la configuration de votre jeton API.
|
|
no_api_token: Le jeton API Mercury n'est pas configuré. Veuillez le configurer dans les Paramètres.
|
|
no_credentials_configured: Veuillez d'abord configurer votre jeton API Mercury dans les paramètres du fournisseur.
|
|
no_name_placeholder: "(Sans nom)"
|
|
title: "Lier %{account_name} avec Mercury"
|
|
link_existing_account:
|
|
account_already_linked: Ce compte est déjà lié à un fournisseur
|
|
api_error: "Erreur API : %{message}"
|
|
invalid_account_name: Impossible de lier un compte sans nom
|
|
mercury_account_already_linked: Ce compte Mercury est déjà lié à un autre compte
|
|
mercury_account_not_found: Compte Mercury introuvable
|
|
missing_parameters: Paramètres requis manquants
|
|
no_api_token: Jeton API Mercury introuvable. Veuillez le configurer dans les paramètres du fournisseur.
|
|
success: "%{account_name} lié avec succès à Mercury"
|
|
setup_accounts:
|
|
account_type_label: "Type de compte :"
|
|
all_accounts_linked: "Tous vos comptes Mercury ont déjà été configurés."
|
|
api_error: "Erreur API : %{message}"
|
|
fetch_failed: "Échec de la récupération des comptes"
|
|
no_accounts_to_setup: "Aucun compte à configurer"
|
|
no_api_token: "Le jeton API Mercury n'est pas configuré. Veuillez vérifier les paramètres de connexion."
|
|
account_types:
|
|
skip: Ignorer ce compte
|
|
depository: Compte courant ou épargne
|
|
credit_card: Carte de crédit
|
|
investment: Compte d'investissement
|
|
loan: Prêt ou hypothèque
|
|
other_asset: Autre actif
|
|
subtype_labels:
|
|
depository: "Sous-type de compte :"
|
|
credit_card: ""
|
|
investment: "Type d'investissement :"
|
|
loan: "Type de prêt :"
|
|
other_asset: ""
|
|
subtype_messages:
|
|
credit_card: "Les cartes de crédit seront automatiquement configurées comme comptes de carte de crédit."
|
|
other_asset: "Aucune option supplémentaire nécessaire pour les autres actifs."
|
|
subtypes:
|
|
depository:
|
|
checking: Compte courant
|
|
savings: Compte épargne
|
|
hsa: Compte épargne santé
|
|
cd: Certificat de dépôt
|
|
money_market: Compte du marché monétaire
|
|
investment:
|
|
brokerage: Courtage
|
|
pension: Pension
|
|
retirement: Retraite
|
|
"401k": "401(k)"
|
|
roth_401k: "Roth 401(k)"
|
|
"403b": "403(b)"
|
|
tsp: Plan d'épargne Thrift
|
|
"529_plan": "Plan 529"
|
|
hsa: Compte épargne santé
|
|
mutual_fund: Fonds commun de placement
|
|
ira: IRA traditionnel
|
|
roth_ira: Roth IRA
|
|
angel: Investissement providentiel
|
|
loan:
|
|
mortgage: Hypothèque
|
|
student: Prêt étudiant
|
|
auto: Prêt auto
|
|
other: Autre prêt
|
|
balance: Solde
|
|
cancel: Annuler
|
|
choose_account_type: "Choisissez le type de compte correct pour chaque compte Mercury :"
|
|
create_accounts: Créer les comptes
|
|
creating_accounts: Création des comptes…
|
|
historical_data_range: "Plage de données historiques :"
|
|
subtitle: Choisissez les types de compte corrects pour vos comptes importés
|
|
sync_start_date_help: Sélectionnez jusqu'où vous souhaitez synchroniser l'historique des transactions. Maximum 3 ans d'historique disponible.
|
|
sync_start_date_label: "Commencer la synchronisation des transactions à partir de :"
|
|
title: Configurer vos comptes Mercury
|
|
complete_account_setup:
|
|
all_skipped: "Tous les comptes ont été ignorés. Aucun compte n'a été créé."
|
|
creation_failed: "Échec de la création des comptes : %{error}"
|
|
no_accounts: "Aucun compte à configurer."
|
|
success: "%{count} compte(s) créé(s) avec succès."
|
|
sync:
|
|
success: Synchronisation démarrée
|
|
update:
|
|
success: Connexion Mercury mise à jour
|