@firecms/core
Version:
Awesome Firebase/Firestore-based headless open-source CMS
692 lines (645 loc) • 47 kB
text/typescript
import { FireCMSTranslations } from "../types/translations";
export const fr: FireCMSTranslations = {
// ─── Form actions ────────────────────────────────────────────
save: "Enregistrer",
create: "Créer",
create_copy: "Créer une copie",
save_and_close: "Enregistrer et fermer",
create_copy_and_close: "Créer une copie et fermer",
create_and_close: "Créer et fermer",
discard: "Ignorer",
clear: "Effacer",
cancel: "Annuler",
// ─── Entity actions ──────────────────────────────────────────
edit: "Modifier",
copy: "Copier",
delete: "Supprimer",
// ─── Delete dialog ───────────────────────────────────────────
delete_confirmation_title: "Supprimer ?",
delete_confirmation_body: "Cela supprimera l'entité. Êtes-vous sûr ?",
delete_multiple_confirmation_body: "Cela supprimera les entités sélectionnées. Êtes-vous sûr ?",
// ─── Unsaved-changes dialog ───────────────────────────────────
unsaved_changes_title: "Modifications non enregistrées",
unsaved_changes_body: "Vous avez des modifications non enregistrées. Voulez-vous les ignorer ?",
discard_changes: "Ignorer les modifications",
keep_editing: "Continuer l'édition",
// ─── Collection table / toolbar ──────────────────────────────
search: "Rechercher",
find_by_id: "Rechercher par ID",
find_entity_by_id: "Rechercher l'entité par ID",
filter: "Filtrer",
filters: "Filtres",
clear_filter: "Effacer le filtre",
clear_filter_sort: "Effacer le filtre/tri",
clear_sort: "Effacer le tri",
no_items: "Aucun élément",
no_entries_found: "Aucune entrée trouvée",
all_entries_loaded: "Toutes les {{count}} entrées chargées",
create_your_first_entry: "Créez votre première entrée",
no_results_filter_sort: "Aucun résultat avec le filtre/tri appliqué",
add: "Ajouter",
remove: "Supprimer",
multiple_entities: "Entités multiples",
unsaved_changes: "Vous avez des modifications non enregistrées dans {{collectionName}}.",
so_empty: "C'est bien vide...",
no_results: "Aucun résultat avec le filtre/tri appliqué",
refresh_data: "Actualiser les données",
dark_mode: "Sombre",
light_mode: "Clair",
system_mode: "Système",
ok: "Ok",
save_collection_config: "Enregistrer la structure de la collection",
search_for_more_icons: "Rechercher d'autres icônes…",
ai_modified: "Modifié par l'IA",
size_label: "Taille",
group_by: "Grouper par",
initialize_kanban_order: "Initialiser l'ordre Kanban",
copy_id: "Copier l'ID",
add_specific: "Ajouter {{name}}",
select_specific: "Sélectionner {{name}}",
select_from: "Sélectionner depuis {{name}}",
done: "Terminé",
log_out: "Se déconnecter",
license_needed: "Licence requise",
license_description: "Vous avez besoin d'une licence valide pour utiliser FireCMS PRO. Veuillez nous contacter à {{email}} pour plus d'informations.",
column_cannot_be_edited: "Cette colonne ne peut pas être modifiée directement",
close: "Fermer",
unsaved_local_changes: "Modifications locales non enregistrées",
unsaved_local_changes_description: "Ce document a été modifié localement et contient des modifications non enregistrées. Ces modifications locales seront perdues si vous ne les appliquez pas.",
preview_changes: "Aperçu des modifications",
apply_changes: "Appliquer les modifications",
discard_local_changes: "Ignorer les modifications locales",
preview_local_changes: "Aperçu des modifications locales",
preview_local_changes_description: "Voici les modifications locales qui seront appliquées au formulaire.",
type: "Type",
string: "chaîne de caractères",
number: "nombre",
boolean: "booléen",
date: "date",
map: "carte (map)",
array: "tableau",
arrays_of_arrays_not_supported: "Les tableaux de tableaux ne sont pas pris en charge.",
data_type_not_supported: "Type de données {{dataType}} non pris en charge pour le moment",
passkey_error_unsupported: "Votre appareil ou navigateur ne prend pas en charge les passkeys.",
admin: "Admin",
home: "Accueil",
this_form_has_errors: "Ce formulaire contient des erreurs",
error_loading_navigation: "Erreur lors du chargement de la navigation",
error_loading_auth: "Erreur lors du chargement de l'authentification",
this_form_has_been_modified: "Ce formulaire a été modifié",
current_form_in_sync: "Le formulaire actuel est synchronisé avec la base de données",
open_in_console: "Ouvrir dans la console",
collection_does_not_exist: "La collection spécifiée n'existe pas. Vérifiez la console",
unexpected_value: "Valeur inattendue",
unexpected_value_click_to_edit: "Valeur inattendue. Cliquez pour modifier",
unexpected_reference_value: "Valeur de référence inattendue. Cliquez pour modifier",
copy_url_to_clipboard: "Copier l'URL dans le presse-papiers",
open_image_in_new_tab: "Ouvrir l'image dans un nouvel onglet",
reference_not_set: "Référence non définie",
reference_does_not_exist: "La référence n'existe pas",
entity_not_found: "Entité non trouvée",
file_not_found: "Fichier non trouvé",
unsaved_changes_in_entity: "Vous avez des modifications non enregistrées dans cette entité.",
delete_this_role: "Supprimer ce rôle",
no_roles_yet: "Vous n'avez pas encore de rôles.",
create_default_roles: "Créer les rôles par défaut",
delete_role_confirmation: "Êtes-vous sûr de vouloir supprimer ce rôle ?",
delete_this_user: "Supprimer cet utilisateur",
no_users_yet: "Il n'y a pas encore d'utilisateurs",
add_logged_user_as_admin: "Ajouter l'utilisateur connecté en tant qu'administrateur",
add_current_user_as_admin: "Ajouter l'utilisateur actuel en tant qu'administrateur",
create_default_roles_and_add_admin: "Créer les rôles par défaut et ajouter l'utilisateur actuel en tant qu'administrateur",
delete_user_confirmation: "Êtes-vous sûr de vouloir supprimer cet utilisateur ?",
create_your_users_and_roles: "Créez vos utilisateurs et rôles",
no_users_or_roles_defined: "Vous n'avez défini aucun utilisateur ni rôle. Vous pouvez créer les rôles par défaut et ajouter l'utilisateur actuel en tant qu'administrateur.",
save_before_changing_schema: "Vous devez enregistrer le document avant de modifier le schéma",
edit_schema_for_this_form: "Modifier le schéma de ce formulaire",
no_permissions_to_edit_collection: "Vous n'avez pas l'autorisation de modifier cette collection",
browser_does_not_support_audio: "Votre navigateur ne prend pas en charge l'élément audio.",
user_not_found: "Utilisateur introuvable : {{value}}",
// ─── Collection view actions ──────────────────────────────────
delete_selected: "Supprimer la sélection",
cannot_delete_selected: "Vous avez sélectionné au moins une entité que vous ne pouvez pas supprimer",
// ─── Array / field containers ─────────────────────────────────
add_entry: "Ajouter",
add_on_top: "Ajouter en haut",
add_below: "Ajouter en dessous",
add_to_field: "Ajouter à {{fieldName}}",
value: "Valeur",
key: "Clé",
drag_drop_multiple: "Faites glisser et déposez des fichiers ici, ou cliquez pour sélectionner des fichiers. Faites glisser pour réorganiser.",
drag_drop_single: "Faites glisser et déposez un fichier ici, ou cliquez pour en sélectionner un",
// ─── Navigation / scaffold ────────────────────────────────────
open_menu: "Ouvrir le menu",
close_drawer: "Fermer le menu latéral",
navigation_drawer: "Tiroir de navigation",
// ─── Error states ─────────────────────────────────────────────
error: "Erreur",
error_uploading_file: "Erreur lors du téléchargement du fichier",
error_deleting: "Erreur lors de la suppression",
error_before_delete: "Erreur avant la suppression",
error_updating_asset: "Erreur lors de la mise à jour de l'actif",
error_deleting_asset: "Erreur lors de la suppression de l'actif",
error_firestore_index: "Un index Firestore est requis pour cette requête.",
create_index: "Créer un index",
value_is_not_reference: "La valeur n'est pas une référence.",
click_to_edit: "Cliquez pour modifier",
data_is_not_array_of_references: "Les données ne sont pas un tableau de références",
// ─── Misc ─────────────────────────────────────────────────────
loading: "Chargement...",
local_changes_applied: "Modifications locales appliquées au formulaire",
local_changes_discarded: "Modifications locales ignorées",
are_you_sure_leave: "Êtes-vous sûr de vouloir quitter cette page ?",
see_console_details: "Consultez la console pour plus de détails.",
drop_here_create_group: "Déposez ici pour créer un nouveau groupe",
filter_for_null_values: "Filtrer les valeurs nulles",
value_updated_elsewhere: "Cette valeur a été mise à jour ailleurs",
add_property: "Ajouter une propriété",
edit_name: "Modifier {{name}}",
this_entity_not_exist: "Cette entité n'existe pas dans la base de données",
internal_error: "ERREUR interne",
// ─── Rename group dialog ──────────────────────────────────────
rename_group: "Renommer le groupe",
group_name_label: "Nom du groupe",
group_name_empty_error: "Le nom du groupe ne peut pas être vide.",
group_name_exists_error: "Ce nom de groupe existe déjà.",
// ─── Search ───────────────────────────────────────────────────
search_collections: "Rechercher dans les collections",
// ─── Navigation groups ────────────────────────────────────────
views_group: "Vues",
// ─── Entity Edit View ─────────────────────────────────────────
youd_need_to_save_before_additional_collections: "Vous devez enregistrer votre entité avant d'ajouter des collections supplémentaires",
// ─── Not Found Page ───────────────────────────────────────────
page_not_found: "Page introuvable",
page_not_found_body: "Cette page n'existe pas ou vous n'y avez peut-être pas accès",
back_to_home: "Retour à l'accueil",
// ─── Collection Editor ─────────────────────────────────────────
default_collection_view: "Vue de collection par défaut",
table_view: "Tableau",
cards_view: "Cartes",
kanban_view: "Kanban",
choose_how_entities_displayed_default: "Choisissez comment les entités doivent être affichées par défaut",
document_view: "Vue de document",
side_panel: "Panneau latéral",
full_screen: "Plein écran",
should_documents_opened_full_screen: "Les documents doivent-ils être ouverts en plein écran ou dans une boîte de dialogue latérale intégrée",
select_custom_view: "Sélectionner une vue personnalisée",
no_custom_views_defined: "Aucune vue personnalisée n'est définie. Définissez vos vues personnalisées dans les paramètres de personnalisation, avant d'utiliser cette boîte de dialogue.",
select_custom_action: "Sélectionner une action personnalisée",
no_custom_actions_defined: "Aucune action personnalisée définie. Définissez vos actions personnalisées dans les paramètres de personnalisation, avant d'utiliser cette boîte de dialogue.",
no_collections_found: "Aucune collection trouvée",
start_building_collections: "Commencez à créer des collections dans FireCMS facilement. Mappez-les à vos données de base de données existantes, importez-les à partir de fichiers ou utilisez nos modèles.",
create_first_collection: "Créez votre première collection",
define_collections_programmatically: "Vous pouvez également définir des collections par programmation.",
edit_collection: "Modifier la collection",
no_permissions_edit_collection: "Vous n'avez pas les autorisations pour modifier cette collection",
no_permissions_create_collection: "Vous n'avez pas les autorisations pour créer des collections",
create_collection: "Créer une collection",
update_collection: "Mettre à jour la collection",
new_collection: "Nouvelle collection",
add_new_collection: "Ajouter une nouvelle collection",
collection_with_name: "Collection {{name}}",
change_icon: "Changer l'icône",
is_subcollection_of: "Ceci est une sous-collection de",
name: "Nom",
collection_name_description: "Nom de cette collection, généralement un nom au pluriel (par ex., Produits)",
path: "Chemin",
relative_path_to_parent: "Chemin relatif vers le parent (il n'est pas nécessaire d'inclure le chemin parent)",
path_in_database: "Chemin dans lequel cette collection est stockée, dans la base de données",
singular_name: "Nom au singulier",
singular_name_description: "Définissez éventuellement un nom au singulier pour vos entités",
description: "Description",
description_of_collection: "Description de la collection, vous pouvez utiliser le format markdown",
collection_id: "ID de la collection",
collection_id_description: "Cet ID identifie cette collection. Généralement le même que le chemin.",
collection_group: "Groupe de collections",
collection_group_description: "Un groupe de collections se compose de toutes les collections ayant le même chemin. Cela vous permet d'effectuer des requêtes sur plusieurs collections à la fois.",
advanced_settings: "Paramètres avancés",
doc_history_global: "Révisions de l'historique des documents activées si activées globalement",
doc_history_enabled: "Révisions de l'historique des documents ACTIVÉES",
doc_history_not_enabled: "Révisions de l'historique des documents NON activées",
doc_history_description: "Lorsqu'il est activé, chaque document de cette collection conservera un historique des modifications. Ceci est utile à des fins d'audit. Les données sont stockées dans une sous-collection du document dans votre base de données, appelée __history.",
document_id_generation: "Génération des ID de document",
code_defined: "Défini par le code",
users_must_define_id: "Les utilisateurs doivent définir un ID",
users_can_define_id: "Les utilisateurs peuvent définir un ID, mais ce n'est pas obligatoire",
doc_id_auto_generated: "L'ID du document est généré automatiquement",
config_doc_id_generation: "Configurez comment les ID de document sont générés lors de la création de nouvelles entités.",
enable_text_search: "Activer la recherche de texte pour cette collection",
text_search_description: "Autoriser la recherche de texte pour cette collection. Si vous n'avez pas spécifié de délégué de recherche de texte, la recherche de texte locale intégrée sera utilisée. Ceci n'est pas recommandé pour les grandes collections, car cela peut entraîner des problèmes de performances et de coûts.",
database_id: "ID de base de données",
default_text: "(par défaut)",
custom_actions: "Actions personnalisées",
more_info: "Plus d'informations",
define_custom_actions_cli: "Définissez vos propres actions personnalisées en les téléchargeant via la CLI.",
action_defined_in_code: "Cette action est définie dans le code avec la clé",
add_custom_entity_action: "Ajouter une action d'entité personnalisée",
remove_this_action: "Supprimer cette action ?",
remove_action_warning: "Cela ne supprimera aucune donnée, uniquement l'action dans le CMS",
subcollections_of: "Sous-collections de",
add_subcollection: "Ajouter une sous-collection",
custom_views: "Vues personnalisées",
define_custom_views_cli: "Définissez vos propres vues personnalisées en les téléchargeant via la CLI.",
view_defined_in_code: "Cette vue est définie dans le code avec la clé",
add_custom_entity_view: "Ajouter une vue d'entité personnalisée",
delete_this_subcollection: "Supprimer cette sous-collection ?",
remove_collection_warning: "Cela ne supprimera aucune donnée, uniquement la collection dans le CMS",
remove_this_view: "Supprimer cette vue ?",
remove_view_warning: "Cela ne supprimera aucune donnée, uniquement la vue dans le CMS",
no_collection_selected: "Aucune collection sélectionnée",
code_for_collection: "Code pour",
use_config_define_json: "Utilisez cette configuration pour définir la collection au format JSON.",
customise_collection_code: "Si vous souhaitez personnaliser la collection dans le code, vous pouvez ajouter ce code de collection à la configuration de votre application CMS.",
copied: "Copié",
property_cant_be_edited: "Cette propriété ne peut pas être modifiée",
property_not_editable_description: "Vous n'avez peut-être pas l'autorisation de la modifier ou elle est définie dans le code avec l'indicateur modifiable 'editable' défini sur faux.",
delete_this_property: "Supprimer cette propriété ?",
delete_property_warning: "Cela ne supprimera aucune donnée, mais modifiera uniquement la collection.",
error_must_specify_id: "Vous devez spécifier un ID pour le champ",
error_id_format: "L'ID ne peut contenir que des lettres, des chiffres et des traits de soulignement (_), et ne doit pas commencer par un chiffre",
error_id_already_exists: "Il existe déjà un autre champ avec cet ID",
error_must_specify_title: "Vous devez spécifier un titre pour le champ",
custom_or_other: "Personnalisé/Autre",
select_property_widget: "Sélectionnez un widget de propriété",
error_changing_data_type: "Ce widget utilise un type de données différent de celui initialement sélectionné. Cela peut provoquer des erreurs avec les données existantes.",
required: "Requis",
enum_form_dialog: "Boîte de dialogue du formulaire Enum",
imported_data_preview: "Aperçu des données importées",
entities_with_same_id_overwritten: "Les entités avec le même identifiant seront écrasées",
collection_editor: "Éditeur de collection",
properties_in_this_group: "Propriétés de ce groupe",
data_property_mapping: "Mappage de propriétés de données",
property_edit_view: "Vue d'édition de propriété",
all_of_these: "Tous ces éléments",
any_of_these: "N'importe lequel de ces éléments",
only_admins_edit_roles: "Seuls les administrateurs peuvent modifier les rôles",
error_user_not_found: "Utilisateur introuvable",
role: "Rôle",
name_of_this_role: "Nom de ce rôle",
id_of_this_role: "ID de ce rôle",
create_entities: "Créer des entités",
read_entities: "Lire des entités",
update_entities: "Mettre à jour des entités",
delete_entities: "Supprimer des entités",
all_collections: "Toutes les collections",
create_entities_in_collections: "Créer des entités dans les collections",
access_all_data_in_every_collection: "Accéder à toutes les données de chaque collection",
update_data_in_any_collection: "Mettre à jour les données dans n'importe quelle collection",
delete_data_in_any_collection: "Supprimer des données dans n'importe quelle collection",
allow_all_permissions_in_this_collections: "Autoriser toutes les autorisations dans ces collections",
all: "Tout",
customise_permissions_description: "Vous pouvez personnaliser les autorisations que les utilisateurs liés à ce rôle peuvent exécuter dans les entités de chaque collection",
create_collections: "Créer des collections",
yes: "Oui",
no: "Non",
can_user_create_collections: "L'utilisateur peut-il créer des collections",
edit_collections: "Modifier les collections",
only_own_collections: "Uniquement les siennes",
own: "Propre",
can_user_edit_collections: "L'utilisateur peut-il modifier les collections",
delete_collections: "Supprimer les collections",
can_user_delete_collections: "L'utilisateur peut-il supprimer des collections",
error_saving_role: "Une erreur s'est produite lors de l'enregistrement de ce rôle",
create_role: "Créer un rôle",
update: "Mettre à jour",
only_admins_change_roles: "Seuls les administrateurs peuvent modifier les rôles",
must_be_at_least_one_admin: "Il doit y avoir au moins un administrateur",
logged_user_not_found: "Utilisateur connecté introuvable",
user: "Utilisateur",
user_id: "ID de l'utilisateur",
name_of_this_user: "Nom de cet utilisateur",
email_of_this_user: "Email de cet utilisateur",
roles: "Rôles",
create_user: "Créer un utilisateur",
users: "Utilisateurs",
add_user: "Ajouter un utilisateur",
add_role: "Ajouter un rôle",
is_admin: "Est Admin",
default_permissions: "Autorisations par défaut",
created_on: "Créé le",
email: "E-mail",
id: "ID",
read: "Lire",
column_in_file: "Colonne dans le fichier",
map_to_property: "Mappage à la propriété",
default_values: "Valeurs par défaut",
default_values_description: "Vous pouvez sélectionner une valeur par défaut pour les colonnes non mappées et les valeurs vides :",
property: "Propriété",
default_value: "Valeur par défaut",
autogenerate_id: "Générer automatiquement l'ID",
id_column_description: "Colonne qui sera utilisée comme ID pour chaque document",
do_not_set_value: "Ne pas définir de valeur",
set_value_to_true: "Définir la valeur sur Vrai (true)",
set_value_to_false: "Définir la valeur sur Faux (false)",
drag_and_drop_file: "Glissez et déposez un fichier ici ou cliquez pour télécharger",
error_saving_data: "Erreur lors de l'enregistrement des données",
retry: "Réessayer",
saving_data: "Enregistrement des données",
entities_saved: "entités enregistrées",
do_not_close_tab: "Ne fermez pas cet onglet, sinon l'importation sera interrompue",
import: "Importer",
import_data: "Importer des données",
upload_file_description: "Téléchargez un fichier CSV, Excel ou JSON et mappez-le à votre schéma existant",
back: "Retour",
next: "Suivant",
save_data: "Enregistrer les données",
use_column_as_id: "Utiliser cette colonne comme ID",
do_not_import_property: "Ne pas importer cette propriété",
entities_will_be_overwritten: "Les entités avec le même identifiant seront écrasées",
data_imported_successfully: "Données importées avec succès",
export: "Exporter",
export_data: "Exporter des données",
download_table_csv: "Télécharger le contenu de cette table au format CSV",
csv: "CSV",
json: "JSON",
dates_as_timestamps: "Dates sous forme d'horodatages",
dates_as_strings: "Dates sous forme de chaînes",
flatten_arrays: "Aplatir les tableaux",
download: "Télécharger",
large_number_of_documents: "Cette collection contient un grand nombre de documents ({{count}}).",
include_undefined_values: "Inclure les valeurs non définies",
submit: "Soumettre",
no_filterable_properties: "Aucune propriété filtrable disponible",
apply_filters: "Appliquer les filtres",
list: "Liste",
cards: "Cartes",
board: "Tableau",
initialize_kanban_order_desc: "Ceci attribuera des valeurs d'ordre séquentiel à tous les éléments qui n'en ont pas. Les articles conserveront leur ordre actuel dans chaque colonne.",
kanban_view_not_available: "La vue Kanban n'est pas disponible",
kanban_view_requires_enum: "La vue Kanban requiert une propriété de chaîne de caractères avec des valeurs Enumération (enum) pour regrouper les entités en colonnes. Veuillez ajouter une propriété Enum à votre schéma de collection pour utiliser cette vue.",
no_enum_values_configured: 'Aucune valeur enum configurée pour la propriété "{{property}}"',
items_need_backfill: "Certains éléments n'ont pas de valeurs d'ordre. Initialisez-les pour permettre la réorganisation par glisser-déposer.",
initialize: "Initialiser",
confirm_multiple_delete: "Confirmez la suppression multiple ?",
delete_entity_confirm_title: "Souhaitez-vous supprimer {{entityName}} ?",
/** Recently extracted strings for collection editor */
/** AI Collection Generator Popover */
generate_collection_with_ai: "Générer une collection avec l'IA",
modify_collection_with_ai: "Modifier la collection avec l'IA",
describe_collection_to_create: "Décrivez la collection que vous souhaitez créer.",
describe_changes_to_make: "Décrivez les modifications que vous souhaitez apporter à cette collection.",
ai_placeholder_create: "ex. : Créer une collection de produits avec nom, prix, description et catégorie...",
ai_placeholder_modify: "ex. : Ajouter un champ d'image miniature avec stockage, rendre le prix obligatoire...",
ai_assist: "Assistance IA",
generating: "Génération en cours...",
this_is_subcollection_of: "Ceci est une sous-collection de",
use_existing_paths_database: "Utiliser l'un des chemins existants dans votre base de données :",
describe_collection_ai: "Décrivez votre collection à l'IA :",
generate_with_ai: "Générer avec l'IA",
create_from_json_config: "Créer à partir d'une configuration JSON :",
paste_json_config: "Coller la configuration JSON",
create_collection_from_file_formats: "Créer une collection à partir d'un fichier (csv, json, xls, xslx...)",
select_template: "Sélectionner un modèle :",
products: "Produits",
collection_products_subtitle: "Une collection de produits avec images, prix et stock",
collection_users_subtitle: "Une collection d'utilisateurs avec e-mails, noms et rôles",
blog_posts: "Articles de blog",
collection_blog_posts_subtitle: "Une collection d'articles de blog avec images, auteurs et contenu complexe",
pages: "Pages",
collection_pages_subtitle: "Une collection de pages avec images, auteurs et contenu complexe",
continue_from_scratch: "Continuer à partir de zéro",
/** Admin views config */
cms_users: "Utilisateurs du CMS",
roles_menu: "Rôles",
project_settings: "Paramètres du projet",
// ─── FireCMS Cloud Login ──────────────────────────────────────
build_admin_panel_in_minutes: "Créez votre panneau d'administration Firebase en quelques minutes",
go_live_instantly: "Mise en ligne immédiate :",
create_production_ready_back_offices: "Créez des back-offices prêts pour la production",
without_the_frontend_hassle: "sans les tracas du front-end.",
automatic_setup: "Configuration automatique",
from_your_existing_firestore_data: "à partir de vos données Firestore existantes.",
seamless_real_time_firebase_integration: "Intégration transparente et en temps réel de Firebase.",
intuitive_spreadsheet_like_ui: "Interface utilisateur intuitive de type feuille de calcul",
your_whole_team_can_use: "que toute votre équipe peut utiliser.",
focus_on_your_app: "Concentrez-vous sur votre application,",
not_the_admin_panel: "pas sur le panneau d'administration.",
join_our_newsletter: "Inscrivez-vous à notre newsletter. Pas de spam, uniquement des mises à jour importantes !",
by_signing_in_you_agree_to_our: "En vous connectant, vous acceptez nos",
terms_and_conditions: "Conditions générales",
and_our: "et notre",
privacy_policy: "Politique de confidentialité",
firecms_cloud_google_disclosure: "L'utilisation de FireCMS Cloud et le transfert vers toute autre application d'informations reçues des API Google respecteront la",
google_api_services_user_data_policy: "Règles relatives aux données utilisateur des services API Google",
including_the_limited_use_requirements: "y compris les exigences d'utilisation limitée.",
email_password: "E-mail/Mot de passe",
sign_in_with_google: "Se connecter avec Google",
// --- Auth error messages ---
auth_user_not_found: "Utilisateur non trouvé",
auth_wrong_password: "Mot de passe erroné. Veuillez réessayer.",
auth_user_disabled: "Utilisateur désactivé. Veuillez contacter le support.",
auth_account_exists_with_different_credential: "Un compte existe avec une méthode de connexion différente",
auth_email_already_in_use: "L'e-mail est déjà utilisé",
auth_google_permissions_required: "Vous devez accorder des autorisations supplémentaires afin de gérer vos projets Google Cloud",
auth_invalid_email_password: "Veuillez entrer l'e-mail et le mot de passe",
auth_enter_email_first: "Veuillez d'abord entrer votre e-mail",
auth_password_reset_sent: "E-mail de réinitialisation du mot de passe envoyé",
auth_sign_in_account: "Connectez-vous à votre compte",
auth_create_new_account: "Créer un nouveau compte",
auth_password: "Mot de passe",
auth_reset_password: "Réinitialiser le mot de passe",
auth_new_user: "Nouvel utilisateur ?",
auth_have_account: "Vous avez déjà un compte ?",
auth_sign_in: "Se connecter",
auth_sign_up: "S'inscrire",
// --- SaaS Subscriptions ---
subscriptions: "Abonnements",
manage_your_subscriptions_in_stripe: "Gérez vos abonnements dans Stripe",
go_to_your_stripe_portal: "Accédez à votre portail utilisateur Stripe pour consulter l'historique de facturation. Notez que vous pouvez également gérer les abonnements associés à l'utilisateur connecté.",
your_pro_licenses: "Vos licences PRO",
create_new_license: "Créer une nouvelle licence",
create_subscriptions_in_this_section: "Créez des abonnements dans cette section uniquement pour FireCMS PRO auto-hébergé. Si vous utilisez FireCMS Cloud, vous pouvez mettre à niveau votre projet à partir des paramètres du projet.",
if_you_are_an_agency: "Si vous êtes une agence, vous êtes libre de revendre votre licence à vos clients.",
if_you_have_any_questions: "Si vous avez des questions ou avez besoin d'aide, veuillez nous contacter à l'adresse",
you_have_not_created_any_pro_licenses: "Vous n'avez pas encore créé de licences FireCMS PRO",
archive: "Archiver",
licensed_projects_lowercase: "projets sous licence",
manage: "Gérer",
update_payment_method: "Mettre à jour le mode de paiement",
your_firecms_cloud_projects: "Vos projets FireCMS Cloud",
status_active: "Actif",
status_trialing: "En période d'essai",
status_past_due: "En retard",
status_canceled: "Annulé",
status_unpaid: "Impayé",
status_incomplete: "Incomplet",
status_incomplete_expired: "Incomplet expiré",
status_unknown: "Inconnu",
plan_free: "Non abonné",
plan_cloud_plus: "Abonné",
plan_pro: "Pro",
plan_unknown: "Forfait inconnu",
auto_setup_collections_button: "Configurer les collections automatiquement",
auto_setup_collections_title: "Configurer les collections automatiquement ?",
auto_setup_collections_desc: "Cela créera automatiquement des configurations de collection pour les collections qui ne sont <b>PAS</b> déjà mappées",
this_can_take_a_minute: "Cela peut prendre une minute",
no_collections_found_to_setup: "Aucune collection à configurer trouvée",
collections_have_been_setup: "Les collections ont été configurées",
error_setting_up_collections: "Erreur lors de la configuration des collections",
add_your: "Ajoutez vos",
database_collections: "collections de base de données",
to_firecms: "à FireCMS",
no_unmapped_collections: "Aucune collection non mappée",
query_and_update_with_datatalk: "Interrogez et mettez à jour vos données en langage naturel avec",
welcome_to_firecms: "Bienvenue sur FireCMS Cloud",
admin_panel_ready_bring_data: "Votre panneau d'administration est prêt. Ajoutons vos données.",
admin_panel_ready_get_started: "Votre panneau d'administration est prêt. Voici comment démarrer.",
auto_detect_collections: "Détecter automatiquement les collections",
auto_detect_collections_desc: "Laissez l'IA analyser votre base de données et générer automatiquement des schémas de collection.",
create_a_collection: "Créer une collection",
create_collection_desc: "Définissez manuellement votre première collection à partir de zéro à l'aide de l'éditeur visuel.",
read_the_docs: "Lire la documentation",
read_the_docs_desc: "Apprenez à personnaliser les champs, les vues, les actions et bien plus encore.",
explore_docs: "Explorer la documentation",
want_to_customize_with_code: "Vous souhaitez personnaliser avec du code ? Exécutez",
to_scaffold_a_local_project: "pour générer un projet local.",
// ─── Collection Editor — Validation ──────────────────────────
validation: "Validation",
unique: "Unique",
required_message: "Message de champ obligatoire",
required_tooltip: "Vous ne pourrez pas enregistrer cette entité si cette valeur n'est pas définie",
unique_tooltip: "Il ne peut pas y avoir plusieurs entités avec la même valeur",
lowercase: "Minuscules",
uppercase: "Majuscules",
trim: "Supprimer les espaces",
exact_length: "Longueur exacte",
min_length: "Longueur min.",
max_length: "Longueur max.",
matches_regex: "Correspond à une regex",
not_valid_regexp: "Expression régulière non valide",
regex_helper: "ex. /^\\d+$/ pour les chiffres uniquement",
min_value: "Valeur min.",
max_value: "Valeur max.",
less_than: "Inférieur à",
more_than: "Supérieur à",
positive_value: "Valeur positive",
negative_value: "Valeur négative",
integer_value: "Valeur entière",
// ─── Collection Editor — Property Edit ───────────────────────
invalid_regular_expression: "Expression régulière non valide",
must_specify_target_collection: "Vous devez spécifier une collection cible pour le champ",
need_specify_repeat_field: "Vous devez spécifier un champ de répétition",
need_specify_block_properties: "Vous devez spécifier les propriétés de ce bloc",
incomplete_condition: "Condition incomplète - veuillez sélectionner un champ",
field_name: "Nom du champ",
// ─── Collection Editor — Display & Config ────────────────────
kanban_column_property: "Propriété de colonne Kanban",
select_a_property: "Sélectionner une propriété",
kanban_property_not_found: "La propriété \"{{property}}\" n'existe pas ou n'est pas une propriété de type string avec enum. Veuillez sélectionner une propriété valide ou effacer la sélection.",
no_enum_string_properties: "Aucune propriété de type string avec enum trouvée. Ajoutez une propriété string avec enumValues pour utiliser la vue Kanban.",
kanban_column_description: "Sélectionnez une propriété de type string avec des valeurs enum pour regrouper les entités en colonnes",
create_property: "+ Créer la propriété \"{{property}}\"",
order_property: "Propriété d'ordre",
order_property_not_found: "La propriété \"{{property}}\" n'existe pas ou n'est pas une propriété numérique. Veuillez sélectionner une propriété valide ou effacer la sélection.",
no_number_properties: "Aucune propriété numérique trouvée. Ajoutez une propriété numérique pour activer le tri.",
order_property_description: "Sélectionnez une propriété numérique pour conserver l'ordre des éléments",
display_settings: "Paramètres d'affichage",
default_row_size: "Taille de ligne par défaut",
side_dialog_width: "Largeur du dialogue latéral",
side_dialog_width_description: "Définissez optionnellement la largeur (en pixels) du dialogue latéral des entités. La valeur par défaut est 768px",
inline_editing_enabled: "Les données peuvent être modifiées directement dans la vue tableau",
inline_editing_disabled: "Les données ne peuvent être modifiées que dans la vue formulaire",
inline_editing_description: "Autoriser la modification des données directement dans la vue tableau, sans ouvrir la vue formulaire.",
include_json_view: "Inclure la vue JSON",
no_json_view: "Ne pas inclure la vue JSON",
json_view_description: "Inclure la représentation JSON du document.",
not_found_suffix: "introuvable",
// ─── Editor ─────────────────────────────────────────────────
editor_text: "Texte",
editor_text_description: "Commencez simplement à taper du texte brut.",
editor_heading_1: "Titre 1",
editor_heading_1_description: "Grand titre de section.",
editor_heading_2: "Titre 2",
editor_heading_2_description: "Titre de section moyen.",
editor_heading_3: "Titre 3",
editor_heading_3_description: "Petit titre de section.",
editor_todo_list: "Liste de tâches",
editor_todo_list_description: "Suivez les tâches avec une liste de tâches.",
editor_bullet_list: "Liste à puces",
editor_bullet_list_description: "Créez une simple liste à puces.",
editor_numbered_list: "Liste numérotée",
editor_numbered_list_description: "Créez une liste avec numérotation.",
editor_quote: "Citation",
editor_quote_description: "Capturez une citation.",
editor_code: "Code",
editor_code_description: "Capturez un extrait de code.",
editor_image: "Image",
editor_image_description: "Téléchargez une image depuis votre ordinateur.",
editor_multiple: "Multiple",
editor_link: "Lien",
editor_save: "Enregistrer",
editor_cancel: "Annuler",
editor_remove_link: "Supprimer le lien",
editor_paste_or_type_link: "Coller ou taper le lien",
editor_open_in_new_window: "Ouvrir dans une nouvelle fenêtre",
editor_bold: "Gras",
editor_italic: "Italique",
editor_underline: "Souligné",
editor_strikethrough: "Barré",
editor_autocomplete: "Saisie automatique",
editor_autocomplete_description: "Ajoutez du texte basé sur le contexte.",
// ─── Cloud Project Settings ──────────────────────────────────
settings_subscription_plan: "Plan d'abonnement",
settings_subscribed_to: "Vous êtes actuellement abonné à",
settings_no_active_subscription: "Il n'y a actuellement aucun abonnement actif pour ce projet.",
settings_trial_valid_until: "Votre période d'essai est valide jusqu'au {{date}}.",
settings_features_intro: "Voici quelques-unes des fonctionnalités dont vous profitez déjà avec FireCMS Cloud",
settings_feature_managed_service: "Service géré toujours à jour",
settings_feature_local_text_search: "Recherche de texte locale",
settings_feature_unlimited_users_roles: "Utilisateurs et rôles illimités",
settings_feature_theme_logo: "Personnalisation du thème et du logo",
settings_feature_custom_fields_views: "Champs de formulaire et vues personnalisés",
settings_feature_secondary_databases: "Bases de données secondaires",
settings_feature_ai_content: "Génération de contenu par IA avec OpenAI et Google",
settings_feature_unlimited_export: "Exportation de données illimitée",
settings_feature_appcheck: "AppCheck",
settings_heading: "Paramètres",
settings_project_name: "Nom du projet",
settings_default_language: "Langue par défaut",
settings_default_language_caption: "Sélectionnez la langue de base pour ce projet. Les utilisateurs peuvent modifier cette préférence dans leurs paramètres personnels.",
settings_enable_local_text_search: "Activer la recherche de texte locale",
settings_local_text_search_caption: "Activez la recherche de texte locale pour toutes les collections. Cela vous permettra de rechercher des champs textuels à l'aide de la barre de recherche FireCMS. Notez que cette fonctionnalité peut entraîner un nombre de lectures plus élevé, car tous les champs textuels de vos collections seront indexés.",
settings_doc_history_all_collections: "Historique des documents activé pour toutes les collections",
settings_doc_history_caption: "Lorsque activé, toutes les collections auront l'historique activé par défaut. Vous pouvez modifier ce paramètre pour chaque collection. L'historique sera enregistré dans la sous-collection __history de chaque document.",
settings_theme: "Thème",
settings_primary_color: "Couleur primaire",
settings_secondary_color: "Couleur secondaire",
settings_sample_theme_components: "Exemples de composants du thème",
settings_drag_drop_logo: "Glissez-déposez votre logo ici",
settings_create_subscription: "Créer un abonnement",
settings_stripe_disclaimer: "Vous serez redirigé vers Stripe pour finaliser votre abonnement. La facturation est mensuelle, basée sur le nombre maximum d'utilisateurs du mois. Annulez à tout moment – vous avez déjà payé pour la période de facturation en cours, aucun frais supplémentaire ne sera appliqué après l'annulation.",
settings_subscription_is: "L'abonnement est",
settings_next_payment_on: "Le prochain paiement est le {{date}}.",
settings_seats_count: "Vous avez",
settings_seat: "place",
settings_seats: "places",
settings_per_seat: "à {{price}}/place/{{interval}}",
settings_current_price: "Le prix actuel est de",
settings_per_user_usage: "par utilisateur (basé sur l'utilisation).",
settings_cancelled_active_until: "Cet abonnement a été annulé et restera actif jusqu'au {{date}}.",
settings_no_additional_charges: "Aucun frais supplémentaire ne sera appliqué après l'annulation.",
settings_manage_subscription: "Gérer l'abonnement",
settings_security_rules: "Règles de sécurité",
settings_security_rules_description: "FireCMS utilise les règles de sécurité Firebase pour restreindre l'accès aux données. Lors de la création d'un utilisateur via FireCMS, l'attribut personnalisé fireCMSUser est ajouté à l'utilisateur dans le projet client. En ajoutant les règles de sécurité suivantes, vous garantissez que les utilisateurs FireCMS peuvent accéder aux données via FireCMS.",
settings_security_rules_add_domain: "N'oubliez pas d'ajouter le domaine {{domain}} aux domaines autorisés de votre fournisseur",
settings_security_rules_caption: "Ces règles restreignent l'accès aux données aux seuls utilisateurs FireCMS, mais n'appliquent pas les permissions au niveau de la base de données. Les permissions sont appliquées côté frontend, ce qui convient à la plupart des projets. Si vous devez appliquer les permissions au niveau de la base de données, vous pouvez modifier ces règles de sécurité. Les rôles attribués à un utilisateur sont définis comme attributs personnalisés dans le jeton d'authentification Firebase, vous pouvez donc les utiliser dans vos règles de sécurité.",
settings_appcheck: "AppCheck",
settings_appcheck_description: "Vous pouvez activer AppCheck pour protéger vos services Firebase contre les abus. Consultez la documentation Firebase pour la configuration. Une fois un fournisseur configuré, vous pouvez l'activer ici. Vous devrez fournir un secret dans les paramètres de votre projet Firebase et une clé de site dans la configuration FireCMS.",
settings_appcheck_add_domain: "N'oubliez pas d'ajouter le domaine {{domain}} aux domaines autorisés de votre fournisseur",
settings_appcheck_enable: "Activer AppCheck",
settings_appcheck_site_key: "Clé de site",
settings_appcheck_update: "Mettre à jour AppCheck",
settings_appcheck_refresh_note: "Vous devrez peut-être actualiser la page après l'enregistrement pour voir les modifications.",
settings_appcheck_updated: "AppCheck mis à jour",
settings_appcheck_error: "Erreur lors de la mise à jour d'AppCheck",
// ─── Text Search Dialog ─────────────────────────────────────
text_search_dialog_title: "Activer la recherche de texte",
text_search_local_not_recommended: "La recherche de texte locale n'est pas recommandée pour les grandes collections.",
text_search_local_fetch_warning: "Notez que l'activation de la recherche de texte locale nécessite de récupérer tous les documents de votre collection et de les stocker dans le navigateur. Cela peut être inefficace pour les grandes collections et entraîner des coûts supplémentaires.",
text_search_external_suggestion: "Pour les collections plus grandes, il est recommandé d'utiliser un moteur de recherche externe comme Algolia ou Elastic Search, et d'attribuer un délégué de recherche à votre configuration.",
text_search_local_description: "La recherche de texte locale est le moyen le plus simple d'activer la recherche de texte dans votre collection. Elle charge tous les documents de la collection dans le navigateur et effectue la recherche localement. C'est l'option recommandée pour les petites collections.",
text_search_own_implementation: "Vous avez implémenté votre propre contrôleur de recherche de texte. Vous pouvez activer la recherche de texte pour votre collection.",
text_search_enable_for_collection: "Activer pour cette collection",
text_search_enable_for_project: "Activer pour le projet",
text_search_enabled_snackbar: "Recherche de texte locale activée"
};