From 3fc3e20c36a3e6b265473a431ac47a70c19f8b44 Mon Sep 17 00:00:00 2001 From: foXaCe Date: Thu, 15 Jan 2026 21:42:39 +0100 Subject: [PATCH] i18n: Add French translations (#658) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * i18n: Add French translations Add complete French translation files for the application. Co-Authored-By: Norman Alié Co-Authored-By: Xurron * fix: Correct YAML syntax in French securities translations Co-Authored-By: Norman Alié Co-Authored-By: Xurron --------- Co-authored-by: Norman Alié Co-authored-by: Xurron --- app/helpers/languages_helper.rb | 3 +- config/locales/defaults/fr.yml | 11 +- .../locales/mailers/invitation_mailer/fr.yml | 5 + config/locales/models/account/fr.yml | 22 ++++ config/locales/models/address/fr.yml | 11 ++ config/locales/models/entry/fr.yml | 10 ++ config/locales/models/import/fr.yml | 13 ++ .../locales/models/time_series/value/fr.yml | 9 ++ config/locales/models/transfer/fr.yml | 22 ++++ config/locales/models/trend/fr.yml | 15 +++ config/locales/models/user/fr.yml | 22 ++++ config/locales/views/accounts/fr.yml | 72 +++++++++++ config/locales/views/application/fr.yml | 10 ++ config/locales/views/categories/fr.yml | 34 +++++ .../locales/views/category/deletions/fr.yml | 14 +++ .../locales/views/category/dropdowns/fr.yml | 11 ++ config/locales/views/credit_cards/fr.yml | 25 ++++ config/locales/views/cryptos/fr.yml | 7 ++ config/locales/views/depositories/fr.yml | 10 ++ .../views/email_confirmation_mailer/fr.yml | 9 ++ config/locales/views/entries/fr.yml | 14 +++ config/locales/views/family_exports/fr.yml | 7 ++ config/locales/views/holdings/fr.yml | 36 ++++++ .../views/impersonation_sessions/fr.yml | 15 +++ config/locales/views/imports/fr.yml | 78 ++++++++++++ config/locales/views/investments/fr.yml | 17 +++ config/locales/views/invitation_mailer/fr.yml | 8 ++ config/locales/views/invitations/fr.yml | 19 +++ config/locales/views/invite_codes/fr.yml | 6 + config/locales/views/layout/fr.yml | 13 ++ config/locales/views/loans/fr.yml | 23 ++++ config/locales/views/merchants/fr.yml | 27 ++++ config/locales/views/mfa/fr.yml | 38 ++++++ config/locales/views/onboardings/fr.yml | 27 ++++ config/locales/views/other_assets/fr.yml | 7 ++ config/locales/views/other_liabilities/fr.yml | 7 ++ config/locales/views/pages/fr.yml | 25 ++++ config/locales/views/password_mailer/fr.yml | 8 ++ config/locales/views/password_resets/fr.yml | 13 ++ config/locales/views/passwords/fr.yml | 10 ++ config/locales/views/plaid_items/fr.yml | 23 ++++ config/locales/views/properties/fr.yml | 32 +++++ config/locales/views/registrations/fr.yml | 24 ++++ config/locales/views/sessions/fr.yml | 15 +++ config/locales/views/settings/api_keys/fr.yml | 75 +++++++++++ config/locales/views/settings/fr.yml | 119 ++++++++++++++++++ config/locales/views/settings/hostings/fr.yml | 50 ++++++++ .../locales/views/settings/securities/fr.yml | 10 ++ config/locales/views/shared/fr.yml | 26 ++++ config/locales/views/simplefin_items/fr.yml | 47 +++++++ config/locales/views/subscriptions/fr.yml | 3 + config/locales/views/tag/deletions/fr.yml | 13 ++ config/locales/views/tags/fr.yml | 23 ++++ config/locales/views/trades/fr.yml | 38 ++++++ config/locales/views/transactions/fr.yml | 82 ++++++++++++ config/locales/views/transfers/fr.yml | 30 +++++ config/locales/views/users/fr.yml | 14 +++ config/locales/views/valuations/fr.yml | 30 +++++ config/locales/views/vehicles/fr.yml | 25 ++++ 59 files changed, 1409 insertions(+), 3 deletions(-) create mode 100644 config/locales/mailers/invitation_mailer/fr.yml create mode 100644 config/locales/models/account/fr.yml create mode 100644 config/locales/models/address/fr.yml create mode 100644 config/locales/models/entry/fr.yml create mode 100644 config/locales/models/import/fr.yml create mode 100644 config/locales/models/time_series/value/fr.yml create mode 100644 config/locales/models/transfer/fr.yml create mode 100644 config/locales/models/trend/fr.yml create mode 100644 config/locales/models/user/fr.yml create mode 100644 config/locales/views/accounts/fr.yml create mode 100644 config/locales/views/application/fr.yml create mode 100644 config/locales/views/categories/fr.yml create mode 100644 config/locales/views/category/deletions/fr.yml create mode 100644 config/locales/views/category/dropdowns/fr.yml create mode 100644 config/locales/views/credit_cards/fr.yml create mode 100644 config/locales/views/cryptos/fr.yml create mode 100644 config/locales/views/depositories/fr.yml create mode 100644 config/locales/views/email_confirmation_mailer/fr.yml create mode 100644 config/locales/views/entries/fr.yml create mode 100644 config/locales/views/family_exports/fr.yml create mode 100644 config/locales/views/holdings/fr.yml create mode 100644 config/locales/views/impersonation_sessions/fr.yml create mode 100644 config/locales/views/imports/fr.yml create mode 100644 config/locales/views/investments/fr.yml create mode 100644 config/locales/views/invitation_mailer/fr.yml create mode 100644 config/locales/views/invitations/fr.yml create mode 100644 config/locales/views/invite_codes/fr.yml create mode 100644 config/locales/views/layout/fr.yml create mode 100644 config/locales/views/loans/fr.yml create mode 100644 config/locales/views/merchants/fr.yml create mode 100644 config/locales/views/mfa/fr.yml create mode 100644 config/locales/views/onboardings/fr.yml create mode 100644 config/locales/views/other_assets/fr.yml create mode 100644 config/locales/views/other_liabilities/fr.yml create mode 100644 config/locales/views/pages/fr.yml create mode 100644 config/locales/views/password_mailer/fr.yml create mode 100644 config/locales/views/password_resets/fr.yml create mode 100644 config/locales/views/passwords/fr.yml create mode 100644 config/locales/views/plaid_items/fr.yml create mode 100644 config/locales/views/properties/fr.yml create mode 100644 config/locales/views/registrations/fr.yml create mode 100644 config/locales/views/sessions/fr.yml create mode 100644 config/locales/views/settings/api_keys/fr.yml create mode 100644 config/locales/views/settings/fr.yml create mode 100644 config/locales/views/settings/hostings/fr.yml create mode 100644 config/locales/views/settings/securities/fr.yml create mode 100644 config/locales/views/shared/fr.yml create mode 100644 config/locales/views/simplefin_items/fr.yml create mode 100644 config/locales/views/subscriptions/fr.yml create mode 100644 config/locales/views/tag/deletions/fr.yml create mode 100644 config/locales/views/tags/fr.yml create mode 100644 config/locales/views/trades/fr.yml create mode 100644 config/locales/views/transactions/fr.yml create mode 100644 config/locales/views/transfers/fr.yml create mode 100644 config/locales/views/users/fr.yml create mode 100644 config/locales/views/valuations/fr.yml create mode 100644 config/locales/views/vehicles/fr.yml diff --git a/app/helpers/languages_helper.rb b/app/helpers/languages_helper.rb index 65fb550c3..7b528be3a 100644 --- a/app/helpers/languages_helper.rb +++ b/app/helpers/languages_helper.rb @@ -155,7 +155,8 @@ module LanguagesHelper # Locales with complete/extensive translations SUPPORTED_LOCALES = [ - "en", # English - 62 translation files + "en", # English - 71 translation files + "fr", # French - 61 translation files "de", # German - 62 translation files "es", # Spanish - 61 translation files "tr", # Turkish - 58 translation files diff --git a/config/locales/defaults/fr.yml b/config/locales/defaults/fr.yml index 17b4a9bc9..5f7e143ed 100644 --- a/config/locales/defaults/fr.yml +++ b/config/locales/defaults/fr.yml @@ -1,5 +1,8 @@ --- fr: + defaults: + brand_name: "%{brand_name}" + product_name: "%{product_name}" activerecord: errors: messages: @@ -178,10 +181,14 @@ fr: format: "%n %u" units: billion: milliard - million: million + million: + one: million + other: millions quadrillion: million de milliards thousand: millier - trillion: billion + trillion: + one: billion + other: billions unit: '' format: delimiter: '' diff --git a/config/locales/mailers/invitation_mailer/fr.yml b/config/locales/mailers/invitation_mailer/fr.yml new file mode 100644 index 000000000..4224d30bb --- /dev/null +++ b/config/locales/mailers/invitation_mailer/fr.yml @@ -0,0 +1,5 @@ +--- +fr: + invitation_mailer: + invite_email: + subject: "%{inviter} vous a invité à rejoindre sa famille sur %{product_name} !" diff --git a/config/locales/models/account/fr.yml b/config/locales/models/account/fr.yml new file mode 100644 index 000000000..dc0dca702 --- /dev/null +++ b/config/locales/models/account/fr.yml @@ -0,0 +1,22 @@ +--- +fr: + activerecord: + attributes: + account: + balance: Solde + currency: Devise + family: Famille + family_id: Famille + name: Nom + subtype: Sous-type + models: + account: Compte + account/credit: Carte de Crédit + account/depository: Compte Bancaire + account/investment: Investissement + account/loan: Prêt + account/other_asset: Autre Actif + account/other_liability: Autre Passif + account/property: Immobilier + account/vehicle: Véhicule + account/crypto: Cryptomonnaie diff --git a/config/locales/models/address/fr.yml b/config/locales/models/address/fr.yml new file mode 100644 index 000000000..708c1f5af --- /dev/null +++ b/config/locales/models/address/fr.yml @@ -0,0 +1,11 @@ +--- +fr: + address: + attributes: + country: Pays + line1: Adresse ligne 1 + line2: Adresse ligne 2 + locality: Ville + postal_code: Code Postal + region: Région + format: "%{line1} %{line2}, %{locality}, %{region} %{postal_code} %{country}" diff --git a/config/locales/models/entry/fr.yml b/config/locales/models/entry/fr.yml new file mode 100644 index 000000000..651570f22 --- /dev/null +++ b/config/locales/models/entry/fr.yml @@ -0,0 +1,10 @@ +--- +fr: + activerecord: + errors: + models: + entry: + attributes: + base: + invalid_sell_quantity: Vous ne pouvez pas vendre %{sell_qty} actions de %{ticker} car + vous n'en détenez que %{current_qty} diff --git a/config/locales/models/import/fr.yml b/config/locales/models/import/fr.yml new file mode 100644 index 000000000..a1233c8ae --- /dev/null +++ b/config/locales/models/import/fr.yml @@ -0,0 +1,13 @@ +--- +fr: + activerecord: + attributes: + import: + currency: Devise + number_format: Format numérique + errors: + models: + import: + attributes: + raw_file_str: + invalid_csv_format: n'est pas un format CSV valide diff --git a/config/locales/models/time_series/value/fr.yml b/config/locales/models/time_series/value/fr.yml new file mode 100644 index 000000000..cbce38efa --- /dev/null +++ b/config/locales/models/time_series/value/fr.yml @@ -0,0 +1,9 @@ +--- +fr: + activemodel: + errors: + models: + time_series/value: + attributes: + value: + must_be_a_money_or_numeric: doit être un Money ou un nombre diff --git a/config/locales/models/transfer/fr.yml b/config/locales/models/transfer/fr.yml new file mode 100644 index 000000000..89d431e67 --- /dev/null +++ b/config/locales/models/transfer/fr.yml @@ -0,0 +1,22 @@ +--- +fr: + activerecord: + errors: + models: + transfer: + attributes: + base: + inflow_cannot_be_in_multiple_transfers: La transaction d'entrée ne peut pas faire + partie de plusieurs transferts + must_be_from_different_accounts: Le transfert doit avoir des comptes différents + must_be_from_same_family: Le transfert doit provenir de la même famille + must_be_within_date_range: Les dates des transactions du transfert doivent être + espacées de moins de 4 jours + must_have_opposite_amounts: Les transactions de transfert doivent avoir des montants + opposés + must_have_single_currency: Le transfert doit avoir une seule devise + outflow_cannot_be_in_multiple_transfers: La transaction de dépense ne peut pas faire + partie de plusieurs transferts + transfer: + name: Transfert vers %{to_account} + payment_name: Paiement vers %{to_account} diff --git a/config/locales/models/trend/fr.yml b/config/locales/models/trend/fr.yml new file mode 100644 index 000000000..87483c8ed --- /dev/null +++ b/config/locales/models/trend/fr.yml @@ -0,0 +1,15 @@ +--- +fr: + activemodel: + errors: + models: + trend: + attributes: + current: + must_be_of_the_same_type_as_previous: doit être du même type que le précédent + must_be_of_type_money_numeric_or_nil: doit être de type Money, Numeric, + ou nil + previous: + must_be_of_the_same_type_as_current: doit être du même type que le courant + must_be_of_type_money_numeric_or_nil: doit être de type Money, Numeric, + ou nil diff --git a/config/locales/models/user/fr.yml b/config/locales/models/user/fr.yml new file mode 100644 index 000000000..d3f2d6c3a --- /dev/null +++ b/config/locales/models/user/fr.yml @@ -0,0 +1,22 @@ +--- +fr: + activerecord: + attributes: + user: + email: Adresse mail + family: Famille + family_id: Famille + first_name: Prénom + last_name: Nom + password: Mot de passe + password_confirmation: Confirmation du mot de passe + errors: + models: + user: + attributes: + base: + cannot_deactivate_admin_with_other_users: Un administrateur ne peut pas + désactiver son compte tant que d'autres utilisateurs sont présents. + Veuillez d’abord supprimer tous les membres. + profile_image: + invalid_file_size: La taille du fichier doit être inférieure à %{max_megabytes} Mo diff --git a/config/locales/views/accounts/fr.yml b/config/locales/views/accounts/fr.yml new file mode 100644 index 000000000..10d8e2375 --- /dev/null +++ b/config/locales/views/accounts/fr.yml @@ -0,0 +1,72 @@ +--- +fr: + accounts: + account: + troubleshoot: Dépannage + account_sidebar_tabs: + missing_historical: Manque les données historiques + describe_party_provider: "%{product_name} utilise des fournisseurs tiers pour récupérer l'historique des taux de change, des cours des titres, etc. Ces données sont nécessaires au calcul précis des soldes historiques des comptes." + configure_provider: Configurez vos fournisseurs ici. + label_all: Tout + label_asset: Actifs + label_liability: Dettes + new_asset: Nouvel actif + new_debt: Nouvelle dette + new_account: Nouveau compte + chart: + data_not_available: Données non disponibles pour la période sélectionnée + create: + success: "Compte %{type} créé" + destroy: + success: "Le compte %{type} a été préparé à la suppression" + empty: + empty_message: Ajoutez un compte via une connexion, une importation ou en entrant manuellement. + new_account: Nouveau compte + no_accounts: Aucun compte pour l'instant + form: + balance: Solde actuel + name_label: Nom du compte + name_placeholder: Nom de compte d'exemple + index: + accounts: Comptes + manual_accounts: + other_accounts: Autres comptes + new_account: Nouveau compte + sync: Tout synchroniser + new: + import_accounts: Importer des comptes + method_selector: + connected_entry: Lier un compte + connected_entry_eu: Lier un compte européen + manual_entry: Saisir le solde du compte + title: Comment voulez-vous l'ajouter ? + title: Que voulez-vous ajouter ? + show: + activity: + amount: Montant + balance: Solde + date: Date + entries: entrées + entry: entrée + new: Nouveau + new_balance: Nouveau solde + new_transaction: Nouvelle transaction + no_entries: Aucune entrée trouvée + title: Activité + chart: + balance: Solde + owed: Montant dû + menu: + confirm_accept: Supprimer "%{name}" + confirm_body_html: "

En supprimant ce compte, vous effacerez son historique de valeur, + affectant divers aspects de votre solde global. Cette action aura un impact direct sur vos calculs de valeur nette et les graphiques des comptes.


Après la suppression, il n'y a aucun moyen de restaurer l'information du compte car vous aurez besoin d'en ajouter un nouveau.

" + confirm_title: Supprimer le compte ? + edit: Éditer + import: Importer des transactions + manage: Gérer les comptes + update: + success: "Compte %{type} mis à jour" + email_confirmations: + new: + invalid_token: Lien de confirmation invalide ou expiré. + success_login: Votre email a été confirmé. Veuillez vous identifier avec votre nouvelle adresse email. diff --git a/config/locales/views/application/fr.yml b/config/locales/views/application/fr.yml new file mode 100644 index 000000000..dd2daf2b3 --- /dev/null +++ b/config/locales/views/application/fr.yml @@ -0,0 +1,10 @@ +--- +fr: + number: + currency: + format: + delimiter: " " + format: "%n %u" + precision: 2 + separator: "," + unit: "€" diff --git a/config/locales/views/categories/fr.yml b/config/locales/views/categories/fr.yml new file mode 100644 index 000000000..fb128e309 --- /dev/null +++ b/config/locales/views/categories/fr.yml @@ -0,0 +1,34 @@ +--- +fr: + categories: + bootstrap: + success: Catégories par défaut créées avec succès + category: + delete: Supprimer la catégorie + edit: Éditer la catégorie + create: + success: Catégorie créée avec succès + destroy: + success: Catégorie supprimée avec succès + edit: + edit: Éditer la catégorie + form: + placeholder: Nom de la catégorie + index: + bootstrap: Utiliser les valeurs par défaut (recommandé) + categories: Catégories + categories_expenses: Catégories de dépenses + categories_incomes: Catégories de revenus + empty: Aucune catégorie trouvée + new: Nouvelle catégorie + menu: + loading: Chargement... + new: + new_category: Nouvelle catégorie + update: + success: Catégorie mise à jour avec succès + category: + dropdowns: + show: + bootstrap: Générer les catégories par défaut + empty: Aucune catégorie trouvée diff --git a/config/locales/views/category/deletions/fr.yml b/config/locales/views/category/deletions/fr.yml new file mode 100644 index 000000000..e82b7cbbb --- /dev/null +++ b/config/locales/views/category/deletions/fr.yml @@ -0,0 +1,14 @@ +--- +fr: + category: + deletions: + create: + success: Catégorie de transaction supprimée avec succès + new: + category: Catégorie + delete_and_leave_uncategorized: Supprimer "%{category_name}" et laisser non catégorisée + delete_and_recategorize: Supprimer "%{category_name}" et attribuer une nouvelle catégorie + delete_category: Supprimer la catégorie ? + explanation: En supprimant cette catégorie, chaque transaction qui a la catégorie "%{category_name}" + sera non catégorisée. Au lieu de les laisser non catégorisées, vous pouvez également attribuer une nouvelle catégorie ci-dessous. + replacement_category_prompt: Sélectionnez la catégorie diff --git a/config/locales/views/category/dropdowns/fr.yml b/config/locales/views/category/dropdowns/fr.yml new file mode 100644 index 000000000..e577feee2 --- /dev/null +++ b/config/locales/views/category/dropdowns/fr.yml @@ -0,0 +1,11 @@ +--- +fr: + category: + dropdowns: + row: + delete: Supprimer la catégorie + edit: Éditer la catégorie + show: + clear: Effacer la catégorie + no_categories: Aucune catégorie trouvée + search_placeholder: Rechercher diff --git a/config/locales/views/credit_cards/fr.yml b/config/locales/views/credit_cards/fr.yml new file mode 100644 index 000000000..106ce0c5a --- /dev/null +++ b/config/locales/views/credit_cards/fr.yml @@ -0,0 +1,25 @@ +--- +fr: + credit_cards: + edit: + edit: Éditer %{account} + form: + annual_fee: Frais annuels + annual_fee_placeholder: '99' + apr: TAEG + apr_placeholder: '15.99' + available_credit: Crédit disponible + available_credit_placeholder: '10000' + expiration_date: Date d'expiration + minimum_payment: Paiement minimum + minimum_payment_placeholder: '100' + new: + title: Saisir les détails de la carte de crédit + overview: + amount_owed: Montant dû + annual_fee: Frais annuels + apr: TAEG + available_credit: Crédit disponible + expiration_date: Date d'expiration + minimum_payment: Paiement minimum + unknown: Inconnu diff --git a/config/locales/views/cryptos/fr.yml b/config/locales/views/cryptos/fr.yml new file mode 100644 index 000000000..005207903 --- /dev/null +++ b/config/locales/views/cryptos/fr.yml @@ -0,0 +1,7 @@ +--- +fr: + cryptos: + edit: + edit: Éditer %{account} + new: + title: Saisir le solde du compte diff --git a/config/locales/views/depositories/fr.yml b/config/locales/views/depositories/fr.yml new file mode 100644 index 000000000..0a3d2eae6 --- /dev/null +++ b/config/locales/views/depositories/fr.yml @@ -0,0 +1,10 @@ +--- +fr: + depositories: + edit: + edit: Éditer %{account} + form: + none: Aucun + subtype_prompt: Sélectionnez le type de compte + new: + title: Saisir le solde du compte diff --git a/config/locales/views/email_confirmation_mailer/fr.yml b/config/locales/views/email_confirmation_mailer/fr.yml new file mode 100644 index 000000000..d32cc9b99 --- /dev/null +++ b/config/locales/views/email_confirmation_mailer/fr.yml @@ -0,0 +1,9 @@ +--- +fr: + email_confirmation_mailer: + confirmation_email: + body: Vous avez récemment demandé à modifier votre adresse e-mail. Cliquez sur le bouton ci-dessous pour confirmer cette modification. + cta: Confirmer la modification de l'e-mail + expiry_notice: Ce lien expirera dans %{hours} heures. + greeting: Bonjour ! + subject: '%{product_name} : Confirmez le changement de votre adresse mail' diff --git a/config/locales/views/entries/fr.yml b/config/locales/views/entries/fr.yml new file mode 100644 index 000000000..7f8c0d492 --- /dev/null +++ b/config/locales/views/entries/fr.yml @@ -0,0 +1,14 @@ +--- +fr: + entries: + create: + success: Entrée créée + destroy: + success: Entrée supprimée + empty: + description: Essayez d'ajouter une entrée, de modifier les filtres ou d'affiner votre recherche + title: Aucune entrée trouvée + loading: + loading: Chargement des entrées... + update: + success: Entrée mise à jour diff --git a/config/locales/views/family_exports/fr.yml b/config/locales/views/family_exports/fr.yml new file mode 100644 index 000000000..57e2b790d --- /dev/null +++ b/config/locales/views/family_exports/fr.yml @@ -0,0 +1,7 @@ +--- +fr: + family_exports: + list: + in_progress: En cours + complete: Terminé + failed: Échoué diff --git a/config/locales/views/holdings/fr.yml b/config/locales/views/holdings/fr.yml new file mode 100644 index 000000000..09c96ef83 --- /dev/null +++ b/config/locales/views/holdings/fr.yml @@ -0,0 +1,36 @@ +--- +fr: + holdings: + cash: + brokerage_cash: Liquidités de courtage + destroy: + success: Position supprimée + holding: + per_share: par action + shares: "%{qty} actions" + index: + average_cost: Coût moyen + holdings: Positions + name: Nom + new_holding: Nouvelle position + no_holdings: Aucune position à afficher. + return: Rendement total + weight: Poids + missing_price_tooltip: + description: Cet investissement a des valeurs manquantes et nous ne pouvons pas calculer + son retour ou sa valeur. + missing_data: Données manquantes + show: + avg_cost_label: Coût moyen + current_market_price_label: Prix de marché actuel + delete: Supprimer + delete_subtitle: Cela supprimera la position et toutes vos opérations associées sur ce compte. Cette action ne peut pas être annulée. + delete_title: Supprimer la position + history: Historique + overview: Aperçu + portfolio_weight_label: Poids du portefeuille + settings: Paramètres + ticker_label: Ticker + trade_history_entry: "%{qty} actions de %{security} à %{price}" + total_return_label: Rendement total + unknown: Inconnu diff --git a/config/locales/views/impersonation_sessions/fr.yml b/config/locales/views/impersonation_sessions/fr.yml new file mode 100644 index 000000000..e5a58194b --- /dev/null +++ b/config/locales/views/impersonation_sessions/fr.yml @@ -0,0 +1,15 @@ +--- +fr: + impersonation_sessions: + approve: + success: Demande approuvée + complete: + success: Session terminée + create: + success: Demande envoyée à l'utilisateur. En attente d'approbation. + join: + success: Session rejointe + leave: + success: Session quittée + reject: + success: Demande rejetée diff --git a/config/locales/views/imports/fr.yml b/config/locales/views/imports/fr.yml new file mode 100644 index 000000000..451cdefd8 --- /dev/null +++ b/config/locales/views/imports/fr.yml @@ -0,0 +1,78 @@ +--- +fr: + import: + cleans: + show: + description: Editez vos données dans le tableau ci-dessous. Les cellules rouges sont invalides. + errors_notice: Vous avez des erreurs dans vos données. Survolez l'erreur pour voir les détails. + errors_notice_mobile: Vous avez des erreurs dans vos données. Cliquez sur l'icône d'aide de l'erreur pour voir les détails. + title: Nettoyez vos données + configurations: + mint_import: + date_format_label: Format de date + show: + description: Sélectionnez les colonnes qui correspondent à chaque champ dans votre CSV. + title: Configurez votre importation + trade_import: + date_format_label: Format de date + transaction_import: + date_format_label: Format de date + confirms: + mappings: + create_account: Créer un compte + csv_mapping_label: "%{mapping} dans le CSV" + sure_mapping_label: "%{mapping} dans %{product_name}" + no_accounts: Vous n'avez pas encore de comptes. Veuillez créer un compte que nous pouvons utiliser pour les lignes non affectées de votre CSV ou retournez à l'étape Nettoyer et fournissez un nom de compte que nous pouvons utiliser. + rows_label: Lignes + unassigned_account: Avez-vous besoin de créer un nouveau compte pour les lignes non affectées? + show: + account_mapping_description: "Affectez tous les comptes de votre fichier importé aux comptes %{product_name} existants. Vous pouvez également ajouter de nouveaux comptes ou les laisser sans catégorie." + account_mapping_title: Attribuez vos comptes + account_type_mapping_description: Attribuez tous les types de comptes importés dans votre fichier à %{product_name} + account_type_mapping_title: Attribuez vos types de comptes + category_mapping_description: Attribuez toutes les catégories importées dans votre fichier aux catégories existantes de %{product_name}. Vous pouvez également ajouter de nouvelles catégories ou les laisser non catégorisées. + category_mapping_title: Attribuez vos catégories + tag_mapping_description: Attribuez toutes les étiquettes importées dans votre fichier aux étiquettes existantes de %{product_name}. Vous pouvez également ajouter de nouvelles étiquettes ou les laisser non catégorisées. + tag_mapping_title: Attribuez vos étiquettes + uploads: + show: + description: Coller ou téléverser votre fichier CSV ci-dessous. Veuillez examiner les instructions dans le tableau ci-dessous avant de commencer. + instructions_1: Voici un exemple de CSV avec des colonnes disponibles pour l'importation. + instructions_2: Votre CSV doit avoir une ligne d'en-tête + instructions_3: Vous pouvez nommer vos colonnes comme vous le souhaitez. Vous les associerez à un stade ultérieur. + instructions_4: Les colonnes marquées avec une étoile (*) sont des données requises. + instructions_5: Pas de virgules, pas de symboles monétaires et pas de parenthèses dans les nombres. + title: Importez vos données + imports: + empty: + message: Aucune importation pour l'instant. + new: Nouvelle Importation + import: + complete: Terminé + delete: Supprimer + failed: Échoué + in_progress: En cours + label: "%{type}: %{datetime}" + revert_failed: Annulation échouée + reverting: Annulation en cours + uploading: Traitement des lignes + view: Afficher + index: + imports: Importations + new: Nouvelle Importation + title: Import/Export + exports: Exportations + new_export: Nouvelle Exportation + no_exports: Aucune exportation pour l'instant. + new: + description: Vous pouvez manuellement importer divers types de données via CSV ou utiliser un des modèles d'importation que nous proposons comme Mint. + import_accounts: Importer les comptes + import_mint: Importer depuis Mint + import_portfolio: Importer les investissements + import_transactions: Importer les transactions + resume: Reprendre %{type} + sources: Sources + title: Nouvelle Importation CSV + ready: + description: Voici un résumé des nouveaux éléments qui seront ajoutés à votre compte une fois que vous aurez publié cette importation. + title: Confirmez vos données d'importation diff --git a/config/locales/views/investments/fr.yml b/config/locales/views/investments/fr.yml new file mode 100644 index 000000000..413cf2375 --- /dev/null +++ b/config/locales/views/investments/fr.yml @@ -0,0 +1,17 @@ +--- +fr: + investments: + edit: + edit: Modifier %{account} + form: + none: Aucun + subtype_prompt: Sélectionnez le type d'investissement + new: + title: Saisir le solde du compte + show: + chart_title: Valeur totale + value_tooltip: + cash: Liquidités + holdings: Titres + total: Valeur totale du portefeuille + total_value_tooltip: Le solde total du portefeuille correspond à la somme des liquidités (disponibles pour la négociation) et de la valeur marchande actuelle de vos titres. diff --git a/config/locales/views/invitation_mailer/fr.yml b/config/locales/views/invitation_mailer/fr.yml new file mode 100644 index 000000000..c34494313 --- /dev/null +++ b/config/locales/views/invitation_mailer/fr.yml @@ -0,0 +1,8 @@ +--- +fr: + invitation_mailer: + invite_email: + accept_button: Accepter l'invitation + body: "%{inviter} vous a invité à rejoindre sa famille %{family} sur %{product_name} !" + expiry_notice: Cette invitation expire dans %{days} jours + greeting: Bienvenue sur %{product_name} ! diff --git a/config/locales/views/invitations/fr.yml b/config/locales/views/invitations/fr.yml new file mode 100644 index 000000000..8d6e9b29f --- /dev/null +++ b/config/locales/views/invitations/fr.yml @@ -0,0 +1,19 @@ +--- +fr: + invitations: + create: + failure: Impossible d'envoyer l'invitation + success: Invitation envoyée avec succès + destroy: + failure: Il y a eu un problème pour supprimer l'invitation. + not_authorized: Vous n'êtes pas autorisé à gérer les invitations. + success: L'invitation a été supprimée avec succès. + new: + email_label: Adresse e-mail + email_placeholder: Saisissez une adresse e-mail + role_admin: Administrateur + role_label: Rôle + role_member: Membre + submit: Envoyer l'invitation + subtitle: Envoyez une invitation pour rejoindre votre compte familial sur %{product_name} + title: Inviter quelqu'un diff --git a/config/locales/views/invite_codes/fr.yml b/config/locales/views/invite_codes/fr.yml new file mode 100644 index 000000000..a222d3737 --- /dev/null +++ b/config/locales/views/invite_codes/fr.yml @@ -0,0 +1,6 @@ +--- +fr: + invite_codes: + index: + invite_code_description: Générez un nouveau code pour le voir affiché ici. Les codes générés qui ont été utilisés ne seront plus affichés. + no_invite_codes: Aucun code à afficher diff --git a/config/locales/views/layout/fr.yml b/config/locales/views/layout/fr.yml new file mode 100644 index 000000000..0790c6659 --- /dev/null +++ b/config/locales/views/layout/fr.yml @@ -0,0 +1,13 @@ +--- +fr: + layouts: + auth: + existing_account: Déjà un compte ? + no_account: Nouveau sur %{product_name} ? + sign_in: Se connecter + sign_up: Créer un compte + your_account: Votre compte + shared: + footer: + privacy_policy: Politique de confidentialité + terms_of_service: Conditions d'utilisation diff --git a/config/locales/views/loans/fr.yml b/config/locales/views/loans/fr.yml new file mode 100644 index 000000000..9cfa25bc3 --- /dev/null +++ b/config/locales/views/loans/fr.yml @@ -0,0 +1,23 @@ +--- +fr: + loans: + edit: + edit: Modifier %{account} + form: + interest_rate: Taux d'intérêt + interest_rate_placeholder: '5,25' + initial_balance: Solde initial du prêt + rate_type: Type de taux + term_months: Durée (mois) + term_months_placeholder: '360' + new: + title: Saisir les détails du prêt + overview: + interest_rate: Taux d'intérêt + monthly_payment: Paiement mensuel + not_applicable: N/A + original_principal: Principal initial + remaining_principal: Principal restant + term: Durée + type: Type + unknown: Inconnu diff --git a/config/locales/views/merchants/fr.yml b/config/locales/views/merchants/fr.yml new file mode 100644 index 000000000..f6291b4cb --- /dev/null +++ b/config/locales/views/merchants/fr.yml @@ -0,0 +1,27 @@ +--- +fr: + family_merchants: + create: + error: 'Erreur lors de la création du marchand : %{error}' + success: Marchand créé avec succès + destroy: + success: Marchand supprimé avec succès + edit: + title: Modifier le marchand + form: + name_placeholder: Nom du marchand + index: + empty: Aucun marchand pour l'instant + new: Nouveau marchand + title: Marchands + merchant: + confirm_accept: Supprimer le marchand + confirm_body: Êtes-vous sûr de vouloir supprimer ce marchand ? La suppression de ce marchand + dissocierait toutes les transactions associées et pourrait affecter vos rapports. + confirm_title: Supprimer le marchand ? + delete: Supprimer le marchand + edit: Modifier le marchand + new: + title: Nouveau marchand + update: + success: Marchand mis à jour avec succès diff --git a/config/locales/views/mfa/fr.yml b/config/locales/views/mfa/fr.yml new file mode 100644 index 000000000..e01939430 --- /dev/null +++ b/config/locales/views/mfa/fr.yml @@ -0,0 +1,38 @@ +--- +fr: + mfa: + backup_codes: + backup_codes_description: Chaque code ne peut être utilisé qu'une seule fois. Gardez ces codes + en sécurité et protégés. + backup_codes_title: Vos Codes de Sauvegarde + continue: Continuer vers les paramètres de sécurité + description: Enregistrez ces codes de sauvegarde dans un endroit sûr - vous en aurez besoin si + vous perdez l'accès à votre application d'authentification. + page_title: Codes de Sauvegarde + title: Enregistrer vos Codes de Sauvegarde + create: + invalid_code: Code de vérification invalide. Veuillez essayer à nouveau. + disable: + success: L'authentification à deux facteurs a été désactivée. + new: + code_label: Code de vérification + code_placeholder: Saisissez un code à 6 chiffres + description: Améliorez la sécurité de votre compte en configurant l'authentification à deux facteurs. + page_title: Configuration de l'authentification à deux facteurs + scan_description: Utilisez une application d'authentification comme Google Authenticator ou 1Password + pour scanner ce code QR. + scan_title: 1. Scanner le code QR + secret_description: Si vous ne pouvez pas scanner le code QR, entrez cette clé secrète manuellement + dans votre application d'authentification. + secret_title: Clé secrète (saisie manuelle) + title: Configurer l’authentification à deux facteurs + verify_button: Vérifier et activer l’authentification à deux facteurs + verify_description: Entrez le code à 6 chiffres de votre application d’authentification. + verify_title: 2. Saisissez le code de vérification + verify: + description: Entrez le code de votre application d'authentification pour continuer. + page_title: Vérifier l'Authentification à Deux Facteurs + title: Authentification à Deux Facteurs + verify_button: Vérifier + verify_code: + invalid_code: Code d'authentification invalide. Veuillez essayer à nouveau. diff --git a/config/locales/views/onboardings/fr.yml b/config/locales/views/onboardings/fr.yml new file mode 100644 index 000000000..64c4f3ead --- /dev/null +++ b/config/locales/views/onboardings/fr.yml @@ -0,0 +1,27 @@ +--- +fr: + onboardings: + header: + sign_out: Déconnexion + preferences: + currency: Monnaie + date_format: Format de date + example: Compte d'exemple + locale: Langue + preview: Prévisualiser la façon dont les données s'affichent en fonction des préférences. + submit: Terminer + subtitle: Configurons vos préférences. + title: Configurez vos préférences + profile: + country: Pays + first_name: Prénom + household_name: Nom du foyer (si applicable) + last_name: Nom de famille + profile_image: Photo de profil + submit: Continuer + subtitle: Complétons votre profil. + title: Configurons les bases + show: + message: Nous sommes vraiment excités que vous soyez ici. Dans la prochaine étape, nous allons vous poser quelques questions pour compléter votre profil et ensuite configurer votre compte. + setup: Configurer le compte + title: Rencontrez %{product_name} diff --git a/config/locales/views/other_assets/fr.yml b/config/locales/views/other_assets/fr.yml new file mode 100644 index 000000000..bb80324e4 --- /dev/null +++ b/config/locales/views/other_assets/fr.yml @@ -0,0 +1,7 @@ +--- +fr: + other_assets: + edit: + edit: Modifier %{account} + new: + title: Saisir les détails de l'actif diff --git a/config/locales/views/other_liabilities/fr.yml b/config/locales/views/other_liabilities/fr.yml new file mode 100644 index 000000000..8e8ec2355 --- /dev/null +++ b/config/locales/views/other_liabilities/fr.yml @@ -0,0 +1,7 @@ +--- +fr: + other_liabilities: + edit: + edit: Modifier %{account} + new: + title: Saisir les détails de la dette diff --git a/config/locales/views/pages/fr.yml b/config/locales/views/pages/fr.yml new file mode 100644 index 000000000..4eff5bc09 --- /dev/null +++ b/config/locales/views/pages/fr.yml @@ -0,0 +1,25 @@ +--- +fr: + pages: + changelog: + title: Nouveautés + dashboard: + welcome_back: Content de vous revoir + happening_with_finance: Voici ce qui se passe avec vos finances + new: Nouveau + cashflow: + title: Flux de trésorerie + no_cashflow: Aucune donnée de flux de trésorerie pour cette période + add_transactions_to_display_cashflow: Ajoutez des transactions pour afficher les données de flux de trésorerie ou étendre la période + new: Ajouter une transaction + net_worth_chart: + data_not_available: Données indisponibles pour la période sélectionnée + title: Valeur nette + no_account_empty_state: + new_account: Nouveau compte + no_account_subtitle: Comme aucun compte n'a été ajouté, il n'y a pas de données à afficher. Ajoutez vos premiers comptes pour commencer à consulter les données du tableau de bord. + no_account_title: Pas encore de comptes + no_account_graph_placeholder: + no_account_yet: Pas encore de compte + add_account_to_display: Ajouter des comptes pour afficher les données de valeur nette + new: Ajouter un compte diff --git a/config/locales/views/password_mailer/fr.yml b/config/locales/views/password_mailer/fr.yml new file mode 100644 index 000000000..9d0d148e8 --- /dev/null +++ b/config/locales/views/password_mailer/fr.yml @@ -0,0 +1,8 @@ +--- +fr: + password_mailer: + password_reset: + cta: Réinitialiser votre mot de passe + ignore_if_not_requested: Si vous n'avez pas fait cette demande, vous pouvez ignorer cet e-mail. + request_made: Une demande a été faite pour réinitialiser votre mot de passe %{product_name}. Cliquez sur le lien pour le réinitialiser. + subject: '%{product_name} : Réinitialiser votre mot de passe' diff --git a/config/locales/views/password_resets/fr.yml b/config/locales/views/password_resets/fr.yml new file mode 100644 index 000000000..e7ba3798f --- /dev/null +++ b/config/locales/views/password_resets/fr.yml @@ -0,0 +1,13 @@ +--- +fr: + password_resets: + edit: + title: Réinitialiser votre mot de passe + new: + requested: Veuillez vérifier votre boîte mail pour un lien de réinitialisation de votre mot de passe. + submit: Réinitialiser votre mot de passe + title: Réinitialiser votre mot de passe + back: Retour + update: + invalid_token: Jeton invalide. + success: Votre mot de passe a été réinitialisé. diff --git a/config/locales/views/passwords/fr.yml b/config/locales/views/passwords/fr.yml new file mode 100644 index 000000000..08db727fc --- /dev/null +++ b/config/locales/views/passwords/fr.yml @@ -0,0 +1,10 @@ +--- +fr: + passwords: + edit: + password: Nouveau mot de passe + password_challenge: Mot de passe actuel + submit: Réinitialiser le mot de passe + title: Mettre à jour le mot de passe + update: + success: Votre mot de passe a été réinitialisé. diff --git a/config/locales/views/plaid_items/fr.yml b/config/locales/views/plaid_items/fr.yml new file mode 100644 index 000000000..a6371ccbe --- /dev/null +++ b/config/locales/views/plaid_items/fr.yml @@ -0,0 +1,23 @@ +--- +fr: + plaid_items: + create: + success: Compte lié avec succès. Veuillez patienter pendant que les comptes se synchronisent. + destroy: + success: Les comptes prévus pour la suppression ont été marqués. + plaid_item: + add_new: Ajouter une nouvelle connexion + confirm_accept: Supprimer l'institution + confirm_body: Cela supprimera de manière permanente tous les comptes de ce groupe ainsi que toutes les données associées. + confirm_title: Voulez-vous vraiment supprimer cette institution ? + connection_lost: Connexion perdue + connection_lost_description: Cette connexion n'est plus valide. Vous devrez la supprimer et en ajouter une nouvelle pour pouvoir continuer la synchronisation des données. + delete: Supprimer + error: Une erreur s'est produite lors de la synchronisation des données + no_accounts_description: Nous ne pouvons pas charger des comptes depuis cette institution financière. + no_accounts_title: Aucun compte trouvé + requires_update: Re-authentification requise + status: Dernière synchronisation il y a %{timestamp} + status_never: Synchronisation de données requise + syncing: Synchronisation... + update: Mettre à jour la connexion diff --git a/config/locales/views/properties/fr.yml b/config/locales/views/properties/fr.yml new file mode 100644 index 000000000..5061213e8 --- /dev/null +++ b/config/locales/views/properties/fr.yml @@ -0,0 +1,32 @@ +--- +fr: + properties: + edit: + edit: Modifier %{account} + form: + address_line1: Adresse + address_line1_placeholder: 123, rue de la Paix + area: Surface habitable + area_placeholder: '2000' + area_unit: Unité de mesure + country: Pays + country_placeholder: FR + locality: Ville + locality_placeholder: Paris + none: Aucun + postal_code: Code postal/ZIP + postal_code_placeholder: '75000' + region: Région/Département + region_placeholder: Île-de-France + subtype_prompt: Sélectionnez le type de propriété + year_built: Année de construction + year_built_placeholder: '2000' + new: + title: Saisir les détails de la propriété + overview: + living_area: Surface habitable + market_value: Valeur du marché + purchase_price: Prix d'achat + trend: Tendance + unknown: Inconnu + year_built: Année de construction diff --git a/config/locales/views/registrations/fr.yml b/config/locales/views/registrations/fr.yml new file mode 100644 index 000000000..6ccbedeaf --- /dev/null +++ b/config/locales/views/registrations/fr.yml @@ -0,0 +1,24 @@ +--- +fr: + helpers: + label: + user: + invite_code: Code d'invitation + submit: + user: + create: Continuer + registrations: + create: + failure: Il y a eu un problème lors de l'inscription. + invalid_invite_code: Code d'invitation invalide, veuillez essayer à nouveau. + success: Vous avez été inscrit avec succès. + new: + invitation_message: "%{inviter} vous a invité à rejoindre en tant que %{role}" + join_family_title: Rejoindre %{family} + role_admin: administrateur + role_member: membre + submit: Créer un compte + title: Créez votre compte + welcome_body: Pour commencer, vous devez créer un nouveau compte. Vous pourrez ensuite configurer des paramètres supplémentaires à l'intérieur de l'application. + welcome_title: Bienvenue sur %{product_name} ! + password_placeholder: Entrez votre mot de passe diff --git a/config/locales/views/sessions/fr.yml b/config/locales/views/sessions/fr.yml new file mode 100644 index 000000000..b56a355df --- /dev/null +++ b/config/locales/views/sessions/fr.yml @@ -0,0 +1,15 @@ +--- +fr: + sessions: + create: + invalid_credentials: Adresse e-mail ou mot de passe invalide. + destroy: + logout_successful: Vous avez été déconnecté avec succès. + new: + email: Adresse e-mail + email_placeholder: nom@exemple.fr + forgot_password: Mot de passe oublié ? + password: Mot de passe + submit: Se connecter + title: Connectez-vous à votre compte + password_placeholder: Entrez votre mot de passe diff --git a/config/locales/views/settings/api_keys/fr.yml b/config/locales/views/settings/api_keys/fr.yml new file mode 100644 index 000000000..d039e05c1 --- /dev/null +++ b/config/locales/views/settings/api_keys/fr.yml @@ -0,0 +1,75 @@ +--- +fr: + settings: + api_keys_controller: + success: "Votre clé API a été créée avec succès." + revoked_successfully: "La clé API a été révoquée avec succès." + revoke_failed: "Échec de la révocation de la clé API." + scope_descriptions: + read_accounts: "Afficher les comptes" + read_transactions: "Afficher les transactions" + read_balances: "Afficher les soldes" + write_transactions: "Créer des transactions" + api_keys: + show: + title: "Gestion des clés API" + no_api_key: + title: "Clé API" + description: "Accédez de manière programmée à vos données %{product_name} avec une clé API sécurisée." + what_you_can_do: "Ce que vous pouvez faire avec l'API :" + feature_1: "Accéder à vos données de compte de manière automatisée" + feature_2: "Construire des intégrations et applications personnalisées" + feature_3: "Automatiser la récupération et l'analyse des données" + security_note_title: "Sécurité avant tout" + security_note: "Votre clé API aura des autorisations limitées en fonction des domaines que vous sélectionnez. Vous ne pouvez avoir qu'une seule clé API active à la fois." + create_api_key: "Créer une clé API" + current_api_key: + title: "Votre Clé API" + description: "Votre clé API active est prête à être utilisée. Gardez-la en sécurité et ne la partagez jamais publiquement." + active: "Active" + key_name: "Nom" + created_at: "Créée le" + last_used: "Dernière utilisation" + expires: "Expire le" + ago: "il y a" + never_used: "Jamais utilisée" + never_expires: "N'expire jamais" + permissions: "Autorisations" + usage_instructions_title: "Comment utiliser votre clé API" + usage_instructions: "Incluez votre clé API dans l'en-tête X-Api-Key lors des requêtes à l'API %{product_name} :" + regenerate_key: "Créer une nouvelle clé" + revoke_key: "Révoquer la clé" + revoke_confirmation: "Êtes-vous sûr de vouloir révoquer cette clé API ? Cette action ne peut pas être annulée et désactivera immédiatement toutes les applications utilisant cette clé." + new: + title: "Créer une clé API" + create_new_key: "Créer une nouvelle clé API" + description: "Configurez votre nouvelle clé API avec un nom descriptif et des autorisations appropriées." + name_label: "Nom de la clé API" + name_placeholder: "Application de production, Tableau de bord analytique" + name_help: "Choisissez un nom descriptif pour vous aider à identifier l'objectif de cette clé." + permissions_label: "Autorisations" + permissions_help: "Sélectionnez les autorisations nécessaires pour votre clé API. Vous pouvez toujours créer une nouvelle clé avec des autorisations différentes." + scope_details: + read_accounts: "Afficher les informations du compte, les soldes et les données au niveau du compte" + read_transactions: "Afficher les données de transaction, les catégories et les détails des transactions" + read_balances: "Afficher les données historiques des soldes et les tendances des valeurs des comptes" + write_transactions: "Créer et mettre à jour des enregistrements de transaction (prochainement disponible)" + security_warning_title: "Avertissement important de sécurité" + security_warning: "Votre clé API sera affichée uniquement une fois après sa création. Gardez-la en sécurité et ne la partagez jamais publiquement. Si vous l'avez perdue, vous devrez en créer une nouvelle." + create_key: "Créer une clé API" + cancel: "Annuler" + created: + title: "Clé API créée" + success_title: "Clé API créée avec succès" + success_description: "Votre nouvelle clé API est prête à être utilisée. Assurez-vous de la copier maintenant, car vous ne pourrez plus l'afficher par la suite." + your_api_key: "Votre clé API" + key_name: "Nom" + permissions: "Autorisations" + critical_warning_title: "⚠️ Critique : Sauvegardez votre clé API maintenant" + critical_warning_1: "C'est le seul moment où vous verrez votre clé API en clair." + critical_warning_2: "Copiez-la et stockez-la de manière sécurisée dans votre gestionnaire de mots de passe ou dans l'application." + critical_warning_3: "Si vous l'avez perdue, vous devrez en créer une nouvelle." + usage_instructions_title: "Démarrage rapide" + usage_instructions: "Utilisez votre clé API en l'incluant dans l'en-tête X-Api-Key :" + copy_key: "Copier la clé API" + continue: "Continuer vers les paramètres de la clé API" diff --git a/config/locales/views/settings/fr.yml b/config/locales/views/settings/fr.yml new file mode 100644 index 000000000..3abe987a0 --- /dev/null +++ b/config/locales/views/settings/fr.yml @@ -0,0 +1,119 @@ +--- +fr: + settings: + ai_prompts: + show: + page_title: Prompts IA + openai_label: OpenAI + prompt_instructions: Instructions pour les prompts + main_system_prompt: + title: Prompt Système Principal + subtitle: Instructions fondamentales qui définissent le comportement de l'assistant AI dans toutes les conversations de chat + transaction_categorizer: + title: Catégorisation des transactions + subtitle: L'IA catégorise automatiquement vos transactions en fonction de vos catégories définies + merchant_detector: + title: Détection du vendeur + subtitle: L'IA identifie et enrichit les données de transaction avec des informations sur le vendeur + billings: + show: + page_title: Facturation + subscription_subtitle: Mettez à jour votre abonnement et vos détails de facturation + subscription_title: Gérer l'abonnement + preferences: + show: + country: Pays + currency: Devise + date_format: Format de date + general_subtitle: Configurez vos préférences + general_title: Général + default_period: Période par défaut + default_account_order: Ordre d'affichage des comptes par défaut + language: Langue + page_title: Préférences + theme_dark: Sombre + theme_light: Clair + theme_subtitle: Choisissez un thème préféré pour l'application + theme_system: Système + theme_title: Thème + timezone: Fuseau horaire + profiles: + destroy: + cannot_remove_self: Vous ne pouvez pas vous enlever de votre compte. + member_removal_failed: Il y a eu un problème lors de la suppression du membre. + member_removed: Le membre a été supprimé avec succès. + not_authorized: Vous n'êtes pas autorisé à supprimer les membres. + show: + confirm_delete: + body: Êtes-vous sûr(e) de vouloir supprimer définitivement votre compte ? Cette action est irréversible. + title: Supprimer le compte? + confirm_reset: + body: Êtes-vous sûr(e) de vouloir réinitialiser votre compte ? Cela supprimera tous vos comptes, catégories, vendeurs, étiquettes et autres données. Cette action ne peut pas être annulée. + title: Réinitialiser le compte? + confirm_reset_with_sample_data: + body: Êtes-vous sûr(e) de vouloir réinitialiser votre compte et charger des données d'exemple ? Cela supprimera vos données existantes et les remplacera par des données de démonstration afin que vous puissiez explorer Sure en toute sécurité. + title: Réinitialiser le compte et charger des données d'exemple ? + confirm_remove_invitation: + body: Êtes-vous sûr(e) de vouloir supprimer l'invitation pour %{email}? + title: Supprimer l'invitation + confirm_remove_member: + body: Êtes-vous sûr(e) de vouloir supprimer %{name} de votre compte? + title: Supprimer le membre + danger_zone_title: Zone dangereuse + delete_account: Supprimer le compte + delete_account_warning: La suppression de votre compte entraînera la suppression permanente de toutes vos données et ne pourra pas être annulée. + reset_account: Réinitialiser le compte + reset_account_warning: La réinitialisation de votre compte supprimera tous vos comptes, catégories, vendeurs, étiquettes et autres données, mais gardera votre compte utilisateur intact. + reset_account_with_sample_data: Réinitialiser et précharger + reset_account_with_sample_data_warning: Supprime toutes vos données existantes puis charge des données d'exemple afin que vous puissiez explorer avec un environnement pré-rempli. + email: E-mail + first_name: Prénom + household_form_input_placeholder: Entrez le nom du foyer + household_form_label: Nom du foyer + household_subtitle: Invitez des membres de la famille, des partenaires et d'autres personnes. Les personnes invitées peuvent se connecter à votre foyer et accéder aux comptes partagés. + household_title: Foyer + invitation_link: Lien d'invitation + invite_member: Ajouter un membre + last_name: Nom de famille + page_title: Informations du profil + pending: En attente + profile_subtitle: Personnalisez l'apparence de votre profil sur %{product_name} + profile_title: Personnel + remove_invitation: Supprimer l'invitation + remove_member: Supprimer le membre + save: Enregistrer + securities: + show: + page_title: Sécurité + settings_nav: + accounts_label: Comptes + advanced_section_title: Avancé + ai_prompts_label: Prompts IA + api_key_label: Clé API + billing_label: Facturation + categories_label: Catégories + feedback_label: Retour d'information + general_section_title: Général + imports_label: Importer/Exporter + logout: Se déconnecter + merchants_label: Vendeurs + guides_label: Guides + other_section_title: Plus + preferences_label: Préférences + profile_label: Informations du profil + rules_label: Règles + security_label: Sécurité + self_hosting_label: Auto-hébergement + tags_label: Étiquettes + transactions_section_title: Transactions + whats_new_label: Dernières nouvelles + api_keys_label: Clés API + bank_sync_label: Synchronisation de la banque + settings_nav_link_large: + next: Suivant + previous: Précédent + user_avatar_field: + accepted_formats: JPG ou PNG. 5MB max. + choose: Charger une photo + choose_label: (facultatif) + change: Changer de photo diff --git a/config/locales/views/settings/hostings/fr.yml b/config/locales/views/settings/hostings/fr.yml new file mode 100644 index 000000000..0b79b894b --- /dev/null +++ b/config/locales/views/settings/hostings/fr.yml @@ -0,0 +1,50 @@ +--- +fr: + settings: + hostings: + invite_code_settings: + description: Chaque nouvel utilisateur qui rejoint votre instance de %{product_name} ne peut le faire qu'avec un code d'invitation + email_confirmation_description: Lorsque cette option est activée, les utilisateurs doivent confirmer leur adresse e-mail lors du changement. + email_confirmation_title: Exiger la confirmation de l'e-mail + generate_tokens: Générer un nouveau code + generated_tokens: Codes générés + title: Requérir un code d'invitation pour s'inscrire + show: + general: Services externes + invites: Codes d'invitation + title: Auto-hébergement + danger_zone: Zone dangereuse + clear_cache: Effacer le cache de données + clear_cache_warning: L'effacement du cache de données supprimera tous les taux de change, les cours des titres, les soldes des comptes et d’autres données. Cela ne supprimera pas les comptes, les transactions, les catégories ou d’autres données possédées par les utilisateurs. + confirm_clear_cache: + title: Effacer le cache de données ? + body: Êtes-vous sûr(e) de vouloir effacer le cache de données ? Cela supprimera tous les taux de change, les cours des titres, les soldes des comptes et d’autres données. Cette action ne peut pas être annulée. + brand_fetch_settings: + description: Saisissez l'ID client fourni par Brand Fetch + label: ID client + placeholder: Entrez votre ID client ici + title: Brand Fetch + openai_settings: + description: Saisissez le jeton d'accès et configurez éventuellement un fournisseur compatible OpenAI personnalisé + env_configured_message: Configuré avec succès via les variables d'environnement. + access_token_label: Jeton d'accès + access_token_placeholder: Entrez votre jeton d'accès ici + uri_base_label: URL de base de l'API (Optionnel) + uri_base_placeholder: "https://api.openai.com/v1 (par défaut)" + model_label: Modèle (Optionnel) + model_placeholder: "gpt-4.1 (par défaut)" + title: OpenAI + twelve_data_settings: + api_calls_used: "%{used} / %{limit} Appels API journaliers utilisés (%{percentage})" + description: Saisissez la clé API fournie par Twelve Data + env_configured_message: Configurée avec succès via la variable d'environnement TWELVE_DATA_API_KEY. + label: Clé API + placeholder: Entrez votre clé API ici + plan: "%{plan} Plan" + title: Twelve Data + update: + failure: Valeur de paramètre invalide + success: Paramètres mis à jour + clear_cache: + cache_cleared: Le cache de données a été effacé. Cela peut prendre quelques moments pour être terminé. + not_authorized: Vous n'êtes pas autorisé(e) à effectuer cette action diff --git a/config/locales/views/settings/securities/fr.yml b/config/locales/views/settings/securities/fr.yml new file mode 100644 index 000000000..2c72ed9e7 --- /dev/null +++ b/config/locales/views/settings/securities/fr.yml @@ -0,0 +1,10 @@ +--- +fr: + settings: + securities: + show: + disable_mfa: Désactiver la 2FA + disable_mfa_confirm: Êtes-vous sûr(e) de vouloir désactiver l'authentification à deux facteurs ? Cela rendra votre compte moins sécurisé. + enable_mfa: Activer la 2FA + mfa_description: Ajoutez une couche supplémentaire de sécurité à votre compte en exigeant un code de votre application d'authentificateur lors de la connexion + mfa_title: Authentification à deux facteurs diff --git a/config/locales/views/shared/fr.yml b/config/locales/views/shared/fr.yml new file mode 100644 index 000000000..0ecdb2d32 --- /dev/null +++ b/config/locales/views/shared/fr.yml @@ -0,0 +1,26 @@ +--- +fr: + breadcrumbs: + home: Accueil + dashboard: Tableau de bord + accounts: Comptes + merchants: Marchands + categories: Catégories + tags: Étiquettes + rules: Règles + transactions: Transactions + budgets: Budgets + imports: Importations + chats: Assistant + shared: + confirm_modal: + accept: Confirmer + body_html: "

Vous ne pourrez pas annuler cette action

" + cancel: Annuler + title: Êtes-vous sûr ? + money_field: + label: Montant + syncing_notice: + syncing: Synchronisation des données de compte... + trend_change: + no_change: "pas de changement" diff --git a/config/locales/views/simplefin_items/fr.yml b/config/locales/views/simplefin_items/fr.yml new file mode 100644 index 000000000..69d99a33d --- /dev/null +++ b/config/locales/views/simplefin_items/fr.yml @@ -0,0 +1,47 @@ +--- +fr: + simplefin_items: + create: + success: Connexion SimpleFIN ajoutée avec succès ! Vos comptes apparaîtront sous peu lors de la synchronisation en arrière-plan. + errors: + blank_token: Veuillez entrer un jeton de configuration SimpleFIN. + invalid_token: Jeton de configuration invalide. Veuillez vérifier que vous avez copié le jeton complet depuis SimpleFIN Bridge. + token_compromised: Le jeton de configuration est peut-être compromis, expiré ou déjà utilisé. Veuillez en créer un nouveau. + create_failed: "Échec de la connexion : %{message}" + unexpected: Une erreur inattendue s'est produite. Veuillez réessayer ou contacter le support. + destroy: + success: La connexion SimpleFIN va être supprimée + update: + success: Connexion SimpleFIN mise à jour avec succès ! Vos comptes sont en cours de reconnexion. + errors: + blank_token: Veuillez entrer un jeton de configuration SimpleFIN. + invalid_token: Jeton de configuration invalide. Veuillez vérifier que vous avez copié le jeton complet depuis SimpleFIN Bridge. + token_compromised: Le jeton de configuration est peut-être compromis, expiré ou déjà utilisé. Veuillez en créer un nouveau. + update_failed: "Échec de la mise à jour de la connexion : %{message}" + unexpected: Une erreur inattendue s'est produite. Veuillez réessayer ou contacter le support. + edit: + setup_token: + label: "Jeton de configuration SimpleFIN :" + placeholder: "Collez votre jeton de configuration SimpleFIN ici..." + help_text: "Le jeton doit être une longue chaîne commençant par des lettres et des chiffres" + complete_account_setup: + success: Les comptes SimpleFIN ont été configurés avec succès ! Vos transactions et positions sont en cours d'importation en arrière-plan. + simplefin_item: + add_new: Ajouter une nouvelle connexion + confirm_accept: Supprimer la connexion + confirm_body: Cela supprimera définitivement tous les comptes de ce groupe et toutes les données associées. + confirm_title: Supprimer la connexion SimpleFIN ? + delete: Supprimer + deletion_in_progress: "(suppression en cours...)" + error: Une erreur s'est produite lors de la synchronisation des données + no_accounts_description: Cette connexion n'a pas encore de comptes synchronisés. + no_accounts_title: Aucun compte trouvé + requires_update: Nécessite une ré-authentification + setup_needed: Nouveaux comptes prêts à être configurés + setup_description: Choisissez les types de comptes pour vos comptes SimpleFIN nouvellement importés. + setup_action: Configurer les nouveaux comptes + status: Dernière synchronisation il y a %{timestamp} + status_never: Jamais synchronisé + status_with_summary: "Dernière synchronisation il y a %{timestamp} • %{summary}" + syncing: Synchronisation... + update: Mettre à jour la connexion diff --git a/config/locales/views/subscriptions/fr.yml b/config/locales/views/subscriptions/fr.yml new file mode 100644 index 000000000..212de0530 --- /dev/null +++ b/config/locales/views/subscriptions/fr.yml @@ -0,0 +1,3 @@ +fr: + subscriptions: + self_hosted_alert: "%{product_name} n'est pas disponible en mode auto-hébergé." diff --git a/config/locales/views/tag/deletions/fr.yml b/config/locales/views/tag/deletions/fr.yml new file mode 100644 index 000000000..1cee1ee9a --- /dev/null +++ b/config/locales/views/tag/deletions/fr.yml @@ -0,0 +1,13 @@ +--- +fr: + tag: + deletions: + create: + deleted: Étiquette supprimée + new: + delete_and_leave_uncategorized: Supprimer "%{tag_name}" + delete_and_recategorize: Supprimer "%{tag_name}" et attribuer une nouvelle étiquette + delete_tag: Supprimer l'étiquette ? + explanation: "%{tag_name} sera supprimé des transactions et d'autres entités catégorisables. Au lieu de les laisser non catégorisées, vous pouvez également attribuer une nouvelle étiquette ci-dessous." + replacement_tag_prompt: Sélectionnez l'étiquette + tag: Étiquette diff --git a/config/locales/views/tags/fr.yml b/config/locales/views/tags/fr.yml new file mode 100644 index 000000000..898cc97f6 --- /dev/null +++ b/config/locales/views/tags/fr.yml @@ -0,0 +1,23 @@ +--- +fr: + tags: + create: + created: Étiquette créée + error: "Erreur lors de la création de l'étiquette : %{error}" + destroy: + deleted: Étiquette supprimée + edit: + edit: Éditer l'étiquette + form: + placeholder: Nom de l'étiquette + index: + empty: Aucune étiquette pour le moment + new: Nouvelle étiquette + tags: Étiquettes + new: + new: Nouvelle étiquette + tag: + delete: Supprimer + edit: Éditer + update: + updated: Étiquette mise à jour diff --git a/config/locales/views/trades/fr.yml b/config/locales/views/trades/fr.yml new file mode 100644 index 000000000..7332d4eb6 --- /dev/null +++ b/config/locales/views/trades/fr.yml @@ -0,0 +1,38 @@ +--- +fr: + trades: + form: + account: Compte de transfert (facultatif) + account_prompt: Rechercher un compte + amount: Montant + holding: Symbole boursier + price: Prix par action + qty: Quantité + submit: Ajouter la transaction + ticker_placeholder: AAPL + type: Type + header: + buy: Acheter + current_market_price_label: Prix du marché actuel + overview: Aperçu + purchase_price_label: Prix d'achat + purchase_qty_label: Quantité achetée + sell: Vendre + symbol_label: Symbole + total_return_label: Gain/perte non réalisé(e) + new: + title: Nouvelle transaction + show: + additional: Détails supplémentaires + cost_per_share_label: Coût par action + date_label: Date + delete: Supprimer + delete_subtitle: Cette action ne peut pas être annulée + delete_title: Supprimer la transaction + details: Détails + exclude_subtitle: Cette transaction ne sera pas incluse dans les rapports et les calculs + exclude_title: Exclure des analyses + note_label: Note + note_placeholder: Ajoutez tout commentaire supplémentaire ici... + quantity_label: Quantité + settings: Paramètres diff --git a/config/locales/views/transactions/fr.yml b/config/locales/views/transactions/fr.yml new file mode 100644 index 000000000..e4f6960e9 --- /dev/null +++ b/config/locales/views/transactions/fr.yml @@ -0,0 +1,82 @@ +--- +fr: + transactions: + form: + account: Compte + account_prompt: Sélectionnez un compte + amount: Montant + category: Catégorie + category_prompt: Sélectionnez une catégorie + date: Date + description: Libellé + description_placeholder: Libellé de la transaction + expense: Dépense + income: Revenu + none: (aucun) + note_label: Notes + note_placeholder: Entrez une note + submit: Ajouter la transaction + tags_label: Étiquettes + transfer: Transfert + new: + new_transaction: Nouvelle transaction + show: + account_label: Compte + amount: Montant + category_label: Catégorie + date_label: Date + delete: Supprimer + delete_subtitle: Cette action supprime définitivement la transaction, affecte vos soldes historiques et ne peut pas être annulée. + delete_title: Supprimer la transaction + details: Détails + merchant_label: Marchand + name_label: Nom + nature: Type + none: "(aucun)" + note_label: Notes + note_placeholder: Entrez une note + overview: Aperçu + settings: Paramètres + tags_label: Étiquettes + uncategorized: "(non catégorisée)" + header: + edit_categories: Modifier les catégories + edit_imports: Modifier les importations + edit_merchants: Modifier les marchands + edit_tags: Modifier les étiquettes + import: Importer + index: + transaction: transaction + transactions: transactions + searches: + filters: + amount_filter: + equal_to: Égal à + greater_than: Supérieur à + less_than: Inférieur à + placeholder: '0' + badge: + expense: Dépense + income: Revenu + on_or_after: le %{date} et après + on_or_before: le %{date} et avant + transfer: Transfert + type_filter: + expense: Dépense + income: Revenu + transfer: Transfert + menu: + account_filter: Compte + amount_filter: Montant + apply: Appliquer + cancel: Annuler + category_filter: Catégorie + clear_filters: Effacer les filtres + date_filter: Date + merchant_filter: Marchand + tag_filter: Étiquette + type_filter: Type + search: + equal_to: égal à + greater_than: supérieur à + less_than: inférieur à diff --git a/config/locales/views/transfers/fr.yml b/config/locales/views/transfers/fr.yml new file mode 100644 index 000000000..3b881d6d9 --- /dev/null +++ b/config/locales/views/transfers/fr.yml @@ -0,0 +1,30 @@ +--- +fr: + transfers: + create: + success: Transfert créé + destroy: + success: Transfert supprimé + form: + amount: Montant + date: Date + expense: Dépense + from: De + income: Revenu + select_account: Sélectionner un compte + submit: Créer le transfert + to: Vers + transfer: Transfert + new: + title: Nouveau transfert + show: + delete: Supprimer le transfert + delete_subtitle: Ce transfert est supprimé. Il ne supprimera pas les transactions sous-jacentes. + delete_title: Voulez-vous vraiment supprimer ce transfert? + details: Détails + note_label: Notes + note_placeholder: Ajoutez une note à ce transfert + overview: Aperçu + settings: Paramètres + update: + success: Transfert mis à jour diff --git a/config/locales/views/users/fr.yml b/config/locales/views/users/fr.yml new file mode 100644 index 000000000..26f68285b --- /dev/null +++ b/config/locales/views/users/fr.yml @@ -0,0 +1,14 @@ +--- +fr: + users: + destroy: + success: Votre compte a été supprimé. + update: + email_change_failed: Échec du changement d'adresse e-mail. + email_change_initiated: Veuillez vérifier votre nouvelle adresse e-mail pour les instructions de confirmation. + success: Votre profil a été mis à jour. + reset: + success: Votre compte a été réinitialisé. Les données seront supprimées en arrière-plan dans un certain temps. + unauthorized: Vous n'êtes pas autorisé à effectuer cette action. + reset_with_sample_data: + success: Votre compte a été réinitialisé et les données d'exemple sont en cours de préparation. Vous verrez les données de démonstration sous peu. diff --git a/config/locales/views/valuations/fr.yml b/config/locales/views/valuations/fr.yml new file mode 100644 index 000000000..d8d59a104 --- /dev/null +++ b/config/locales/views/valuations/fr.yml @@ -0,0 +1,30 @@ +--- +fr: + valuations: + form: + amount: Montant + submit: Ajouter une mise à jour du solde + header: + balance: Solde + index: + change: changement + date: date + new_entry: Nouvelle entrée + no_valuations: Aucune évaluation pour ce compte pour l'instant + valuations: Évaluations + value: valeur + new: + title: Nouveau solde + show: + amount: Montant + date_label: Date + delete: Supprimer + delete_subtitle: Cette action ne peut pas être annulée + delete_title: Supprimer l'entrée + details: Détails + name_label: Nom + name_placeholder: Entrez un nom pour cette entrée + note_label: Notes + note_placeholder: Ajoutez tout détail supplémentaire à ce bilan + overview: Aperçu + settings: Paramètres diff --git a/config/locales/views/vehicles/fr.yml b/config/locales/views/vehicles/fr.yml new file mode 100644 index 000000000..5d99e2809 --- /dev/null +++ b/config/locales/views/vehicles/fr.yml @@ -0,0 +1,25 @@ +--- +fr: + vehicles: + edit: + edit: Modifier %{account} + form: + make: Marque + make_placeholder: Toyota + mileage: Kilométrage + mileage_placeholder: '15000' + mileage_unit: Unité + model: Modèle + model_placeholder: Camry + year: Année + year_placeholder: '2023' + new: + title: Saisir les détails du véhicule + overview: + current_price: Prix actuel + make_model: Marque et modèle + mileage: Kilométrage + purchase_price: Prix d'achat + trend: Tendance + unknown: Inconnu + year: Année