msgid ""
msgstr ""
"POT-Creation-Date: 2026-04-12 19:53+0200\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: fr\n"
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Plural-Forms: \n"

#: packages/admin/src/routes/bylines.tsx:447
msgid " - Guest"
msgstr "- Invité"

#: packages/admin/src/routes/bylines.tsx:447
msgid " - Linked"
msgstr "- Lié"

#: packages/admin/src/components/LocaleSwitcher.tsx:72
#: packages/admin/src/components/TranslationsPanel.tsx:76
msgid " (default)"
msgstr " (par défaut)"

#: packages/admin/src/components/MenuEditor.tsx:435
msgid " (opens in new window)"
msgstr " (s'ouvre dans une nouvelle fenêtre)"

#: packages/admin/src/components/MediaPickerModal.tsx:803
#: packages/admin/src/components/MediaPickerModal.tsx:886
msgid " (selected)"
msgstr " (sélectionné)"

#: packages/admin/src/routes/bylines.tsx:707
msgid "-- Select --"
msgstr "-- Sélectionner --"

#: packages/admin/src/components/auth/PasskeyLogin.tsx:310
#: packages/admin/src/components/auth/PasskeyRegistration.tsx:307
msgid ", or open the admin at"
msgstr ", ou ouvrez l'administration sur"

#: packages/admin/src/components/auth/PasskeyLogin.tsx:309
#: packages/admin/src/components/auth/PasskeyRegistration.tsx:306
msgid ": use"
msgstr " : utiliser"

#. placeholder {0}: providers?.find((p) => p.id === selectedItem.providerId)?.name
#: packages/admin/src/components/MediaPickerModal.tsx:737
msgid "(from {0})"
msgstr "(à partir de {0})"

#: packages/admin/src/components/RegistryPluginDetail.tsx:520
msgid "(pre-release)"
msgstr "(version préliminaire)"

#: packages/admin/src/components/settings/PasskeyItem.tsx:157
msgid "(synced)"
msgstr "(synchronisé)"

#: packages/admin/src/components/RegistryPluginDetail.tsx:523
msgid "(too new)"
msgstr "(trop récent)"

#: packages/admin/src/components/auth/PasskeyLogin.tsx:312
#: packages/admin/src/components/auth/PasskeyRegistration.tsx:309
msgid "(with your dev port)."
msgstr "(avec votre port de développement)."

#. placeholder {0}: items.length
#. placeholder {0}: orphan.rowCount
#: packages/admin/src/components/ContentTypeList.tsx:69
#: packages/admin/src/components/RepeaterField.tsx:152
msgid "{0, plural, one {(# item)} other {(# items)}}"
msgstr "{0, plural, one {(# élément)} other {(# éléments)}}"

#. placeholder {0}: seedInfo.collections
#: packages/admin/src/components/SetupWizard.tsx:156
msgid "{0, plural, one {# collection} other {# collections}}"
msgstr "{0, plural, one {# collection} other {# collections}}"

#. placeholder {0}: result.affected
#: packages/admin/src/router.tsx:1277
msgid "{0, plural, one {# comment updated} other {# comments updated}}"
msgstr "{0, plural, one {# commentaire mis a jour} other {# commentaires mis a jour}}"

#. placeholder {0}: comments.length
#: packages/admin/src/components/comments/CommentInbox.tsx:344
msgid "{0, plural, one {# comment} other {# comments}}"
msgstr "{0, plural, one {# commentaire} other {# commentaires}}"

#. placeholder {0}: result.errors.length
#: packages/admin/src/components/WordPressImport.tsx:2080
msgid "{0, plural, one {# content error} other {# content errors}}"
msgstr "{0, plural, one {# erreur liée au contenu} other {# erreurs liées au contenu}}"

#. placeholder {0}: result.imported
#: packages/admin/src/components/WordPressImport.tsx:2056
msgid "{0, plural, one {# content item imported} other {# content items imported}}"
msgstr "{0, plural, one {# élément de contenu importé} other {# éléments de contenu importés}}"

#. placeholder {0}: items.length
#. placeholder {0}: menu.itemCount ?? 0
#: packages/admin/src/components/MediaPickerModal.tsx:588
#: packages/admin/src/components/MenuList.tsx:217
msgid "{0, plural, one {# item} other {# items}}"
msgstr "{0, plural, one {# élément} other {# éléments}}"

#. placeholder {0}: mediaResult.failed.length
#: packages/admin/src/components/WordPressImport.tsx:2085
msgid "{0, plural, one {# media error} other {# media errors}}"
msgstr "{0, plural, one {# erreur liée à un fichier multimédia} other {# erreurs liées aux fichiers multimédias}}"

#. placeholder {0}: mediaResult.imported.length
#: packages/admin/src/components/WordPressImport.tsx:2072
msgid "{0, plural, one {# media file imported} other {# media files imported}}"
msgstr "{0, plural, one {# fichier multimédia importé} other {# fichiers multimédias importés}}"

#. placeholder {0}: stats.mediaCount
#: packages/admin/src/components/Dashboard.tsx:123
msgid "{0, plural, one {# media file} other {# media files}}"
msgstr "{0, plural, one {# fichier multimédia} other {# fichiers multimédias}}"

#. placeholder {0}: navMenus.length
#: packages/admin/src/components/WordPressImport.tsx:1739
msgid "{0, plural, one {# menu will be imported} other {# menus will be imported}}"
msgstr "{0, plural, one {# menu sera importé} other {# menus seront importés}}"

#. placeholder {0}: plugin.capabilities.length
#: packages/admin/src/components/MarketplaceBrowse.tsx:288
#: packages/admin/src/components/PluginManager.tsx:399
msgid "{0, plural, one {# permission} other {# permissions}}"
msgstr "{0, plural, one {# autorisation} other {# autorisations}}"

#. placeholder {0}: mapping.postCount
#: packages/admin/src/components/WordPressImport.tsx:2292
msgid "{0, plural, one {# post} other {# posts}}"
msgstr "{0, plural, one {# article} other {# articles}}"

#. placeholder {0}: loopRedirectIds.size
#: packages/admin/src/components/Redirects.tsx:444
msgid "{0, plural, one {# redirect is part of a loop.} other {# redirects are part of a loop.}}"
msgstr "{0, plural, one {Une redirection fait partie d'une boucle.} other {# redirections font partie d'une boucle.}}"

#. placeholder {0}: selected.size
#: packages/admin/src/components/comments/CommentInbox.tsx:228
msgid "{0, plural, one {# selected} other {# selected}}"
msgstr "{0, plural, one {# commentaire sélectionné} other {# commentaires sélectionnés}}"

#. placeholder {0}: result.skipped
#: packages/admin/src/components/WordPressImport.tsx:2064
msgid "{0, plural, one {# skipped (already exists)} other {# skipped (already exist)}}"
msgstr "{0, plural, one {# élément ignoré (existe déjà)} other {# éléments ignorés (existent déjà)}}"

#. placeholder {0}: stats.userCount
#: packages/admin/src/components/Dashboard.tsx:128
msgid "{0, plural, one {# user} other {# users}}"
msgstr "{0, plural, one {# utilisateur} other {# utilisateurs}}"

#. placeholder {0}: fields.length
#: packages/admin/src/components/ContentTypeEditor.tsx:576
msgid "{0, plural, one {field} other {fields}}"
msgstr "{0, plural, one {champ} other {champs}}"

#. placeholder {0}: envLabel(m.key)
#. placeholder {1}: m.required
#. placeholder {2}: m.host
#: packages/admin/src/components/RegistryPluginDetail.tsx:623
msgid "{0} {1} required — you have {2}."
msgstr "{0} {1} requis — vous avez {2}."

#. placeholder {0}: menu.name
#. placeholder {1}: /** * Menu List component * * Displays all menus with ability to create, edit, and delete. */ import { Button, Dialog, Input, Toast } from "@cloudflare/kumo"; import { plural } from "@lingui/core/macro"; import { Trans } from "@lingui/react/macro"; import { useLingui } from "@lingui/react/macro"; import { Plus, Pencil, Trash, List as ListIcon } from "@phosphor-icons/react"; import { X } from "@phosphor-icons/react"; import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; import { Link, useNavigate } from "@tanstack/react-router"; import * as React from "react"; import { fetchMenus, createMenu, deleteMenu } from "../lib/api"; import { fetchManifest } from "../lib/api/client.js"; import { ConfirmDialog } from "./ConfirmDialog.js"; import { DialogError, getMutationError } from "./DialogError.js"; import { LocaleSwitcher, useI18nConfig } from "./LocaleSwitcher.js"; import { RouterLinkButton } from "./RouterLinkButton.js"; export function MenuList() { const { t } = useLingui(); const queryClient = useQueryClient(); const navigate = useNavigate(); const toastManager = Toast.useToastManager(); const [isCreateOpen, setIsCreateOpen] = React.useState(false); const [deleteMenuName, setDeleteMenuName] = React.useState<string | null>(null); const [createError, setCreateError] = React.useState<string | null>(null); const { data: manifest } = useQuery({ queryKey: ["manifest"], queryFn: fetchManifest, }); const i18n = useI18nConfig(manifest); const [activeLocale, setActiveLocale] = React.useState<string | undefined>(undefined); React.useEffect(() => { if (i18n && !activeLocale) setActiveLocale(i18n.defaultLocale); }, [i18n, activeLocale]); const { data: menus, isLoading } = useQuery({ queryKey: ["menus", activeLocale], queryFn: () => fetchMenus({ locale: activeLocale }), }); const createMutation = useMutation({ mutationFn: createMenu, onSuccess: (menu) => { void queryClient.invalidateQueries({ queryKey: ["menus"] }); setIsCreateOpen(false); toastManager.add({ title: t`Menu created`, description: t`Menu "${menu.label}" has been created.`, }); void navigate({ to: "/menus/$name", params: { name: menu.name }, search: { locale: menu.locale }, }); }, onError: (error: Error) => { setCreateError(error.message); }, }); const deleteMutation = useMutation({ mutationFn: (name: string) => deleteMenu(name, { locale: activeLocale }), onSuccess: () => { void queryClient.invalidateQueries({ queryKey: ["menus"] }); setDeleteMenuName(null); toastManager.add({ title: t`Menu deleted`, description: t`The menu has been deleted.`, }); }, }); const handleCreate = (e: React.FormEvent<HTMLFormElement>) => { e.preventDefault(); setCreateError(null); const formData = new FormData(e.currentTarget); const nameVal = formData.get("name"); const name = typeof nameVal === "string" ? nameVal : ""; const labelVal = formData.get("label"); const label = typeof labelVal === "string" ? labelVal : ""; createMutation.mutate({ name, label, locale: activeLocale }); }; if (isLoading) { return ( <div className="flex items-center justify-center h-64"> <div className="text-kumo-subtle">{t`Loading menus...`}</div> </div> ); } return ( <div className="space-y-6"> <div className="flex items-center justify-between gap-4 flex-wrap"> <div> <h1 className="text-3xl font-bold">{t`Menus`}</h1> <p className="text-kumo-subtle">{t`Manage navigation menus for your site`}</p> </div> <div className="flex items-center gap-2"> {i18n && activeLocale ? ( <LocaleSwitcher locales={i18n.locales} defaultLocale={i18n.defaultLocale} value={activeLocale} onChange={setActiveLocale} /> ) : null} </div> <Dialog.Root open={isCreateOpen} onOpenChange={(open) => { setIsCreateOpen(open); if (!open) setCreateError(null); }} > <Dialog.Trigger render={(props) => ( <Button {...props} icon={<Plus />}> {t`Create Menu`} </Button> )} /> <Dialog className="p-6" size="lg"> <div className="flex items-start justify-between gap-4 mb-4"> <Dialog.Title className="text-lg font-semibold leading-none tracking-tight"> {t`Create New Menu`} </Dialog.Title> <Dialog.Close aria-label={t`Close`} render={(props) => ( <Button {...props} variant="ghost" shape="square" aria-label={t`Close`} className="absolute end-4 top-4" > <X className="h-4 w-4" /> <span className="sr-only">{t`Close`}</span> </Button> )} /> </div> <form onSubmit={handleCreate} className="space-y-4"> <div> <Input label={t`Name`} name="name" required placeholder="primary" pattern="[a-z0-9\-]+" title={t`Only lowercase letters, numbers, and hyphens`} /> <p className="text-sm text-kumo-subtle mt-1"> {t`URL-friendly identifier (e.g., "primary", "footer")`} </p> </div> <div> <Input label={t`Label`} name="label" required placeholder={t`Primary Navigation`} /> <p className="text-sm text-kumo-subtle mt-1">{t`Display name for admin interface`}</p> </div> <DialogError message={createError || getMutationError(createMutation.error)} /> <div className="flex justify-end gap-2"> <Button type="button" variant="outline" onClick={() => setIsCreateOpen(false)}> {t`Cancel`} </Button> <Button type="submit" disabled={createMutation.isPending}> {createMutation.isPending ? t`Creating...` : t`Create`} </Button> </div> </form> </Dialog> </Dialog.Root> </div> {!menus || menus.length === 0 ? ( <div className="border rounded-lg p-12 text-center"> <ListIcon className="mx-auto h-12 w-12 text-kumo-subtle mb-4" /> <h3 className="text-lg font-semibold mb-2">{t`No menus yet`}</h3> <p className="text-kumo-subtle mb-4">{t`Create your first navigation menu to get started`}</p> <Button icon={<Plus />} onClick={() => setIsCreateOpen(true)}> {t`Create Menu`} </Button> </div> ) : ( <div className="grid gap-4"> {menus.map((menu) => ( <div key={menu.id} className="border rounded-lg p-6 flex items-center justify-between hover:bg-kumo-tint transition-colors" > <Link to="/menus/$name" params={{ name: menu.name }} search={{ locale: menu.locale }} className="flex-1" > <div> <h3 className="font-semibold text-lg"> {menu.label} {i18n ? ( <span className="ms-2 text-xs font-mono uppercase text-kumo-subtle"> {menu.locale} </span> ) : null} </h3> <p className="text-sm text-kumo-subtle"> <Trans> {menu.name} •{" "} {plural(menu.itemCount ?? 0, { one: "# item", other: "# items" })} </Trans> </p> </div> </Link> <div className="flex gap-2"> <RouterLinkButton to="/menus/$name" params={{ name: menu.name }} search={{ locale: menu.locale }} variant="outline" size="sm" icon={<Pencil />} > {t`Edit`} </RouterLinkButton> <Button variant="outline" size="sm" onClick={() => setDeleteMenuName(menu.name)} aria-label={t`Delete ${menu.name} menu`} > <Trash className="h-4 w-4" /> </Button> </div> </div> ))} </div> )} <ConfirmDialog open={deleteMenuName !== null} onClose={() => { setDeleteMenuName(null); deleteMutation.reset(); }} title={t`Delete Menu`} description={t`Are you sure you want to delete this menu? This will also delete all menu items. This action cannot be undone.`} confirmLabel={t`Delete`} pendingLabel={t`Deleting...`} isPending={deleteMutation.isPending} error={deleteMutation.error} onConfirm={() => deleteMenuName && deleteMutation.mutate(deleteMenuName)} /> </div> ); } 
#: packages/admin/src/components/MenuList.tsx:215
msgid "{0} • {1}"
msgstr "{0} • {1}"

#. placeholder {0}: displayName ?? slug
#: packages/admin/src/components/RegistryPluginDetail.tsx:412
msgid "{0} banner"
msgstr "Bannière {0}"

#. placeholder {0}: bestMatch?.detected.siteTitle || "WordPress site"
#: packages/admin/src/components/WordPressImport.tsx:1142
msgid "{0} detected"
msgstr "{0} détecté"

#. placeholder {0}: plugin.name
#: packages/admin/src/components/PluginManager.tsx:111
msgid "{0} has been deactivated"
msgstr "{0} a été désactivé"

#. placeholder {0}: plugin.name
#: packages/admin/src/components/PluginManager.tsx:306
msgid "{0} has been removed"
msgstr "{0} a été supprimé"

#. placeholder {0}: displayName ?? slug
#: packages/admin/src/components/RegistryPluginDetail.tsx:424
msgid "{0} icon"
msgstr "Icône {0}"

#. placeholder {0}: plugin.installCount.toLocaleString()
#: packages/admin/src/components/MarketplacePluginDetail.tsx:202
msgid "{0} installs"
msgstr "{0} installations"

#. placeholder {0}: plugin.name
#: packages/admin/src/components/PluginManager.tsx:92
msgid "{0} is now active"
msgstr "{0} est maintenant actif"

#. placeholder {0}: postType.count
#. placeholder {1}: postType.suggestedCollection
#: packages/admin/src/components/WordPressImport.tsx:1809
msgid "{0} items → {1}"
msgstr "{0} éléments → {1}"

#. placeholder {0}: analysis.postTypes .filter((pt) => selections[pt.name]?.enabled) .reduce((sum, pt) => sum + pt.count, 0)
#: packages/admin/src/components/WordPressImport.tsx:1732
msgid "{0} items will be imported"
msgstr "{0} éléments seront importés"

#. placeholder {0}: plugins?.length ?? 0
#: packages/admin/src/components/PluginManager.tsx:170
msgid "{0} plugins"
msgstr "{0} modules d'extension"

#. placeholder {0}: theme.name
#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:210
msgid "{0} preview"
msgstr "Aperçu de {0}"

#. placeholder {0}: SYSTEM_FIELDS.length
#. placeholder {1}: fields.length
#. placeholder {2}: import { Badge, Button, Checkbox, Input, InputArea, Label, Select, Switch } from "@cloudflare/kumo"; import { DndContext, closestCenter, type DragEndEvent, KeyboardSensor, PointerSensor, useSensor, useSensors, } from "@dnd-kit/core"; import { arrayMove, SortableContext, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy, } from "@dnd-kit/sortable"; import { CSS } from "@dnd-kit/utilities"; import type { MessageDescriptor } from "@lingui/core"; import { msg, plural } from "@lingui/core/macro"; import { Trans, useLingui } from "@lingui/react/macro"; import { Plus, DotsSixVertical, Pencil, Trash, Database, FileText } from "@phosphor-icons/react"; import { useNavigate } from "@tanstack/react-router"; import * as React from "react"; import type { SchemaCollectionWithFields, SchemaField, CreateFieldInput, CreateCollectionInput, UpdateCollectionInput, } from "../lib/api"; import { cn } from "../lib/utils"; import { ArrowPrev } from "./ArrowIcons.js"; import { ConfirmDialog } from "./ConfirmDialog"; import { EditorHeader } from "./EditorHeader"; import { FieldEditor } from "./FieldEditor"; import { RouterLinkButton } from "./RouterLinkButton.js"; import { SaveButton } from "./SaveButton"; // Regex patterns for slug generation const SLUG_INVALID_CHARS_PATTERN = /[^a-z0-9]+/g; const SLUG_LEADING_TRAILING_PATTERN = /^_|_$/g; export interface ContentTypeEditorProps { collection?: SchemaCollectionWithFields; isNew?: boolean; isSaving?: boolean; onSave: (input: CreateCollectionInput | UpdateCollectionInput) => void; onAddField?: (input: CreateFieldInput) => void; onUpdateField?: (fieldSlug: string, input: CreateFieldInput) => void; onDeleteField?: (fieldSlug: string) => void; onReorderFields?: (fieldSlugs: string[]) => void; } interface SupportOptionDef { value: string; label: MessageDescriptor; description: MessageDescriptor; } const MODERATION_OPTIONS: Record<"all" | "first_time" | "none", MessageDescriptor> = { all: msg`All comments require approval`, first_time: msg`First-time commenters only`, none: msg`No moderation (auto-approve all)`, }; const SUPPORT_OPTIONS: SupportOptionDef[] = [ { value: "drafts", label: msg`Drafts`, description: msg`Save content as draft before publishing`, }, { value: "revisions", label: msg`Revisions`, description: msg`Track content history`, }, { value: "preview", label: msg`Preview`, description: msg`Preview content before publishing`, }, { value: "search", label: msg`Search`, description: msg`Enable full-text search on this collection`, }, ]; /** * System fields that exist on every collection * These are created automatically and cannot be modified */ interface SystemFieldDef { slug: string; label: MessageDescriptor; type: string; description: MessageDescriptor; } const SYSTEM_FIELDS: SystemFieldDef[] = [ { slug: "id", label: msg`ID`, type: "text", description: msg`Unique identifier (ULID)`, }, { slug: "slug", label: msg`Slug`, type: "text", description: msg`URL-friendly identifier`, }, { slug: "status", label: msg`Status`, type: "text", description: msg`draft, published, or archived`, }, { slug: "created_at", label: msg`Created At`, type: "datetime", description: msg`When the entry was created`, }, { slug: "updated_at", label: msg`Updated At`, type: "datetime", description: msg`When the entry was last modified`, }, { slug: "published_at", label: msg`Published At`, type: "datetime", description: msg`When the entry was published`, }, ]; /** * Content Type editor for creating/editing collections */ export function ContentTypeEditor({ collection, isNew, isSaving, onSave, onAddField, onUpdateField, onDeleteField, onReorderFields, }: ContentTypeEditorProps) { const { t } = useLingui(); const _navigate = useNavigate(); // Form state const [slug, setSlug] = React.useState(collection?.slug ?? ""); const [label, setLabel] = React.useState(collection?.label ?? ""); const [labelSingular, setLabelSingular] = React.useState(collection?.labelSingular ?? ""); const [description, setDescription] = React.useState(collection?.description ?? ""); const [urlPattern, setUrlPattern] = React.useState(collection?.urlPattern ?? ""); // SEO is managed via the separate `hasSeo` field; strip any legacy "seo" entry // so it isn't sent back on save (the API enum rejects it). const [supports, setSupports] = React.useState<string[]>( (collection?.supports ?? ["drafts", "revisions"]).filter((s) => s !== "seo"), ); // SEO state const [hasSeo, setHasSeo] = React.useState(collection?.hasSeo ?? false); // Comment settings state const [commentsEnabled, setCommentsEnabled] = React.useState( collection?.commentsEnabled ?? false, ); const [commentsModeration, setCommentsModeration] = React.useState<"all" | "first_time" | "none">( collection?.commentsModeration ?? "first_time", ); const [commentsClosedAfterDays, setCommentsClosedAfterDays] = React.useState( collection?.commentsClosedAfterDays ?? 90, ); const [commentsAutoApproveUsers, setCommentsAutoApproveUsers] = React.useState( collection?.commentsAutoApproveUsers ?? true, ); // Field editor state const [fieldEditorOpen, setFieldEditorOpen] = React.useState(false); const [editingField, setEditingField] = React.useState<SchemaField | undefined>(); const [fieldSaving, setFieldSaving] = React.useState(false); const [deleteFieldTarget, setDeleteFieldTarget] = React.useState<SchemaField | null>(null); const urlPatternValid = !urlPattern || urlPattern.includes("{slug}"); // Track whether form has unsaved changes const hasChanges = React.useMemo(() => { if (isNew) return slug && label; if (!collection) return false; return ( label !== collection.label || labelSingular !== (collection.labelSingular ?? "") || description !== (collection.description ?? "") || urlPattern !== (collection.urlPattern ?? "") || JSON.stringify([...supports].toSorted()) !== JSON.stringify(collection.supports.filter((s) => s !== "seo").toSorted()) || hasSeo !== collection.hasSeo || commentsEnabled !== collection.commentsEnabled || commentsModeration !== collection.commentsModeration || commentsClosedAfterDays !== collection.commentsClosedAfterDays || commentsAutoApproveUsers !== collection.commentsAutoApproveUsers ); }, [ isNew, collection, slug, label, labelSingular, description, urlPattern, supports, hasSeo, commentsEnabled, commentsModeration, commentsClosedAfterDays, commentsAutoApproveUsers, ]); // Auto-generate slug from plural label const handleLabelChange = (value: string) => { setLabel(value); if (isNew) { setSlug( value .toLowerCase() .replace(SLUG_INVALID_CHARS_PATTERN, "_") .replace(SLUG_LEADING_TRAILING_PATTERN, ""), ); } }; // Auto-generate plural label (and slug) from singular label const handleSingularLabelChange = (value: string) => { setLabelSingular(value); if (isNew) { const pluralLabel = value ? `${value}s` : ""; handleLabelChange(pluralLabel); } }; const handleSupportToggle = (value: string) => { setSupports((prev) => prev.includes(value) ? prev.filter((s) => s !== value) : [...prev, value], ); }; const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (isNew) { onSave({ slug, label, labelSingular: labelSingular || undefined, description: description || undefined, urlPattern: urlPattern || undefined, supports, hasSeo, }); } else { onSave({ label, labelSingular: labelSingular || undefined, description: description || undefined, urlPattern: urlPattern || undefined, supports, hasSeo, commentsEnabled, commentsModeration, commentsClosedAfterDays, commentsAutoApproveUsers, }); } }; const handleFieldSave = async (input: CreateFieldInput) => { setFieldSaving(true); try { if (editingField) { onUpdateField?.(editingField.slug, input); } else { onAddField?.(input); } setFieldEditorOpen(false); setEditingField(undefined); } finally { setFieldSaving(false); } }; const handleEditField = (field: SchemaField) => { setEditingField(field); setFieldEditorOpen(true); }; const handleAddField = () => { setEditingField(undefined); setFieldEditorOpen(true); }; const isFromCode = collection?.source === "code"; const fields = collection?.fields ?? []; const sensors = useSensors( useSensor(PointerSensor, { activationConstraint: { distance: 8 } }), useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }), ); const handleDragEnd = (event: DragEndEvent) => { const { active, over } = event; if (!over || active.id === over.id) return; const oldIndex = fields.findIndex((f) => f.id === active.id); const newIndex = fields.findIndex((f) => f.id === over.id); if (oldIndex === -1 || newIndex === -1) return; const reordered = arrayMove(fields, oldIndex, newIndex); onReorderFields?.(reordered.map((f) => f.slug)); }; return ( <div className="space-y-6"> {/* Sticky header keeps the primary save action in view while users scroll through the settings + fields panels. The bottom-of-form save button is preserved below for keyboard / screen-reader users so DOM order still ends with a submit control. */} <EditorHeader leading={ <RouterLinkButton to="/content-types" aria-label={t`Back to Content Types`} variant="ghost" shape="square" icon={<ArrowPrev />} /> } actions={ !isFromCode && !isNew ? ( <SaveButton type="submit" form="content-type-editor-form" isDirty={!!hasChanges} isSaving={!!isSaving} disabled={!urlPatternValid} /> ) : null } > <h1 className="text-2xl font-bold truncate"> {isNew ? t`New Content Type` : collection?.label} </h1> {!isNew && ( <p className="text-kumo-subtle text-sm"> <code className="bg-kumo-tint px-1.5 py-0.5 rounded">{collection?.slug}</code> {isFromCode && ( <span className="ms-2 text-purple-600 dark:text-purple-400">{t`Defined in code`}</span> )} </p> )} </EditorHeader> {isFromCode && ( <div className="rounded-lg border border-purple-200 dark:border-purple-800 bg-purple-50 dark:bg-purple-950 p-4"> <div className="flex items-center space-x-2"> <FileText className="h-5 w-5 text-purple-600 dark:text-purple-400" /> <p className="text-sm text-purple-700 dark:text-purple-300"> {t`This collection is defined in code. Some settings cannot be changed here. Edit your live.config.ts file to modify the schema.`} </p> </div> </div> )} <div className="grid grid-cols-1 lg:grid-cols-3 gap-6"> {/* Settings form */} <div className="lg:col-span-1"> <form id="content-type-editor-form" onSubmit={handleSubmit} className="space-y-4"> <div className="rounded-lg border bg-kumo-base p-4 space-y-4"> <h2 className="font-semibold">{t`Settings`}</h2> <Input label={t`Label (Singular)`} value={labelSingular} onChange={(e) => handleSingularLabelChange(e.target.value)} placeholder={t`Post`} disabled={isFromCode} /> <Input label={t`Label (Plural)`} value={label} onChange={(e) => handleLabelChange(e.target.value)} placeholder={t`Posts`} disabled={isFromCode} /> {isNew && ( <div> <Input label={t`Slug`} value={slug} onChange={(e) => setSlug(e.target.value)} placeholder="posts" disabled={!isNew} /> <p className="text-xs text-kumo-subtle mt-2">{t`Used in URLs and API endpoints`}</p> </div> )} <InputArea label={t`Description`} value={description} onChange={(e) => setDescription(e.target.value)} placeholder={t`A brief description of this content type`} rows={3} disabled={isFromCode} /> <div> <Input label={t`URL Pattern`} value={urlPattern} onChange={(e) => setUrlPattern(e.target.value)} placeholder={`/${slug === "pages" ? "" : `${slug}/`}{slug}`} disabled={isFromCode} /> {urlPattern && !urlPattern.includes("{slug}") && ( <p className="text-xs text-kumo-danger mt-2"> {t`Pattern must include a ${"{slug}"} placeholder`} </p> )} <p className="text-xs text-kumo-subtle mt-1"> {t`Pattern for generating URLs, e.g. /blog/${"{slug}"}`} </p> </div> <div className="space-y-3"> <Label>{t`Features`}</Label> {SUPPORT_OPTIONS.map((option) => ( <div key={option.value} className={cn( "p-2 rounded-md hover:bg-kumo-tint/50", isFromCode && "opacity-60", )} > <Checkbox checked={supports.includes(option.value)} onCheckedChange={() => handleSupportToggle(option.value)} disabled={isFromCode} label={ <div> <span className="text-sm font-medium">{t(option.label)}</span> <p className="text-xs text-kumo-subtle">{t(option.description)}</p> </div> } /> </div> ))} </div> {/* SEO toggle */} <div className="pt-2 border-t"> <Switch checked={hasSeo} onCheckedChange={(checked) => setHasSeo(checked)} disabled={isFromCode} label={ <div> <span className="text-sm font-medium">{t`SEO`}</span> <p className="text-xs text-kumo-subtle"> {t`Add SEO metadata fields (title, description, image) and include in sitemap`} </p> </div> } /> </div> </div> {/* Comments settings — only for existing collections */} {!isNew && ( <div className="rounded-lg border bg-kumo-base p-4 space-y-4"> <h2 className="font-semibold">{t`Comments`}</h2> <Switch checked={commentsEnabled} onCheckedChange={(checked) => setCommentsEnabled(checked)} disabled={isFromCode} label={ <div> <span className="text-sm font-medium">{t`Enable comments`}</span> <p className="text-xs text-kumo-subtle"> {t`Allow visitors to leave comments on this collection's content`} </p> </div> } /> {commentsEnabled && ( <> <Select label={t`Moderation`} value={commentsModeration} onValueChange={(v) => setCommentsModeration((v as "all" | "first_time" | "none") ?? "first_time") } items={{ all: t(MODERATION_OPTIONS.all), first_time: t(MODERATION_OPTIONS.first_time), none: t(MODERATION_OPTIONS.none), }} disabled={isFromCode} /> <Input label={t`Close comments after (days)`} type="number" min={0} value={String(commentsClosedAfterDays)} onChange={(e) => { const parsed = Number.parseInt(e.target.value, 10); setCommentsClosedAfterDays(Number.isNaN(parsed) ? 0 : Math.max(0, parsed)); }} disabled={isFromCode} /> <p className="text-xs text-kumo-subtle -mt-2"> {t`Set to 0 to never close comments automatically.`} </p> <Switch checked={commentsAutoApproveUsers} onCheckedChange={(checked) => setCommentsAutoApproveUsers(checked)} disabled={isFromCode} label={ <div> <span className="text-sm font-medium"> {t`Auto-approve authenticated users`} </span> <p className="text-xs text-kumo-subtle"> {t`Comments from logged-in CMS users are approved automatically`} </p> </div> } /> </> )} </div> )} {!isFromCode && ( <Button type="submit" disabled={!hasChanges || !urlPatternValid || isSaving} className="w-full" > {isSaving ? t`Saving...` : isNew ? t`Create Content Type` : t`Save Changes`} </Button> )} </form> </div> {/* Fields section - only show for existing collections */} {!isNew && ( <div className="lg:col-span-2"> <div className="rounded-lg border bg-kumo-base"> <div className="flex items-center justify-between p-4 border-b"> <div> <h2 className="font-semibold">{t`Fields`}</h2> <p className="text-sm text-kumo-subtle"> <Trans> {SYSTEM_FIELDS.length} system + {fields.length} custom{" "} {plural(fields.length, { one: "field", other: "fields" })} </Trans> </p> </div> {!isFromCode && ( <Button icon={<Plus />} onClick={handleAddField}> {t`Add Field`} </Button> )} </div> {/* System fields - always shown */} <div> <div className="px-4 py-2 text-xs font-medium text-kumo-subtle uppercase tracking-wider bg-kumo-tint/50 border-b"> {t`System Fields`} </div> <div className="divide-y divide-kumo-line/50 border-b"> {SYSTEM_FIELDS.map((field) => ( <SystemFieldRow key={field.slug} field={field} /> ))} </div> </div> {/* Custom fields */} {fields.length === 0 ? ( <div className="p-8 text-center text-kumo-subtle"> <Database className="mx-auto h-12 w-12 mb-4 opacity-50" /> <p className="font-medium">{t`No custom fields yet`}</p> <p className="text-sm">{t`Add fields to define the structure of your content`}</p> {!isFromCode && ( <Button className="mt-4" icon={<Plus />} onClick={handleAddField}> {t`Add First Field`} </Button> )} </div> ) : ( <> <div className="px-4 py-2 text-xs font-medium text-kumo-subtle uppercase tracking-wider bg-kumo-tint/50 border-b"> {t`Custom Fields`} </div> <DndContext sensors={sensors} collisionDetection={closestCenter} onDragEnd={handleDragEnd} > <SortableContext items={fields.map((f) => f.id)} strategy={verticalListSortingStrategy} > <div className="divide-y"> {fields.map((field) => ( <FieldRow key={field.id} field={field} isFromCode={isFromCode} onEdit={() => handleEditField(field)} onDelete={() => setDeleteFieldTarget(field)} /> ))} </div> </SortableContext> </DndContext> </> )} </div> </div> )} </div> {/* Field editor dialog */} <FieldEditor open={fieldEditorOpen} onOpenChange={setFieldEditorOpen} field={editingField} onSave={handleFieldSave} isSaving={fieldSaving} /> <ConfirmDialog open={!!deleteFieldTarget} onClose={() => setDeleteFieldTarget(null)} title={t`Delete Field?`} description={ deleteFieldTarget ? t`Are you sure you want to delete the "${deleteFieldTarget.label}" field?` : "" } confirmLabel={t`Delete`} pendingLabel={t`Deleting...`} isPending={false} error={null} onConfirm={() => { if (deleteFieldTarget) { onDeleteField?.(deleteFieldTarget.slug); setDeleteFieldTarget(null); } }} /> </div> ); } interface FieldRowProps { field: SchemaField; isFromCode?: boolean; onEdit: () => void; onDelete: () => void; } function FieldRow({ field, isFromCode, onEdit, onDelete }: FieldRowProps) { const { t } = useLingui(); const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: field.id, disabled: isFromCode, }); const style = { transform: CSS.Transform.toString(transform), transition }; return ( <div ref={setNodeRef} style={style} className={cn( "flex items-center px-4 py-3 hover:bg-kumo-tint/25", isDragging && "opacity-50", )} > {!isFromCode && ( <button {...attributes} {...listeners} className="cursor-grab active:cursor-grabbing me-3" aria-label={t`Drag to reorder ${field.label}`} > <DotsSixVertical className="h-5 w-5 text-kumo-subtle" /> </button> )} <div className="flex-1 min-w-0"> <div className="flex items-center space-x-2"> <span className="font-medium">{field.label}</span> <code className="text-xs bg-kumo-tint px-1.5 py-0.5 rounded text-kumo-subtle"> {field.slug} </code> </div> <div className="flex items-center space-x-2 mt-1"> <span className="text-xs text-kumo-subtle capitalize">{field.type}</span> {field.required && <Badge variant="secondary">{t`Required`}</Badge>} {field.unique && <Badge variant="secondary">{t`Unique`}</Badge>} {field.searchable && <Badge variant="secondary">{t`Searchable`}</Badge>} </div> </div> {!isFromCode && ( <div className="flex items-center space-x-1"> <Button variant="ghost" shape="square" onClick={onEdit} aria-label={t`Edit ${field.label} field`} > <Pencil className="h-4 w-4" /> </Button> <Button variant="ghost" shape="square" onClick={onDelete} aria-label={t`Delete ${field.label} field`} > <Trash className="h-4 w-4 text-kumo-danger" /> </Button> </div> )} </div> ); } interface SystemFieldInfo { slug: string; label: MessageDescriptor; type: string; description: MessageDescriptor; } function SystemFieldRow({ field }: { field: SystemFieldInfo }) { const { t } = useLingui(); return ( <div className="flex items-center px-4 py-2 opacity-75"> <div className="w-8" /> {/* Spacer for alignment with draggable fields */} <div className="flex-1 min-w-0"> <div className="flex items-center space-x-2"> <span className="font-medium text-sm">{t(field.label)}</span> <code className="text-xs bg-kumo-tint px-1.5 py-0.5 rounded text-kumo-subtle"> {field.slug} </code> <Badge variant="secondary">{t`System`}</Badge> </div> <p className="text-xs text-kumo-subtle mt-0.5">{t(field.description)}</p> </div> </div> ); } 
#: packages/admin/src/components/ContentTypeEditor.tsx:574
msgid "{0} system + {1} custom {2}"
msgstr "{0} système + {1} {2} personnalisé"

#. placeholder {0}: taxonomy.label
#: packages/admin/src/components/TaxonomySidebar.tsx:345
msgid "{0} updated"
msgstr "{0} mis à jour"

#. placeholder {0}: plugin.name
#. placeholder {1}: updateInfo?.latest
#: packages/admin/src/components/PluginManager.tsx:259
msgid "{0} updated to v{1}"
msgstr "{0} mis à jour vers v{1}"

#. placeholder {0}: item.filename
#. placeholder {1}: selected ? t` (selected)` : ""
#: packages/admin/src/components/MediaPickerModal.tsx:803
#: packages/admin/src/components/MediaPickerModal.tsx:886
msgid "{0}{1}"
msgstr "{0}{1}"

#. placeholder {0}: draft.description.length
#: packages/admin/src/components/SeoPanel.tsx:173
msgid "{0}/160 characters"
msgstr "{0}/160 caractères"

#. placeholder {0}: allowedHosts.join(", ")
#: packages/admin/src/lib/api/marketplace.ts:255
msgid "{base} to: {0}"
msgstr "{base} à : {0}"

#: packages/admin/src/components/RevisionHistory.tsx:337
msgid "{changedCount, plural, one {# change from next revision} other {# changes from next revision}}"
msgstr "{changedCount, plural, one {# modification par rapport à la prochaine révision} other {# modifications par rapport à la prochaine révision}}"

#: packages/admin/src/components/WordPressImport.tsx:1908
msgid "{count, plural, one {# file} other {# files}}"
msgstr "{count, plural, one {# fichier} other {# fichiers}}"

#: packages/admin/src/components/WordPressImport.tsx:2157
msgid "{count, plural, one {# item} other {# items}}"
msgstr "{count, plural, one {# élément} other {# éléments}}"

#: packages/admin/src/components/WordPressImport.tsx:1979
msgid "{current} of {total}"
msgstr "{current} sur {total}"

#. placeholder {0}: hasMore ? "+" : ""
#. placeholder {1}: hasMore ? "+" : ""
#: packages/admin/src/components/ContentList.tsx:747
msgid "{filteredCount, plural, one {#{0} item} other {#{1} items}}"
msgstr "{filteredCount, plural, one {#{0} élément} other {#{1} éléments}}"

#: packages/admin/src/components/LocaleSwitcher.tsx:107
msgid "{label} — no translation"
msgstr "{label} — aucune traduction"

#: packages/admin/src/components/LocaleSwitcher.tsx:107
msgid "{label} — view translation"
msgstr "{label} — voir la traduction"

#: packages/admin/src/components/ContentList.tsx:736
msgid "{matchCount, plural, one {# item matching \"{searchQuery}\"} other {# items matching \"{searchQuery}\"}}"
msgstr "{matchCount, plural, one {# élément correspondant à \"{searchQuery}\"} other {# éléments correspondant à \"{searchQuery}\"}}"

#: packages/admin/src/components/WordPressImport.tsx:2279
msgid "{matchedCount} of {totalCount} assigned"
msgstr "{matchedCount} sur {totalCount} attribués"

#: packages/admin/src/components/WordPressImport.tsx:2267
msgid "{matchedCount} of {totalCount} authors matched by email"
msgstr "{matchedCount} auteurs sur {totalCount} correspondants par e-mail"

#: packages/admin/src/components/WordPressImport.tsx:1715
msgid "{needsNewCollections, plural, one {# new collection will be created} other {# new collections will be created}}"
msgstr "{needsNewCollections, plural, one {Une nouvelle collection sera créée} other {# nouvelles collections seront créées}}"

#: packages/admin/src/components/WordPressImport.tsx:1724
msgid "{needsNewFields, plural, one {Fields will be added to # existing collection} other {Fields will be added to # existing collections}}"
msgstr "{needsNewFields, plural, one {Les champs seront ajoutés à la collection existante} other {Les champs seront ajoutés aux # collections existantes}}"

#: packages/admin/src/components/CapabilityConsentDialog.tsx:79
msgid "{pluginName} is requesting additional permissions:"
msgstr "{pluginName} demande des autorisations supplémentaires :"

#: packages/admin/src/components/CapabilityConsentDialog.tsx:80
msgid "{pluginName} requires the following permissions:"
msgstr "{pluginName} nécessite les autorisations suivantes :"

#: packages/admin/src/components/ContentList.tsx:742
msgid "{total, plural, one {# item} other {# items}}"
msgstr "{total, plural, one {# élément} other {# éléments}}"

#: packages/admin/src/components/comments/CommentInbox.tsx:149
msgid "{total, plural, one {# total} other {# total}}"
msgstr "{total, plural, one {# au total} other {# au total}}"

#: packages/admin/src/components/MediaLibrary.tsx:185
#: packages/admin/src/components/MediaLibrary.tsx:221
msgid "{total, plural, one {File uploaded} other {# files uploaded}}"
msgstr "{total, plural, one {Fichier téléversé} other {# fichiers téléversés}}"

#: packages/admin/src/components/MediaLibrary.tsx:190
#: packages/admin/src/components/MediaLibrary.tsx:226
msgid "{total, plural, one {Upload failed} other {All # uploads failed}}"
msgstr "{total, plural, one {Échec du téléversement} other {Échec de # téléversements}}"

#: packages/admin/src/components/Dashboard.tsx:113
msgid "{totalDrafts, plural, one {# draft} other {# drafts}}"
msgstr "{totalDrafts, plural, one {# brouillon} other {# brouillons}}"

#: packages/admin/src/components/Dashboard.tsx:118
msgid "{totalScheduled, plural, one {# scheduled} other {# scheduled}}"
msgstr "{totalScheduled, plural, one {# contenu programmé} other {# contenus programmés}}"

#: packages/admin/src/components/RevisionHistory.tsx:349
msgid "{unchangedCount, plural, one {Hide # unchanged} other {Hide # unchanged}}"
msgstr "{unchangedCount, plural, one {Masquer # champ inchangé} other {Masquer # champs inchangés}}"

#: packages/admin/src/components/RevisionHistory.tsx:350
msgid "{unchangedCount, plural, one {Show # unchanged} other {Show # unchanged}}"
msgstr "{unchangedCount, plural, one {Afficher # champ inchangé} other {Afficher # champs inchangés}}"

#: packages/admin/src/components/MediaLibrary.tsx:195
#: packages/admin/src/components/MediaLibrary.tsx:231
msgid "{uploaded} uploaded, {failed} failed"
msgstr "{uploaded} téléversés, {failed} en échec"

#: packages/admin/src/components/Redirects.tsx:141
msgid "/new-page or /articles/[slug]"
msgstr "/nouvelle-page ou /articles/[slug]"

#: packages/admin/src/components/Redirects.tsx:132
msgid "/old-page or /blog/[slug]"
msgstr "/ancienne page ou /blog/[slug]"

#: packages/admin/src/components/WordPressImport.tsx:1929
msgid "• Files are downloaded from your WordPress site"
msgstr "• Les fichiers sont téléchargés depuis votre site WordPress"

#: packages/admin/src/components/WordPressImport.tsx:1930
msgid "• Uploaded to your EmDash media storage"
msgstr "• Téléversé vers votre espace de stockage de fichiers multimédias EmDash"

#: packages/admin/src/components/WordPressImport.tsx:1931
msgid "• URLs in your content are updated automatically"
msgstr "• Les URL dans votre contenu sont mises à jour automatiquement"

#: packages/admin/src/components/SetupWizard.tsx:225
#: packages/admin/src/components/SetupWizard.tsx:277
#: packages/admin/src/components/SetupWizard.tsx:332
#: packages/admin/src/components/WordPressImport.tsx:1440
msgid "← Back"
msgstr "← Retour"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:35
msgid "1 year"
msgstr "1 an"

#: packages/admin/src/components/WordPressImport.tsx:1361
msgid "1. Log into your WordPress admin"
msgstr "1. Connectez-vous à l'administration WordPress"

#: packages/admin/src/components/WordPressImport.tsx:1114
msgid "1. Log into your WordPress admin dashboard"
msgstr "1. Connectez-vous à votre tableau de bord d'administration WordPress"

#: packages/admin/src/components/WordPressImport.tsx:1116
msgid "2. Go to"
msgstr "2. Allez à"

#: packages/admin/src/components/WordPressImport.tsx:1362
msgid "2. Go to Users → Profile"
msgstr "2. Allez dans Utilisateurs → Profil"

#: packages/admin/src/components/WordPressImport.tsx:1363
msgid "3. Scroll to \"Application Passwords\""
msgstr "3. Faites défiler jusqu'à « Mots de passe d'application »"

#: packages/admin/src/components/WordPressImport.tsx:1118
msgid "3. Select \"All content\""
msgstr "3. Sélectionnez « Tout le contenu »"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:33
msgid "30 days"
msgstr "30 jours"

#: packages/admin/src/components/Redirects.tsx:155
msgid "301 Permanent"
msgstr "301 Permanent"

#: packages/admin/src/components/Redirects.tsx:156
msgid "302 Temporary"
msgstr "302 Temporaire"

#: packages/admin/src/components/Redirects.tsx:157
msgid "307 Temporary (Strict)"
msgstr "307 Temporaire (Strict)"

#: packages/admin/src/components/Redirects.tsx:158
msgid "308 Permanent (Strict)"
msgstr "308 Permanent (Strict)"

#: packages/admin/src/components/WordPressImport.tsx:1119
msgid "4. Click \"Download Export File\""
msgstr "4. Cliquez sur « Télécharger le fichier d'exportation »"

#: packages/admin/src/components/WordPressImport.tsx:1364
msgid "4. Enter \"EmDash\" and click \"Add New\""
msgstr "4. Saisissez « EmDash » et cliquez sur « Ajouter »."

#: packages/admin/src/components/Redirects.tsx:394
msgid "404 Errors"
msgstr "Erreurs 404"

#: packages/admin/src/components/Redirects.tsx:159
msgid "410 Content Deleted (Gone)"
msgstr ""

#: packages/admin/src/components/Redirects.tsx:160
msgid "451 Unavailable for legal reasons"
msgstr ""

#: packages/admin/src/components/WordPressImport.tsx:1365
msgid "5. Copy the generated password"
msgstr "5. Copiez le mot de passe généré"

#: packages/admin/src/components/WordPressImport.tsx:1120
msgid "5. Upload the file here"
msgstr "5. Importez le fichier ici"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:32
msgid "7 days"
msgstr "7 jours"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:34
msgid "90 days"
msgstr "90 jours"

#: packages/admin/src/components/ContentTypeEditor.tsx:418
msgid "A brief description of this content type"
msgstr "Une brève description de ce type de contenu"

#: packages/admin/src/components/Sections.tsx:203
msgid "A full-width hero banner with heading, text, and CTA button"
msgstr "Une bannière de couverture pleine largeur avec titre, texte et bouton CTA"

#: packages/admin/src/components/settings/GeneralSettings.tsx:165
msgid "A short description of your site"
msgstr "Une brève description de votre site"

#: packages/admin/src/components/CapabilityConsentDialog.tsx:170
msgid "Accept & Install"
msgstr "Accepter et installer"

#: packages/admin/src/components/CapabilityConsentDialog.tsx:169
msgid "Accept & Update"
msgstr "Accepter et mettre à jour"

#: packages/admin/src/components/InviteAcceptPage.tsx:206
msgid "Accept Invite"
msgstr "Accepter l'invitation"

#: packages/admin/src/routes/byline-schema.tsx:174
msgid "Access denied"
msgstr "Accès refusé"

#: packages/admin/src/router.tsx:1297
msgid "Access Denied"
msgstr "Accès refusé"

#: packages/admin/src/lib/api/marketplace.ts:224
#: packages/admin/src/lib/api/marketplace.ts:232
msgid "Access your media library"
msgstr "Accédez à votre médiathèque"

#: packages/admin/src/components/SetupWizard.tsx:354
msgid "Account"
msgstr "Compte"

#: packages/admin/src/components/InviteAcceptPage.tsx:121
msgid "Account already exists"
msgstr "Le compte existe déjà"

#: packages/admin/src/components/SignupPage.tsx:261
msgid "Account exists"
msgstr "Le compte existe"

#: packages/admin/src/components/users/UserDetail.tsx:216
msgid "Account Info"
msgstr "Informations sur le compte"

#: packages/admin/src/components/comments/CommentInbox.tsx:299
#: packages/admin/src/components/ContentList.tsx:345
#: packages/admin/src/components/ContentList.tsx:463
#: packages/admin/src/components/ContentTypeList.tsx:106
#: packages/admin/src/components/MediaLibrary.tsx:493
#: packages/admin/src/components/TaxonomyManager.tsx:823
#: packages/admin/src/routes/byline-schema.tsx:249
msgid "Actions"
msgstr "Actions"

#: packages/admin/src/components/users/UserDetail.tsx:206
#: packages/admin/src/components/users/UserList.tsx:217
msgid "Active"
msgstr "Actif"

#: packages/admin/src/components/AllowedTypesEditor.tsx:171
#: packages/admin/src/components/ContentEditor.tsx:1915
#: packages/admin/src/components/MenuEditor.tsx:362
#: packages/admin/src/components/TaxonomySidebar.tsx:476
msgid "Add"
msgstr "Ajouter"

#. placeholder {0}: field.item_label
#. placeholder {0}: taxonomyDef.labelSingular || t`Term`
#: packages/admin/src/components/PortableTextEditor.tsx:1657
#: packages/admin/src/components/TaxonomyManager.tsx:362
#: packages/admin/src/components/TaxonomyManager.tsx:814
msgid "Add {0}"
msgstr "Ajouter {0}"

#: packages/admin/src/components/TaxonomySidebar.tsx:263
msgid "Add {label}"
msgstr "Ajouter {label}"

#: packages/admin/src/components/settings/SecuritySettings.tsx:204
msgid "Add a new passkey"
msgstr "Ajouter une nouvelle clé d'accès"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:304
msgid "Add an allowed domain"
msgstr "Ajouter un domaine autorisé"

#: packages/admin/src/components/FieldEditor.tsx:544
msgid "Add at least one sub-field to define the repeater structure."
msgstr "Ajoutez au moins un sous-champ pour définir la structure du répéteur."

#: packages/admin/src/components/PortableTextEditor.tsx:2783
msgid "Add column after"
msgstr "Ajouter une colonne après"

#: packages/admin/src/components/PortableTextEditor.tsx:2776
msgid "Add column before"
msgstr "Ajouter une colonne avant"

#: packages/admin/src/components/MenuEditor.tsx:299
#: packages/admin/src/components/MenuEditor.tsx:414
msgid "Add Content"
msgstr "Ajouter du contenu"

#: packages/admin/src/components/MenuEditor.tsx:311
#: packages/admin/src/components/MenuEditor.tsx:318
#: packages/admin/src/components/MenuEditor.tsx:417
msgid "Add Custom Link"
msgstr "Ajouter un lien personnalisé"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:344
#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:349
msgid "Add Domain"
msgstr "Ajouter un domaine"

#: packages/admin/src/components/ContentTypeEditor.tsx:582
#: packages/admin/src/components/FieldEditor.tsx:342
#: packages/admin/src/components/FieldEditor.tsx:660
msgid "Add Field"
msgstr "Ajouter un champ"

#: packages/admin/src/components/WordPressImport.tsx:1820
msgid "Add fields"
msgstr "Ajouter des champs"

#: packages/admin/src/routes/byline-schema.tsx:293
msgid "Add fields like \"Job title\" or \"Pronouns\" to enrich every byline."
msgstr "Ajoutez des champs comme « Intitulé du poste » ou « Pronoms » pour enrichir chaque auteur."

#: packages/admin/src/components/ContentTypeEditor.tsx:604
msgid "Add fields to define the structure of your content"
msgstr "Ajoutez des champs pour définir la structure de votre contenu"

#: packages/admin/src/components/ContentTypeEditor.tsx:607
msgid "Add First Field"
msgstr "Ajouter le premier champ"

#: packages/admin/src/components/RepeaterField.tsx:174
msgid "Add First Item"
msgstr "Ajouter un premier élément"

#: packages/admin/src/components/PortableTextEditor.tsx:1657
msgid "Add item"
msgstr "Ajouter un élément"

#: packages/admin/src/components/RepeaterField.tsx:158
msgid "Add Item"
msgstr "Ajouter un élément"

#: packages/admin/src/components/PortableTextEditor.tsx:2743
msgid "Add link"
msgstr "Ajouter un lien"

#: packages/admin/src/components/MenuEditor.tsx:407
msgid "Add links to build your navigation menu"
msgstr "Ajoutez des liens pour créer votre menu de navigation"

#: packages/admin/src/components/AllowedTypesEditor.tsx:162
msgid "Add MIME type or extension"
msgstr "Ajouter un type MIME ou une extension"

#: packages/admin/src/components/ContentList.tsx:256
msgid "Add New"
msgstr "Ajouter"

#. placeholder {0}: (taxonomy.labelSingular || taxonomy.label).toLowerCase()
#: packages/admin/src/components/TaxonomySidebar.tsx:486
msgid "Add new {0}"
msgstr "Ajouter un nouveau {0}"

#: packages/admin/src/components/SeoPanel.tsx:197
msgid "Add noindex meta tag"
msgstr "Ajouter une balise méta noindex"

#: packages/admin/src/components/settings/SecuritySettings.tsx:225
msgid "Add Passkey"
msgstr "Ajouter une clé d'accès"

#: packages/admin/src/components/PluginManager.tsx:206
msgid "Add plugins to your astro.config.mjs to extend EmDash functionality."
msgstr "Ajoutez des modules d'extension à votre fichier astro.config.mjs pour étendre les fonctionnalités d'EmDash."

#: packages/admin/src/components/PortableTextEditor.tsx:2806
msgid "Add row after"
msgstr "Ajouter une ligne après"

#: packages/admin/src/components/PortableTextEditor.tsx:2799
msgid "Add row before"
msgstr "Ajouter une ligne avant"

#: packages/admin/src/components/ContentTypeEditor.tsx:476
msgid "Add SEO metadata fields (title, description, image) and include in sitemap"
msgstr "Ajouter des champs de métadonnées SEO (titre, description, image) et les inclure dans le plan du site"

#: packages/admin/src/components/FieldEditor.tsx:538
msgid "Add Sub-Field"
msgstr "Ajouter un sous-champ"

#: packages/admin/src/components/TaxonomySidebar.tsx:262
msgid "Add tags..."
msgstr "Ajouter des étiquettes..."

#: packages/admin/src/components/Widgets.tsx:338
msgid "Add Widget Area"
msgstr "Ajouter une zone de widget"

#: packages/admin/src/components/settings/SocialSettings.tsx:128
msgid "Add your social media profiles. These are available to your site's theme and can be displayed in headers, footers, or author bios."
msgstr "Ajoutez vos profils de réseaux sociaux. Ceux-ci sont disponibles pour le thème de votre site et peuvent être affichés dans les en-têtes, les pieds de page ou les biographies des auteurs."

#: packages/admin/src/components/MenuEditor.tsx:362
#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:344
msgid "Adding..."
msgstr "En cours d'ajout..."

#: packages/admin/src/components/WordPressImport.tsx:1592
msgid "Additional data to import."
msgstr "Données supplémentaires à importer."

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:95
#: packages/admin/src/components/Sidebar.tsx:469
#: packages/admin/src/components/users/roleDefinitions.ts:42
msgid "Admin"
msgstr "Admin"

#: packages/admin/src/components/Sidebar.tsx:419
msgid "Admin navigation"
msgstr "Navigation administrateur"

#: packages/admin/src/components/WelcomeModal.tsx:25
msgid "Administrator"
msgstr "Administrateur"

#: packages/admin/src/components/settings/EmailSettings.tsx:224
msgid "After send:"
msgstr "Après l'envoi :"

#: packages/admin/src/components/PortableTextEditor.tsx:3133
msgid "Align Center"
msgstr "Aligner au centre"

#: packages/admin/src/components/PortableTextEditor.tsx:3126
msgid "Align Left"
msgstr "Aligner à gauche"

#: packages/admin/src/components/PortableTextEditor.tsx:3140
msgid "Align Right"
msgstr "Aligner à droite"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:324
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:513
msgid "Alignment"
msgstr ""

#: packages/admin/src/components/ContentList.tsx:283
msgid "All"
msgstr "Tous"

#: packages/admin/src/components/ContentList.tsx:587
#: packages/admin/src/components/ContentList.tsx:591
msgid "All authors"
msgstr ""

#: packages/admin/src/routes/bylines.tsx:413
msgid "All bylines"
msgstr "Tous les auteurs"

#: packages/admin/src/components/MarketplaceBrowse.tsx:108
msgid "All capabilities"
msgstr "Toutes les capacités"

#: packages/admin/src/components/comments/CommentInbox.tsx:133
msgid "All collections"
msgstr "Toutes les collections"

#: packages/admin/src/components/ContentTypeEditor.tsx:63
msgid "All comments require approval"
msgstr "Tous les commentaires nécessitent une approbation"

#: packages/admin/src/components/WordPressImport.tsx:2324
msgid "All imported content will be unassigned. You can reassign authors later from the content editor."
msgstr "Tout le contenu importé ne sera pas attribué. Vous pouvez réaffecter les auteurs ultérieurement à partir de l'éditeur de contenu."

#: packages/admin/src/components/LocaleSwitcher.tsx:68
msgid "All locales"
msgstr "Toutes les langues"

#: packages/admin/src/components/users/UserList.tsx:42
#: packages/admin/src/components/users/UserList.tsx:46
msgid "All roles"
msgstr "Tous les rôles"

#: packages/admin/src/components/Sections.tsx:240
msgid "All Sources"
msgstr "Toutes les sources"

#: packages/admin/src/components/ContentList.tsx:542
#: packages/admin/src/components/Redirects.tsx:418
msgid "All statuses"
msgstr "Tous les statuts"

#: packages/admin/src/components/MediaLibrary.tsx:400
#: packages/admin/src/components/Redirects.tsx:424
msgid "All types"
msgstr "Tous les types"

#: packages/admin/src/components/Settings.tsx:99
msgid "Allow users from specific domains to sign up"
msgstr "Autoriser les utilisateurs de domaines spécifiques à s'inscrire"

#: packages/admin/src/components/ContentTypeEditor.tsx:497
msgid "Allow visitors to leave comments on this collection's content"
msgstr "Autoriser les visiteurs à laisser des commentaires sur le contenu de cette collection"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:240
msgid "Allowed Domains"
msgstr "Domaines autorisés"

#: packages/admin/src/components/AllowedTypesEditor.tsx:102
msgid "Allowed types"
msgstr "Types autorisés"

#: packages/admin/src/components/SignupPage.tsx:437
msgid "Already have an account?"
msgstr "Vous avez déjà un compte ?"

#: packages/admin/src/components/PluginManager.tsx:634
msgid "Also delete plugin storage data"
msgstr "Supprimez également les données de stockage du module d'extension"

#: packages/admin/src/components/editor/ImageNode.tsx:231
msgid "Alt text"
msgstr "Texte alternatif"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:344
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:533
#: packages/admin/src/components/MediaDetailPanel.tsx:216
msgid "Alt Text"
msgstr "Texte alternatif"

#: packages/admin/src/components/MediaLibrary.tsx:697
#: packages/admin/src/components/MediaLibrary.tsx:754
msgid "Alt text set"
msgstr "Ensemble de texte alternatif"

#: packages/admin/src/components/WordPressImport.tsx:1234
msgid "Alternatively, you can export from WordPress (Tools → Export) and upload the file."
msgstr "Alternativement, vous pouvez exporter depuis WordPress (Outils → Exporter) et importer le fichier."

#: packages/admin/src/components/DialogError.tsx:14
#: packages/admin/src/components/MarketplaceBrowse.tsx:133
#: packages/admin/src/components/PluginManager.tsx:98
#: packages/admin/src/components/PluginManager.tsx:117
#: packages/admin/src/components/TaxonomySidebar.tsx:350
#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:114
#: packages/admin/src/router.tsx:399
#: packages/admin/src/router.tsx:414
#: packages/admin/src/router.tsx:428
#: packages/admin/src/router.tsx:442
#: packages/admin/src/router.tsx:818
#: packages/admin/src/router.tsx:856
#: packages/admin/src/router.tsx:874
#: packages/admin/src/router.tsx:892
#: packages/admin/src/router.tsx:913
#: packages/admin/src/router.tsx:934
#: packages/admin/src/router.tsx:955
#: packages/admin/src/router.tsx:986
#: packages/admin/src/router.tsx:1006
#: packages/admin/src/router.tsx:1242
#: packages/admin/src/router.tsx:1258
#: packages/admin/src/router.tsx:1283
#: packages/admin/src/router.tsx:1765
#: packages/admin/src/routes/byline-schema.tsx:103
#: packages/admin/src/routes/byline-schema.tsx:123
#: packages/admin/src/routes/byline-schema.tsx:139
#: packages/admin/src/routes/byline-schema.tsx:153
msgid "An error occurred"
msgstr "Une erreur s'est produite"

#: packages/admin/src/routes/byline-schema.tsx:272
msgid "An unexpected error occurred."
msgstr "Une erreur inattendue s'est produite."

#: packages/admin/src/components/InviteAcceptPage.tsx:217
msgid "An unknown error occurred"
msgstr "Une erreur inconnue s'est produite"

#: packages/admin/src/components/WordPressImport.tsx:1414
msgid "Analyzing export file..."
msgstr "Analyse du fichier d'exportation en cours..."

#: packages/admin/src/components/WordPressImport.tsx:735
msgid "Analyzing WordPress site..."
msgstr "Analyse du site WordPress en cours..."

#: packages/admin/src/components/AllowedTypesEditor.tsx:105
msgid "Any media type allowed (subject to global limits)."
msgstr "Tout type de média autorisé (sous réserve des limites globales)."

#: packages/admin/src/components/Settings.tsx:109
#: packages/admin/src/components/settings/ApiTokenSettings.tsx:183
msgid "API Tokens"
msgstr "Jetons d'API"

#: packages/admin/src/components/Widgets.tsx:375
msgid "Appears on posts and pages"
msgstr "Apparaît sur les articles et les pages"

#: packages/admin/src/components/WordPressImport.tsx:1329
msgid "Application Password"
msgstr "Mot de passe de l'application"

#: packages/admin/src/components/PortableTextEditor.tsx:3200
msgid "Apply"
msgstr "Appliquer"

#: packages/admin/src/components/editor/CodeBlockNode.tsx:181
#: packages/admin/src/components/editor/CodeBlockNode.tsx:182
msgid "Apply language"
msgstr "Appliquer la langue"

#: packages/admin/src/components/PortableTextEditor.tsx:2683
#: packages/admin/src/components/PortableTextEditor.tsx:2684
msgid "Apply link"
msgstr "Appliquer le lien"

#: packages/admin/src/components/comments/CommentDetail.tsx:148
#: packages/admin/src/components/comments/CommentInbox.tsx:237
#: packages/admin/src/components/comments/CommentInbox.tsx:489
msgid "Approve"
msgstr "Approuver"

#: packages/admin/src/components/comments/CommentDetail.tsx:195
msgid "approved"
msgstr "approuvé"

#: packages/admin/src/components/comments/CommentInbox.tsx:202
msgid "Approved"
msgstr "Approuvé"

#: packages/admin/src/components/FieldEditor.tsx:223
msgid "Arbitrary JSON data"
msgstr "Données JSON arbitraires"

#: packages/admin/src/components/ContentList.tsx:963
msgid "archived"
msgstr "archivé"

#: packages/admin/src/components/ContentList.tsx:546
msgid "Archived"
msgstr ""

#: packages/admin/src/components/AllowedTypesEditor.tsx:65
msgid "Archives"
msgstr "Archives"

#. placeholder {0}: deletingField.label
#: packages/admin/src/routes/byline-schema.tsx:375
msgid "Are you sure you want to delete \"{0}\"? No stored values reference this field."
msgstr "Êtes-vous sûr de vouloir supprimer « {0} » ? Aucune valeur enregistrée ne fait référence à ce champ."

#. placeholder {0}: deleteTarget.label
#: packages/admin/src/components/ContentTypeList.tsx:145
msgid "Are you sure you want to delete \"{0}\"? This will also delete all content in this collection."
msgstr "Êtes-vous sûr de vouloir supprimer « {0} » ? Cela supprimera également tout le contenu de cette collection."

#. placeholder {0}: deleteFieldTarget.label
#: packages/admin/src/components/ContentTypeEditor.tsx:660
msgid "Are you sure you want to delete the \"{0}\" field?"
msgstr "Êtes-vous sûr de vouloir supprimer le champ « {0} » ?"

#: packages/admin/src/components/MenuList.tsx:254
msgid "Are you sure you want to delete this menu? This will also delete all menu items. This action cannot be undone."
msgstr "Êtes-vous sûr de vouloir supprimer ce menu ? Cela supprimera également tous les éléments de menu. Cette action ne peut pas être annulée."

#: packages/admin/src/components/WelcomeModal.tsx:53
msgid "As an administrator, you can invite other users from the Users section."
msgstr "En tant qu'administrateur, vous pouvez inviter d'autres utilisateurs depuis la section Utilisateurs."

#: packages/admin/src/components/WordPressImport.tsx:2262
msgid "Assign WordPress authors to EmDash users. Posts will be attributed to the selected user."
msgstr "Attribuez des auteurs WordPress aux utilisateurs d'EmDash. Les publications seront attribuées à l'utilisateur sélectionné."

#: packages/admin/src/components/editor/codeBlockLanguages.ts:28
msgid "Astro"
msgstr ""

#: packages/admin/src/components/AllowedTypesEditor.tsx:66
#: packages/admin/src/components/MediaLibrary.tsx:403
msgid "Audio"
msgstr "Audio"

#. placeholder {0}: error.message
#: packages/admin/src/components/auth/PasskeyLogin.tsx:279
#: packages/admin/src/components/auth/PasskeyRegistration.tsx:278
msgid "Authentication error: {0}"
msgstr "Erreur d'authentification : {0}"

#: packages/admin/src/components/LoginPage.tsx:195
msgid "Authentication error: {error}"
msgstr "Erreur d'authentification : {error}"

#: packages/admin/src/components/auth/PasskeyLogin.tsx:256
msgid "Authentication failed"
msgstr "L'authentification a échoué"

#. placeholder {0}: manifest?.authMode
#: packages/admin/src/components/settings/SecuritySettings.tsx:129
msgid "Authentication is managed by an external provider ({0}). Passkey settings are not available when using external authentication."
msgstr "L'authentification est gérée par un fournisseur externe ({0}). Les paramètres de clé d'accès ne sont pas disponibles lors de l'utilisation de l'authentification externe."

#: packages/admin/src/components/auth/PasskeyLogin.tsx:263
msgid "Authentication was cancelled or timed out. Please try again."
msgstr "L'authentification a été annulée ou a expiré. Veuillez réessayer."

#: packages/admin/src/components/comments/CommentDetail.tsx:77
#: packages/admin/src/components/comments/CommentInbox.tsx:287
#: packages/admin/src/components/users/roleDefinitions.ts:30
#: packages/admin/src/components/WelcomeModal.tsx:27
msgid "Author"
msgstr "Auteur"

#: packages/admin/src/components/WordPressImport.tsx:2277
msgid "Author Mapping"
msgstr "Correspondance des auteurs"

#: packages/admin/src/components/DeviceAuthorizePage.tsx:197
msgid "Authorization denied"
msgstr "Autorisation refusée"

#: packages/admin/src/components/DeviceAuthorizePage.tsx:105
msgid "Authorization failed"
msgstr "L'autorisation a échoué"

#: packages/admin/src/components/DeviceAuthorizePage.tsx:259
msgid "Authorize"
msgstr "Autoriser"

#: packages/admin/src/components/DeviceAuthorizePage.tsx:176
msgid "Authorize Device"
msgstr "Autoriser l'appareil"

#: packages/admin/src/components/DeviceAuthorizePage.tsx:259
msgid "Authorizing..."
msgstr "En cours d'autorisation..."

#: packages/admin/src/components/RegistryPluginDetail.tsx:672
msgid "Authors"
msgstr "Auteurs"

#: packages/admin/src/components/Redirects.tsx:521
msgid "auto"
msgstr "auto"

#: packages/admin/src/components/Redirects.tsx:424
msgid "Auto (slug change)"
msgstr "Auto (changement de slug)"

#: packages/admin/src/components/ContentTypeEditor.tsx:541
msgid "Auto-approve authenticated users"
msgstr "Approuver automatiquement les utilisateurs authentifiés"

#: packages/admin/src/components/TaxonomyManager.tsx:408
msgid "Auto-generated from name (you can edit)"
msgstr "Généré automatiquement à partir du nom (vous pouvez le modifier)"

#: packages/admin/src/router.tsx:855
msgid "Autosave failed"
msgstr "Échec de l'enregistrement automatique"

#: packages/admin/src/components/ContentEditor.tsx:644
msgid "Autosave status"
msgstr "État de la sauvegarde automatique"

#: packages/admin/src/components/MediaPickerModal.tsx:662
msgid "Available media"
msgstr "Fichiers multimédias disponibles"

#: packages/admin/src/components/settings/EmailSettings.tsx:233
msgid "Available Providers"
msgstr "Fournisseurs disponibles"

#: packages/admin/src/components/Widgets.tsx:401
msgid "Available Widgets"
msgstr "Widgets disponibles"

#: packages/admin/src/components/BylineAvatarField.tsx:46
#: packages/admin/src/components/BylineAvatarField.tsx:71
msgid "Avatar"
msgstr ""

#: packages/admin/src/components/editor/BlockMenu.tsx:257
#: packages/admin/src/components/MenuEditor.tsx:283
#: packages/admin/src/components/WordPressImport.tsx:1349
#: packages/admin/src/components/WordPressImport.tsx:2333
msgid "Back"
msgstr "Retour"

#: packages/admin/src/components/ContentEditor.tsx:613
msgid "Back to {collectionLabel} list"
msgstr "Retour à la liste {collectionLabel}"

#: packages/admin/src/components/ContentTypeEditor.tsx:336
msgid "Back to Content Types"
msgstr "Retour aux types de contenu"

#: packages/admin/src/components/InviteAcceptPage.tsx:139
#: packages/admin/src/components/LoginPage.tsx:117
#: packages/admin/src/components/LoginPage.tsx:153
#: packages/admin/src/components/LoginPage.tsx:311
#: packages/admin/src/components/SignupPage.tsx:281
msgid "Back to login"
msgstr "Retour à la page de connexion"

#: packages/admin/src/components/MarketplacePluginDetail.tsx:115
#: packages/admin/src/components/MarketplacePluginDetail.tsx:391
msgid "Back to marketplace"
msgstr "Retour à la place de marché"

#: packages/admin/src/components/RegistryPluginDetail.tsx:805
msgid "Back to plugins"
msgstr "Retour aux modules d'extension"

#: packages/admin/src/components/SectionEditor.tsx:73
#: packages/admin/src/components/SectionEditor.tsx:174
msgid "Back to sections"
msgstr "Retour aux sections"

#: packages/admin/src/components/settings/BackToSettingsLink.tsx:19
msgid "Back to settings"
msgstr "Retour aux paramètres"

#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:86
#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:110
msgid "Back to Themes"
msgstr "Retour aux thèmes"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:29
msgid "Bash"
msgstr ""

#: packages/admin/src/components/settings/EmailSettings.tsx:219
msgid "Before send:"
msgstr "Avant l'envoi :"

#: packages/admin/src/components/settings/SeoSettings.tsx:233
msgid "Bing Verification"
msgstr "Vérification Bing"

#: packages/admin/src/routes/bylines.tsx:497
msgid "Bio"
msgstr "Biographie"

#: packages/admin/src/components/editor/DragHandleWrapper.tsx:125
msgid "Block actions - drag to reorder, click for menu"
msgstr "Bloquer les actions - faites glisser pour réorganiser, cliquez pour ouvrir le menu"

#: packages/admin/src/components/PortableTextEditor.tsx:2707
#: packages/admin/src/components/PortableTextEditor.tsx:3015
msgid "Bold"
msgstr "Gras"

#: packages/admin/src/components/BylineFieldEditor.tsx:55
#: packages/admin/src/components/FieldEditor.tsx:174
#: packages/admin/src/components/FieldEditor.tsx:583
msgid "Boolean"
msgstr "Booléen"

#: packages/admin/src/components/SeoPanel.tsx:174
msgid "Brief summary shown below the title in search results"
msgstr "Bref résumé affiché sous le titre dans les résultats de recherche"

#: packages/admin/src/components/RegistryBrowse.tsx:71
msgid "Browse and install plugins published to the decentralized registry."
msgstr "Parcourez et installez les modules d'extension publiés dans le registre décentralisé."

#: packages/admin/src/components/MarketplaceBrowse.tsx:88
msgid "Browse and install plugins to extend your site."
msgstr "Parcourez et installez des modules d'extension pour étendre votre site."

#: packages/admin/src/components/WordPressImport.tsx:966
#: packages/admin/src/components/WordPressImport.tsx:1433
msgid "Browse Files"
msgstr "Parcourir les fichiers"

#: packages/admin/src/components/PluginManager.tsx:199
msgid "Browse the"
msgstr "Parcourez le"

#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:79
msgid "Browse themes and preview them with your own content."
msgstr "Parcourez les thèmes et prévisualisez-les avec votre propre contenu."

#: packages/admin/src/components/editor/BlockMenu.tsx:102
#: packages/admin/src/components/PortableTextEditor.tsx:1040
#: packages/admin/src/components/PortableTextEditor.tsx:3083
msgid "Bullet List"
msgstr "Liste à puces"

#: packages/admin/src/routes/byline-schema.tsx:218
#: packages/admin/src/routes/bylines.tsx:384
msgid "Byline schema"
msgstr "Schéma des auteurs"

#: packages/admin/src/components/Sidebar.tsx:347
msgid "Byline Schema"
msgstr ""

#: packages/admin/src/components/ContentEditor.tsx:993
#: packages/admin/src/components/Sidebar.tsx:342
#: packages/admin/src/routes/bylines.tsx:376
msgid "Bylines"
msgstr "Auteurs"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:30
msgid "C"
msgstr ""

#: packages/admin/src/components/editor/codeBlockLanguages.ts:32
msgid "C#"
msgstr ""

#: packages/admin/src/components/editor/codeBlockLanguages.ts:31
msgid "C++"
msgstr ""

#: packages/admin/src/components/users/roleDefinitions.ts:25
msgid "Can create content"
msgstr "Peut créer du contenu"

#: packages/admin/src/components/users/roleDefinitions.ts:37
msgid "Can manage all content"
msgstr "Peut gérer tout le contenu"

#: packages/admin/src/components/users/roleDefinitions.ts:31
msgid "Can publish own content"
msgstr "Peut publier son propre contenu"

#: packages/admin/src/components/users/roleDefinitions.ts:19
msgid "Can view content"
msgstr "Peut consulter le contenu"

#: packages/admin/src/components/BylineFieldEditor.tsx:315
#: packages/admin/src/components/CapabilityConsentDialog.tsx:161
#: packages/admin/src/components/ConfirmDialog.tsx:57
#: packages/admin/src/components/ContentEditor.tsx:706
#: packages/admin/src/components/ContentEditor.tsx:907
#: packages/admin/src/components/ContentEditor.tsx:959
#: packages/admin/src/components/ContentEditor.tsx:2029
#: packages/admin/src/components/ContentEditor.tsx:2082
#: packages/admin/src/components/ContentList.tsx:851
#: packages/admin/src/components/ContentList.tsx:922
#: packages/admin/src/components/ContentPickerModal.tsx:248
#: packages/admin/src/components/editor/CodeBlockNode.tsx:193
#: packages/admin/src/components/editor/CodeBlockNode.tsx:194
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:586
#: packages/admin/src/components/editor/ImageNode.tsx:252
#: packages/admin/src/components/editor/ImageNode.tsx:253
#: packages/admin/src/components/editor/PluginBlockNode.tsx:406
#: packages/admin/src/components/FieldEditor.tsx:649
#: packages/admin/src/components/MediaDetailPanel.tsx:248
#: packages/admin/src/components/MediaPickerModal.tsx:744
#: packages/admin/src/components/MenuEditor.tsx:359
#: packages/admin/src/components/MenuEditor.tsx:530
#: packages/admin/src/components/MenuList.tsx:172
#: packages/admin/src/components/PluginManager.tsx:640
#: packages/admin/src/components/PortableTextEditor.tsx:3184
#: packages/admin/src/components/Redirects.tsx:182
#: packages/admin/src/components/SectionPickerModal.tsx:130
#: packages/admin/src/components/Sections.tsx:209
#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:313
#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:423
#: packages/admin/src/components/settings/ApiTokenSettings.tsx:325
#: packages/admin/src/components/settings/ApiTokenSettings.tsx:453
#: packages/admin/src/components/settings/SecuritySettings.tsx:206
#: packages/admin/src/components/TaxonomyManager.tsx:187
#: packages/admin/src/components/TaxonomyManager.tsx:472
#: packages/admin/src/components/TaxonomyManager.tsx:686
#: packages/admin/src/components/users/InviteUserModal.tsx:200
#: packages/admin/src/components/Widgets.tsx:386
#: packages/admin/src/components/WordPressImport.tsx:1753
msgid "Cancel"
msgstr "Annuler"

#: packages/admin/src/components/editor/PluginBlockNode.tsx:405
msgid "Cancel (Esc)"
msgstr "Annuler (Échap)"

#: packages/admin/src/components/settings/PasskeyItem.tsx:146
msgid "Cancel rename"
msgstr "Annuler le changement de nom"

#: packages/admin/src/components/Sections.tsx:407
msgid "Cannot delete theme sections"
msgstr "Impossible de supprimer les sections de thème"

#: packages/admin/src/components/MediaPickerModal.tsx:413
msgid "Cannot determine MIME type from URL. Use a URL ending in a recognized image extension (e.g. .jpg, .png, .webp)."
msgstr "Impossible de déterminer le type MIME à partir de l'URL. Utilisez une URL se terminant par une extension d'image reconnue (par exemple .jpg, .png, .webp)."

#: packages/admin/src/components/SeoPanel.tsx:186
msgid "Canonical URL"
msgstr "URL canonique"

#: packages/admin/src/components/PluginManager.tsx:473
msgid "Capabilities"
msgstr "Capacités"

#: packages/admin/src/components/CapabilityConsentDialog.tsx:65
msgid "Capability consent"
msgstr "Consentement de capacité"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:352
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:541
#: packages/admin/src/components/MediaDetailPanel.tsx:224
msgid "Caption"
msgstr "Légende"

#: packages/admin/src/components/AllowedTypesEditor.tsx:68
msgid "Captions / Subtitles"
msgstr "Légendes / Sous-titres"

#: packages/admin/src/components/AdminCommandPalette.tsx:193
msgid "Categories"
msgstr "Catégories"

#. placeholder {0}: analysis.categories
#: packages/admin/src/components/WordPressImport.tsx:1621
msgid "Categories ({0})"
msgstr "Catégories ({0})"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:161
msgid "Center"
msgstr ""

#: packages/admin/src/components/BlockKitMediaPickerField.tsx:76
#: packages/admin/src/components/BlockKitMediaPickerField.tsx:107
#: packages/admin/src/components/ContentEditor.tsx:1699
#: packages/admin/src/components/FieldEditor.tsx:402
#: packages/admin/src/components/ImageFieldRenderer.tsx:122
#: packages/admin/src/components/ImageFieldRenderer.tsx:151
#: packages/admin/src/components/SeoImageField.tsx:47
msgid "Change"
msgstr "Modifier"

#. placeholder {0}: selectedUser?.name || selectedUser?.email
#. placeholder {1}: getRoleLabel(selectedUser?.role ?? 0)
#. placeholder {2}: getRoleLabel(pendingSaveData?.role ?? 0)
#: packages/admin/src/routes/users.tsx:296
msgid "Change <0>{0}</0> from <1>{1}</1> to <2>{2}</2>? They will lose access to higher-level features."
msgstr "Modifier <0>{0}</0> de <1>{1}</1> à <2>{2}</2> ? Ils perdront l’accès aux fonctionnalités de niveau supérieur."

#: packages/admin/src/components/settings/GeneralSettings.tsx:262
msgid "Change Favicon"
msgstr "Modifier la favicon"

#: packages/admin/src/components/settings/SeoSettings.tsx:200
msgid "Change Image"
msgstr "Modifier l'image"

#: packages/admin/src/components/settings/GeneralSettings.tsx:208
msgid "Change Logo"
msgstr "Modifier le logo"

#: packages/admin/src/components/RegistryPluginDetail.tsx:793
msgid "Changelog"
msgstr "Journal des modifications"

#: packages/admin/src/router.tsx:906
msgid "Changes discarded"
msgstr "Modifications rejetées"

#: packages/admin/src/components/settings/SeoSettings.tsx:162
msgid "Character between page title and site name (e.g., \"My Post | My Site\")"
msgstr "Caractère entre le titre de la page et le nom du site (p. ex. « Mon article | Mon site »)"

#: packages/admin/src/components/PluginManager.tsx:162
msgid "Check for updates"
msgstr "Vérifier les mises à jour"

#: packages/admin/src/components/WordPressImport.tsx:937
msgid "Check Site"
msgstr "Vérifier le site"

#: packages/admin/src/components/LoginPage.tsx:101
#: packages/admin/src/components/SignupPage.tsx:130
#: packages/admin/src/components/SignupPage.tsx:400
msgid "Check your email"
msgstr "Vérifier votre e-mail"

#: packages/admin/src/components/WordPressImport.tsx:701
msgid "Checking {urlInput}..."
msgstr "En cours de vérification de {urlInput}..."

#: packages/admin/src/components/DeviceAuthorizePage.tsx:155
msgid "Checking authentication..."
msgstr "En cours de vérification de l'authentification..."

#. placeholder {0}: deletingField.label
#: packages/admin/src/routes/byline-schema.tsx:362
msgid "Checking how many stored values reference \"{0}\"…"
msgstr "Vérification du nombre de valeurs enregistrées faisant référence à « {0} »…"

#: packages/admin/src/components/SetupWizard.tsx:288
msgid "Choose how to sign in"
msgstr "Choisissez votre mode de connexion"

#: packages/admin/src/components/Settings.tsx:130
msgid "Choose your preferred admin language"
msgstr "Choisir votre langue d'administration préférée"

#: packages/admin/src/components/ContentList.tsx:639
#: packages/admin/src/components/users/UserList.tsx:129
msgid "Clear filters"
msgstr "Effacer les filtres"

#: packages/admin/src/components/SignupPage.tsx:138
msgid "Click the link in the email to continue setting up your account."
msgstr "Cliquez sur le lien dans l'e-mail pour continuer la configuration de votre compte."

#: packages/admin/src/components/LoginPage.tsx:112
msgid "Click the link in the email to sign in."
msgstr "Cliquez sur le lien dans l'e-mail pour vous connecter."

#: packages/admin/src/components/BylineFieldEditor.tsx:212
#: packages/admin/src/components/BylineFieldEditor.tsx:218
#: packages/admin/src/components/BylineFieldEditor.tsx:222
#: packages/admin/src/components/comments/CommentDetail.tsx:59
#: packages/admin/src/components/ContentPickerModal.tsx:120
#: packages/admin/src/components/ContentPickerModal.tsx:126
#: packages/admin/src/components/ContentPickerModal.tsx:130
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:227
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:229
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:412
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:414
#: packages/admin/src/components/FieldEditor.tsx:345
#: packages/admin/src/components/FieldEditor.tsx:351
#: packages/admin/src/components/FieldEditor.tsx:355
#: packages/admin/src/components/MarketplacePluginDetail.tsx:436
#: packages/admin/src/components/MediaDetailPanel.tsx:135
#: packages/admin/src/components/MediaDetailPanel.tsx:137
#: packages/admin/src/components/MediaPickerModal.tsx:482
#: packages/admin/src/components/MediaPickerModal.tsx:488
#: packages/admin/src/components/MediaPickerModal.tsx:492
#: packages/admin/src/components/MenuEditor.tsx:321
#: packages/admin/src/components/MenuEditor.tsx:327
#: packages/admin/src/components/MenuEditor.tsx:331
#: packages/admin/src/components/MenuEditor.tsx:489
#: packages/admin/src/components/MenuEditor.tsx:495
#: packages/admin/src/components/MenuEditor.tsx:499
#: packages/admin/src/components/MenuList.tsx:136
#: packages/admin/src/components/MenuList.tsx:142
#: packages/admin/src/components/MenuList.tsx:146
#: packages/admin/src/components/PortableTextEditor.tsx:1441
#: packages/admin/src/components/PortableTextEditor.tsx:1447
#: packages/admin/src/components/PortableTextEditor.tsx:1451
#: packages/admin/src/components/Redirects.tsx:114
#: packages/admin/src/components/Redirects.tsx:120
#: packages/admin/src/components/SectionPickerModal.tsx:60
#: packages/admin/src/components/SectionPickerModal.tsx:66
#: packages/admin/src/components/SectionPickerModal.tsx:70
#: packages/admin/src/components/Sections.tsx:153
#: packages/admin/src/components/Sections.tsx:159
#: packages/admin/src/components/Sections.tsx:163
#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:371
#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:377
#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:381
#: packages/admin/src/components/TaxonomyManager.tsx:164
#: packages/admin/src/components/TaxonomyManager.tsx:371
#: packages/admin/src/components/TaxonomyManager.tsx:377
#: packages/admin/src/components/TaxonomyManager.tsx:381
#: packages/admin/src/components/TaxonomyManager.tsx:605
#: packages/admin/src/components/TaxonomyManager.tsx:611
#: packages/admin/src/components/TaxonomyManager.tsx:615
#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:298
#: packages/admin/src/components/users/InviteUserModal.tsx:88
#: packages/admin/src/components/users/InviteUserModal.tsx:94
#: packages/admin/src/components/users/InviteUserModal.tsx:98
#: packages/admin/src/components/WelcomeModal.tsx:54
#: packages/admin/src/components/Widgets.tsx:348
#: packages/admin/src/components/Widgets.tsx:354
#: packages/admin/src/components/Widgets.tsx:358
msgid "Close"
msgstr "Fermer"

#: packages/admin/src/components/ContentTypeEditor.tsx:520
msgid "Close comments after (days)"
msgstr "Fermer les commentaires après (jours)"

#: packages/admin/src/components/users/UserDetail.tsx:121
msgid "Close panel"
msgstr "Fermer le panneau"

#: packages/admin/src/components/ContentTypeList.tsx:244
#: packages/admin/src/components/PortableTextEditor.tsx:2735
#: packages/admin/src/components/Redirects.tsx:469
msgid "Code"
msgstr "Code"

#: packages/admin/src/components/editor/BlockMenu.tsx:94
#: packages/admin/src/components/PortableTextEditor.tsx:1070
#: packages/admin/src/components/PortableTextEditor.tsx:3104
msgid "Code Block"
msgstr "Bloc de code"

#: packages/admin/src/components/PluginManager.tsx:460
msgid "Collapse"
msgstr "Réduire"

#: packages/admin/src/components/PluginManager.tsx:454
msgid "Collapse details"
msgstr "Réduire les détails"

#: packages/admin/src/components/users/InviteUserModal.tsx:158
msgid "colleague@example.com"
msgstr "collegue@exemple.com"

#: packages/admin/src/components/ContentPickerModal.tsx:156
msgid "Collection"
msgstr "Collection"

#: packages/admin/src/components/comments/CommentDetail.tsx:106
msgid "Collection:"
msgstr "Collection :"

#: packages/admin/src/components/TaxonomyManager.tsx:656
msgid "Collections"
msgstr "Collections"

#: packages/admin/src/components/WordPressImport.tsx:2133
msgid "Collections created:"
msgstr "Collections créées :"

#: packages/admin/src/components/SectionEditor.tsx:273
msgid "Comma-separated keywords for search."
msgstr "Mots-clés séparés par des virgules pour la recherche."

#: packages/admin/src/components/comments/CommentDetail.tsx:95
#: packages/admin/src/components/comments/CommentInbox.tsx:290
msgid "Comment"
msgstr "Commentaire"

#: packages/admin/src/components/comments/CommentDetail.tsx:58
msgid "Comment Detail"
msgstr "Détail du commentaire"

#: packages/admin/src/components/comments/CommentInbox.tsx:146
#: packages/admin/src/components/ContentTypeEditor.tsx:487
#: packages/admin/src/components/Sidebar.tsx:326
msgid "Comments"
msgstr "Commentaires"

#: packages/admin/src/components/ContentTypeEditor.tsx:544
msgid "Comments from logged-in CMS users are approved automatically"
msgstr "Les commentaires des utilisateurs connectés au CMS sont approuvés automatiquement"

#: packages/admin/src/components/SignupPage.tsx:401
msgid "Complete signup"
msgstr "Terminer l'inscription"

#: packages/admin/src/components/Widgets.tsx:851
msgid "Component"
msgstr "Composant"

#: packages/admin/src/components/FieldEditor.tsx:342
msgid "Configure Field"
msgstr "Configurer le champ"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:315
msgid "Confirm"
msgstr "Confirmer"

#: packages/admin/src/components/WordPressImport.tsx:627
msgid "Connect"
msgstr "Connecter"

#: packages/admin/src/components/WordPressImport.tsx:1346
msgid "Connect & Analyze"
msgstr "Se connecter et analyser"

#. placeholder {0}: siteTitle || "WordPress"
#: packages/admin/src/components/WordPressImport.tsx:1296
msgid "Connect to {0}"
msgstr "Se connecter à {0}"

#: packages/admin/src/components/WordPressImport.tsx:1212
msgid "Connect with WordPress"
msgstr "Se connecter avec WordPress"

#. placeholder {0}: new Date(account.createdAt).toLocaleDateString()
#: packages/admin/src/components/users/UserDetail.tsx:286
msgid "Connected {0}"
msgstr "Connecté {0}"

#: packages/admin/src/components/AdminCommandPalette.tsx:365
#: packages/admin/src/components/comments/CommentDetail.tsx:103
#: packages/admin/src/components/comments/CommentInbox.tsx:293
#: packages/admin/src/components/Dashboard.tsx:164
#: packages/admin/src/components/PortableTextEditor.tsx:2211
#: packages/admin/src/components/SectionEditor.tsx:194
#: packages/admin/src/components/Sidebar.tsx:451
#: packages/admin/src/components/Widgets.tsx:819
msgid "Content"
msgstr "Contenu"

#: packages/admin/src/components/Widgets.tsx:96
msgid "Content Block"
msgstr "Bloc de contenu"

#. placeholder {0}: result.errors.length
#: packages/admin/src/components/WordPressImport.tsx:2188
msgid "Content Errors ({0})"
msgstr "Erreurs liées au contenu ({0})"

#: packages/admin/src/components/WordPressImport.tsx:1156
msgid "Content found:"
msgstr "Contenu trouvé :"

#: packages/admin/src/router.tsx:928
msgid "Content has been scheduled for publishing"
msgstr "La publication du contenu a été programmée"

#: packages/admin/src/components/RevisionHistory.tsx:131
msgid "Content has been updated to the selected revision."
msgstr "Le contenu a été mis à jour vers la révision sélectionnée."

#: packages/admin/src/components/comments/CommentDetail.tsx:110
msgid "Content ID:"
msgstr "ID de contenu :"

#: packages/admin/src/router.tsx:869
msgid "Content is now live"
msgstr "Le contenu est maintenant en ligne"

#: packages/admin/src/components/WordPressImport.tsx:2177
msgid "content items"
msgstr "éléments de contenu"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:45
msgid "Content Read"
msgstr "Lecture du contenu"

#: packages/admin/src/router.tsx:887
msgid "Content removed from public view"
msgstr "Contenu supprimé de la vue publique"

#: packages/admin/src/router.tsx:949
msgid "Content reverted to draft"
msgstr "Contenu rétabli à l'état de brouillon"

#: packages/admin/src/components/RevisionHistory.tsx:296
msgid "Content snapshot:"
msgstr "Instantané du contenu :"

#: packages/admin/src/components/WordPressImport.tsx:1570
msgid "Content to Import"
msgstr "Contenu à importer"

#: packages/admin/src/components/AdminCommandPalette.tsx:185
#: packages/admin/src/components/ContentTypeList.tsx:40
#: packages/admin/src/components/Sidebar.tsx:346
msgid "Content Types"
msgstr "Types de contenu"

#: packages/admin/src/components/WordPressImport.tsx:2116
msgid "Content was skipped because it already exists"
msgstr "Le contenu a été ignoré car il existe déjà"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:50
msgid "Content Write"
msgstr "Écriture du contenu"

#: packages/admin/src/components/SignupPage.tsx:91
msgid "Continue"
msgstr "Continuer"

#: packages/admin/src/components/SetupWizard.tsx:150
#: packages/admin/src/components/SetupWizard.tsx:233
msgid "Continue →"
msgstr "Continuer →"

#: packages/admin/src/components/WordPressImport.tsx:2335
msgid "Continue Import"
msgstr "Continuer l'importation"

#: packages/admin/src/components/users/roleDefinitions.ts:24
#: packages/admin/src/components/WelcomeModal.tsx:28
msgid "Contributor"
msgstr "Contributeur"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:225
#: packages/admin/src/components/users/InviteUserModal.tsx:134
msgid "Copied to clipboard"
msgstr "Copié dans le presse-papiers"

#. placeholder {0}: section.slug
#: packages/admin/src/components/Sections.tsx:399
msgid "Copy {0} to clipboard"
msgstr "Copier {0} dans le presse-papiers"

#: packages/admin/src/components/users/InviteUserModal.tsx:124
msgid "Copy invite link"
msgstr "Copier le lien d'invitation"

#: packages/admin/src/components/Sections.tsx:398
msgid "Copy slug"
msgstr "Copier le slug"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:200
msgid "Copy this token now — it won't be shown again."
msgstr "Copiez ce jeton maintenant — il ne sera plus affiché."

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:218
msgid "Copy token"
msgstr "Copier le jeton"

#: packages/admin/src/components/editor/PluginBlockNode.tsx:322
#: packages/admin/src/components/editor/PluginBlockNode.tsx:323
#: packages/admin/src/components/MediaDetailPanel.tsx:198
msgid "Copy URL"
msgstr "Copier l'URL"

#: packages/admin/src/components/users/InviteUserModal.tsx:138
msgid "Could not copy automatically. Please select the URL above and copy manually."
msgstr "Impossible de copier automatiquement. Veuillez sélectionner l'URL ci-dessus et copier manuellement."

#: packages/admin/src/components/MediaPickerModal.tsx:439
msgid "Could not load image from URL"
msgstr "Impossible de charger l'image à partir de l'URL"

#: packages/admin/src/components/WordPressImport.tsx:1103
msgid "Couldn't detect WordPress"
msgstr "Impossible de détecter WordPress"

#: packages/admin/src/routes/byline-schema.tsx:268
msgid "Couldn't load byline fields."
msgstr "Impossible de charger les champs d'auteur."

#: packages/admin/src/routes/bylines.tsx:548
msgid "Couldn't load custom fields."
msgstr "Impossible de charger les champs personnalisés."

#: packages/admin/src/components/AllowedTypesEditor.tsx:88
msgid "Couldn't map \"{draft}\" to a MIME type. Type the MIME directly."
msgstr "Impossible d'associer \"{draft}\" à un type MIME. Saisissez directement le MIME."

#: packages/admin/src/components/ContentEditor.tsx:1921
msgid "Couldn't search bylines. Please try again."
msgstr "Impossible de rechercher des auteurs. Veuillez réessayer."

#. placeholder {0}: deletingField.label
#: packages/admin/src/routes/byline-schema.tsx:369
msgid "Couldn't verify how many values reference \"{0}\". Deleting will still remove every stored value for this field — but the count above could not be checked."
msgstr "Impossible de vérifier le nombre de valeurs faisant référence à « {0} ». La suppression effacera quand même toutes les valeurs enregistrées de ce champ, mais le nombre ci-dessus n'a pas pu être vérifié."

#: packages/admin/src/components/TaxonomyManager.tsx:822
msgid "Count"
msgstr "Nombre"

#: packages/admin/src/components/ContentEditor.tsx:2053
#: packages/admin/src/components/MenuList.tsx:175
#: packages/admin/src/components/Redirects.tsx:191
#: packages/admin/src/components/Sections.tsx:212
#: packages/admin/src/components/TaxonomyManager.tsx:479
#: packages/admin/src/components/Widgets.tsx:389
#: packages/admin/src/routes/bylines.tsx:580
msgid "Create"
msgstr "Créer"

#: packages/admin/src/components/TaxonomySidebar.tsx:290
msgid "Create \"{trimmedInput}\""
msgstr "Créer « {trimmedInput} »"

#: packages/admin/src/components/PortableTextEditor.tsx:1041
msgid "Create a bullet list"
msgstr "Créer une liste à puces"

#. placeholder {0}: taxonomyDef.labelSingular?.toLowerCase() || "term"
#: packages/admin/src/components/TaxonomyManager.tsx:367
msgid "Create a new {0}"
msgstr "Créer un nouveau {0}"

#: packages/admin/src/components/PortableTextEditor.tsx:1051
msgid "Create a numbered list"
msgstr "Créer une liste numérotée"

#: packages/admin/src/components/InviteAcceptPage.tsx:81
#: packages/admin/src/components/SignupPage.tsx:220
msgid "Create Account"
msgstr "Créer un compte"

#: packages/admin/src/components/SignupPage.tsx:399
msgid "Create an account"
msgstr "Créer un compte"

#: packages/admin/src/components/ContentEditor.tsx:2001
#: packages/admin/src/routes/bylines.tsx:477
msgid "Create byline"
msgstr "Créer un auteur"

#: packages/admin/src/components/ContentTypeEditor.tsx:560
msgid "Create Content Type"
msgstr "Créer un type de contenu"

#: packages/admin/src/components/BylineFieldEditor.tsx:318
msgid "Create field"
msgstr "Créer un champ"

#: packages/admin/src/components/MenuList.tsx:126
#: packages/admin/src/components/MenuList.tsx:189
msgid "Create Menu"
msgstr "Créer un menu"

#: packages/admin/src/components/MenuList.tsx:133
msgid "Create New Menu"
msgstr "Créer un nouveau menu"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:396
msgid "Create New Token"
msgstr "Créer un nouveau jeton"

#: packages/admin/src/components/WordPressImport.tsx:1340
msgid "Create one in WordPress: Users → Profile → Application Passwords"
msgstr "En créer un dans WordPress : Utilisateurs → Profil → Mots de passe d'application"

#: packages/admin/src/components/SetupWizard.tsx:298
msgid "Create Passkey"
msgstr "Créer une clé d'accès"

#: packages/admin/src/components/Settings.tsx:110
#: packages/admin/src/components/settings/ApiTokenSettings.tsx:185
msgid "Create personal access tokens for programmatic API access"
msgstr "Créer des jetons d'accès personnels pour un accès programmatique à l'API"

#. placeholder {0}: item.path
#: packages/admin/src/components/Redirects.tsx:247
msgid "Create redirect for {0}"
msgstr "Créer une redirection pour {0}"

#: packages/admin/src/components/Redirects.tsx:246
msgid "Create redirect for this path"
msgstr "Créer une redirection pour ce chemin"

#: packages/admin/src/components/Redirects.tsx:461
msgid "Create redirect rules to manage URL changes."
msgstr "Créer des règles de redirection pour gérer les modifications d'URL."

#: packages/admin/src/components/WordPressImport.tsx:1757
msgid "Create Schema & Import"
msgstr "Créer un schéma et l'importer"

#: packages/admin/src/components/Sections.tsx:150
#: packages/admin/src/components/Sections.tsx:270
msgid "Create Section"
msgstr "Créer une section"

#: packages/admin/src/components/SectionPickerModal.tsx:109
msgid "Create sections in the Sections library to use them here"
msgstr "Créer des sections dans la bibliothèque Sections pour les utiliser ici"

#: packages/admin/src/components/TaxonomyManager.tsx:598
#: packages/admin/src/components/TaxonomyManager.tsx:689
msgid "Create Taxonomy"
msgstr "Créer une taxonomie"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:258
#: packages/admin/src/components/settings/ApiTokenSettings.tsx:450
msgid "Create Token"
msgstr "Créer un jeton"

#: packages/admin/src/components/Widgets.tsx:345
msgid "Create Widget Area"
msgstr "Créer une zone de widget"

#: packages/admin/src/components/SetupWizard.tsx:560
msgid "Create your account"
msgstr "Créez votre compte"

#: packages/admin/src/components/MenuList.tsx:187
msgid "Create your first navigation menu to get started"
msgstr "Créer votre premier menu de navigation pour commencer"

#: packages/admin/src/components/ContentList.tsx:373
#: packages/admin/src/components/ContentTypeList.tsx:122
msgid "Create your first one"
msgstr "Créer le premier"

#: packages/admin/src/components/Sections.tsx:267
msgid "Create your first reusable content section to get started."
msgstr "Créer votre première section de contenu réutilisable pour commencer."

#: packages/admin/src/components/InviteAcceptPage.tsx:72
#: packages/admin/src/components/SignupPage.tsx:211
msgid "Create your passkey"
msgstr "Créer votre clé d'accès"

#: packages/admin/src/lib/api/marketplace.ts:223
#: packages/admin/src/lib/api/marketplace.ts:231
msgid "Create, update, and delete content"
msgstr "Créer, mettre à jour et supprimer du contenu"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:81
msgid "Create, update, and delete navigation menus"
msgstr "Créer, mettre à jour et supprimer des menus de navigation"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:76
msgid "Create, update, and delete taxonomy terms"
msgstr "Créer, mettre à jour et supprimer des termes de taxonomie"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:51
msgid "Create, update, delete content"
msgstr "Créer, modifier, supprimer du contenu"

#: packages/admin/src/components/ContentList.tsx:550
#: packages/admin/src/components/users/UserDetail.tsx:219
msgid "Created"
msgstr "Créé"

#. placeholder {0}: field.label
#: packages/admin/src/routes/byline-schema.tsx:96
msgid "Created \"{0}\"."
msgstr "« {0} » créé."

#. placeholder {0}: new Date(cred.createdAt).toLocaleDateString()
#. placeholder {0}: new Date(token.createdAt).toLocaleDateString()
#: packages/admin/src/components/settings/ApiTokenSettings.tsx:297
#: packages/admin/src/components/users/UserDetail.tsx:260
msgid "Created {0}"
msgstr "Créé le {0}"

#. placeholder {0}: result.locale?.toUpperCase() ?? t`new`
#: packages/admin/src/router.tsx:980
msgid "Created {0} translation"
msgstr "Création de la traduction {0}"

#: packages/admin/src/components/ContentTypeEditor.tsx:123
msgid "Created At"
msgstr "Créé le"

#. placeholder {0}: new Date(item.createdAt).toLocaleString()
#: packages/admin/src/components/ContentEditor.tsx:927
msgid "Created: {0}"
msgstr "Créé : {0}"

#: packages/admin/src/components/WordPressImport.tsx:812
msgid "Creating collections and fields..."
msgstr "En cours de création de collections et de champs..."

#: packages/admin/src/components/ContentEditor.tsx:2053
#: packages/admin/src/components/MenuList.tsx:175
#: packages/admin/src/components/Redirects.tsx:188
#: packages/admin/src/components/Sections.tsx:212
#: packages/admin/src/components/settings/ApiTokenSettings.tsx:450
#: packages/admin/src/components/TaxonomyManager.tsx:689
#: packages/admin/src/components/TaxonomySidebar.tsx:290
msgid "Creating..."
msgstr "Création en cours..."

#: packages/admin/src/components/editor/codeBlockLanguages.ts:33
msgid "CSS"
msgstr ""

#: packages/admin/src/components/TranslationsPanel.tsx:78
msgid "current"
msgstr "actuel"

#: packages/admin/src/components/RevisionHistory.tsx:264
msgid "Current"
msgstr "Actuel"

#: packages/admin/src/components/Sections.tsx:46
msgid "Custom"
msgstr "Personnalisé"

#: packages/admin/src/components/ContentTypeEditor.tsx:614
msgid "Custom Fields"
msgstr "Champs personnalisés"

#: packages/admin/src/components/settings/SeoSettings.tsx:243
msgid "Custom robots.txt content. Leave empty to use the default."
msgstr "Contenu robots.txt personnalisé. Laissez vide pour utiliser la valeur par défaut."

#: packages/admin/src/components/SectionEditor.tsx:184
msgid "Custom Section"
msgstr "Section personnalisée"

#: packages/admin/src/components/ThemeToggle.tsx:22
msgid "dark"
msgstr "sombre"

#: packages/admin/src/components/ThemeToggle.tsx:24
msgid "Dark"
msgstr "Sombre"

#: packages/admin/src/components/AdminCommandPalette.tsx:131
#: packages/admin/src/components/ContentTypeList.tsx:246
#: packages/admin/src/components/Dashboard.tsx:42
#: packages/admin/src/components/Sidebar.tsx:312
#: packages/admin/src/components/Sidebar.tsx:442
msgid "Dashboard"
msgstr "Tableau de bord"

#: packages/admin/src/components/comments/CommentInbox.tsx:296
#: packages/admin/src/components/ContentList.tsx:342
msgid "Date"
msgstr "Date"

#: packages/admin/src/components/FieldEditor.tsx:180
#: packages/admin/src/components/FieldEditor.tsx:584
msgid "Date & Time"
msgstr "Date et heure"

#: packages/admin/src/components/FieldEditor.tsx:181
msgid "Date and time picker"
msgstr "Sélecteur de date et d'heure"

#: packages/admin/src/components/ContentList.tsx:604
msgid "Date field to filter on"
msgstr ""

#: packages/admin/src/components/settings/GeneralSettings.tsx:304
msgid "Date Format"
msgstr "Format des dates"

#: packages/admin/src/components/FieldEditor.tsx:163
msgid "Decimal number"
msgstr "Nombre décimal"

#: packages/admin/src/components/RegistryPluginDetail.tsx:737
msgid "Declared permissions"
msgstr "Autorisations déclarées"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:327
#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:389
msgid "Default Role"
msgstr "Rôle par défaut"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:266
msgid "Default role:"
msgstr "Rôle par défaut :"

#: packages/admin/src/components/settings/SeoSettings.tsx:180
msgid "Default social image"
msgstr "Image sociale par défaut"

#: packages/admin/src/components/settings/SeoSettings.tsx:171
msgid "Default Social Image"
msgstr "Image sociale par défaut"

#: packages/admin/src/components/TaxonomyManager.tsx:601
msgid "Define a new taxonomy for classifying content"
msgstr "Définir une nouvelle taxonomie pour classer le contenu"

#: packages/admin/src/routes/byline-schema.tsx:220
msgid "Define custom fields stored on every byline — job title, pronouns, social handles, and more."
msgstr "Définissez des champs personnalisés enregistrés pour chaque auteur — intitulé du poste, pronoms, identifiants sur les réseaux sociaux, etc."

#: packages/admin/src/components/ContentTypeList.tsx:41
msgid "Define the structure of your content"
msgstr "Définir la structure de votre contenu"

#: packages/admin/src/components/ContentTypeEditor.tsx:361
msgid "Defined in code"
msgstr "Défini dans le code"

#: packages/admin/src/components/comments/CommentInbox.tsx:267
#: packages/admin/src/components/comments/CommentInbox.tsx:407
#: packages/admin/src/components/ContentTypeEditor.tsx:663
#: packages/admin/src/components/ContentTypeList.tsx:148
#: packages/admin/src/components/editor/BlockMenu.tsx:301
#: packages/admin/src/components/editor/HtmlBlockNode.tsx:130
#: packages/admin/src/components/editor/PluginBlockNode.tsx:378
#: packages/admin/src/components/MediaDetailPanel.tsx:244
#: packages/admin/src/components/MediaDetailPanel.tsx:269
#: packages/admin/src/components/MenuEditor.tsx:463
#: packages/admin/src/components/MenuList.tsx:255
#: packages/admin/src/components/Redirects.tsx:582
#: packages/admin/src/components/Sections.tsx:308
#: packages/admin/src/components/Sections.tsx:407
#: packages/admin/src/components/TaxonomyManager.tsx:886
#: packages/admin/src/components/Widgets.tsx:636
#: packages/admin/src/routes/byline-schema.tsx:378
#: packages/admin/src/routes/bylines.tsx:589
#: packages/admin/src/routes/bylines.tsx:625
msgid "Delete"
msgstr "Supprimer"

#. placeholder {0}: item.filename
#: packages/admin/src/components/MediaDetailPanel.tsx:268
msgid "Delete \"{0}\"? This cannot be undone."
msgstr "Supprimer « {0} » ? Cela ne peut pas être annulé."

#. placeholder {0}: collection.label
#. placeholder {0}: domain.domain
#. placeholder {0}: field.label
#: packages/admin/src/components/ContentTypeList.tsx:229
#: packages/admin/src/components/Sections.tsx:408
#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:285
#: packages/admin/src/components/TaxonomyManager.tsx:97
#: packages/admin/src/components/Widgets.tsx:737
#: packages/admin/src/routes/byline-schema.tsx:458
msgid "Delete {0}"
msgstr "Supprimer {0}"

#. placeholder {0}: field.label
#: packages/admin/src/components/ContentTypeEditor.tsx:740
msgid "Delete {0} field"
msgstr "Supprimer le champ {0}"

#. placeholder {0}: menu.name
#: packages/admin/src/components/MenuList.tsx:237
msgid "Delete {0} menu"
msgstr "Supprimer le menu {0}"

#. placeholder {0}: area.label
#: packages/admin/src/components/Widgets.tsx:584
msgid "Delete {0} widget area"
msgstr "Supprimer la zone de widget {0}"

#. placeholder {0}: taxonomyDef.labelSingular || "Term"
#: packages/admin/src/components/TaxonomyManager.tsx:882
msgid "Delete {0}?"
msgstr "Supprimer {0} ?"

#: packages/admin/src/routes/byline-schema.tsx:358
msgid "Delete byline field?"
msgstr "Supprimer le champ d'auteur ?"

#: packages/admin/src/routes/bylines.tsx:623
msgid "Delete Byline?"
msgstr "Supprimer l'auteur ?"

#: packages/admin/src/components/PortableTextEditor.tsx:2790
msgid "Delete column"
msgstr "Supprimer la colonne"

#: packages/admin/src/components/comments/CommentInbox.tsx:405
msgid "Delete Comment?"
msgstr "Supprimer le commentaire ?"

#: packages/admin/src/components/ContentTypeList.tsx:142
msgid "Delete Content Type?"
msgstr "Supprimer le type de contenu ?"

#: packages/admin/src/components/editor/PluginBlockNode.tsx:379
msgid "Delete embed"
msgstr "Supprimer l'intégration"

#: packages/admin/src/components/ContentTypeEditor.tsx:657
msgid "Delete Field?"
msgstr "Supprimer le champ ?"

#: packages/admin/src/components/editor/HtmlBlockNode.tsx:131
msgid "Delete HTML block"
msgstr "Supprimer le bloc HTML"

#: packages/admin/src/components/editor/ImageNode.tsx:220
#: packages/admin/src/components/editor/ImageNode.tsx:221
msgid "Delete image"
msgstr "Supprimer l'image"

#: packages/admin/src/components/MediaDetailPanel.tsx:267
msgid "Delete Media?"
msgstr "Supprimer le fichier multimédia ?"

#: packages/admin/src/components/MenuList.tsx:253
msgid "Delete Menu"
msgstr "Supprimer le menu"

#: packages/admin/src/components/comments/CommentInbox.tsx:525
msgid "Delete permanently"
msgstr "Supprimer définitivement"

#: packages/admin/src/components/comments/CommentDetail.tsx:182
#: packages/admin/src/components/ContentList.tsx:933
msgid "Delete Permanently"
msgstr "Supprimer définitivement"

#: packages/admin/src/components/ContentList.tsx:913
msgid "Delete Permanently?"
msgstr "Supprimer définitivement ?"

#: packages/admin/src/components/Redirects.tsx:535
msgid "Delete redirect"
msgstr "Supprimer la redirection"

#. placeholder {0}: r.source
#: packages/admin/src/components/Redirects.tsx:536
msgid "Delete redirect {0}"
msgstr "Supprimer la redirection {0}"

#: packages/admin/src/components/Redirects.tsx:580
msgid "Delete Redirect?"
msgstr "Supprimer la redirection ?"

#: packages/admin/src/components/PortableTextEditor.tsx:2811
msgid "Delete row"
msgstr "Supprimer la ligne"

#: packages/admin/src/components/Sections.tsx:296
msgid "Delete Section?"
msgstr "Supprimer la section ?"

#: packages/admin/src/components/PortableTextEditor.tsx:2826
msgid "Delete table"
msgstr "Supprimer le tableau"

#: packages/admin/src/components/Widgets.tsx:634
msgid "Delete Widget Area?"
msgstr "Supprimer la zone de widgets ?"

#: packages/admin/src/components/ContentList.tsx:460
msgid "Deleted"
msgstr "Supprimé"

#. placeholder {0}: deletingField.label
#. placeholder {1}: deleteUsageQuery.data.totalAffectedRows
#: packages/admin/src/routes/byline-schema.tsx:371
msgid "Deleting \"{0}\" will also remove {1, plural, one {# stored value} other {# stored values}} across all bylines. This cannot be undone."
msgstr "La suppression de « {0} » supprimera également {1, plural, one {# valeur enregistrée} other {# valeurs enregistrées}} dans tous les auteurs. Cette action est irréversible."

#: packages/admin/src/components/comments/CommentInbox.tsx:408
#: packages/admin/src/components/ContentTypeEditor.tsx:664
#: packages/admin/src/components/ContentTypeList.tsx:149
#: packages/admin/src/components/MediaDetailPanel.tsx:244
#: packages/admin/src/components/MediaDetailPanel.tsx:270
#: packages/admin/src/components/MenuList.tsx:256
#: packages/admin/src/components/Redirects.tsx:583
#: packages/admin/src/components/Sections.tsx:309
#: packages/admin/src/components/TaxonomyManager.tsx:887
#: packages/admin/src/components/Widgets.tsx:637
#: packages/admin/src/routes/bylines.tsx:626
msgid "Deleting..."
msgstr "En cours de suppression..."

#: packages/admin/src/routes/byline-schema.tsx:379
msgid "Deleting…"
msgstr "En cours de suppression…"

#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:262
#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:147
msgid "Demo"
msgstr "Démo"

#: packages/admin/src/routes/users.tsx:303
msgid "Demote User"
msgstr "Rétrograder un utilisateur"

#: packages/admin/src/routes/users.tsx:294
msgid "Demote User?"
msgstr "Rétrograder l'utilisateur ?"

#: packages/admin/src/routes/users.tsx:304
msgid "Demoting..."
msgstr "Rétrogradation en cours..."

#: packages/admin/src/components/DeviceAuthorizePage.tsx:270
msgid "Deny"
msgstr "Refuser"

#: packages/admin/src/components/editor/ImageNode.tsx:238
msgid "Describe the image..."
msgstr "Décrivez l'image..."

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:347
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:536
#: packages/admin/src/components/MediaDetailPanel.tsx:219
msgid "Describe this image for accessibility"
msgstr "Décrivez cette image pour l'accessibilité"

#: packages/admin/src/components/SectionEditor.tsx:262
msgid "Describe what this section is for..."
msgstr "Décrivez à quoi sert cette section..."

#: packages/admin/src/components/ContentTypeEditor.tsx:415
#: packages/admin/src/components/RegistryPluginDetail.tsx:790
#: packages/admin/src/components/SectionEditor.tsx:259
#: packages/admin/src/components/Sections.tsx:200
#: packages/admin/src/components/Widgets.tsx:373
msgid "Description"
msgstr "Description"

#: packages/admin/src/components/TaxonomyManager.tsx:434
msgid "Description (optional)"
msgstr "Description (facultatif)"

#: packages/admin/src/components/Redirects.tsx:468
msgid "Destination"
msgstr "Destination"

#: packages/admin/src/components/Redirects.tsx:140
msgid "Destination path"
msgstr "Chemin d'arrivée"

#: packages/admin/src/components/PluginManager.tsx:460
msgid "details"
msgstr "détails"

#: packages/admin/src/components/DeviceAuthorizePage.tsx:186
msgid "Device authorized"
msgstr "Appareil autorisé"

#: packages/admin/src/components/DeviceAuthorizePage.tsx:229
msgid "Device code"
msgstr "Code de l'appareil"

#: packages/admin/src/components/users/UserDetail.tsx:256
msgid "Device-bound"
msgstr "Lié à l'appareil"

#: packages/admin/src/components/settings/PasskeyItem.tsx:104
msgid "Device-bound passkey"
msgstr "Clé d'accès liée à l'appareil"

#: packages/admin/src/components/SignupPage.tsx:143
msgid "Didn't receive the email?"
msgstr "Vous n'avez pas reçu l'e-mail ?"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:34
msgid "Diff"
msgstr ""

#: packages/admin/src/components/MediaDetailPanel.tsx:180
msgid "Dimensions:"
msgstr "Dimensions :"

#: packages/admin/src/components/users/UserDetail.tsx:319
msgid "Disable"
msgstr "Désactiver"

#: packages/admin/src/components/PluginManager.tsx:448
msgid "Disable plugin"
msgstr "Désactiver le module d'extension"

#: packages/admin/src/components/Redirects.tsx:504
msgid "Disable redirect"
msgstr "Désactiver la redirection"

#: packages/admin/src/routes/users.tsx:279
msgid "Disable User"
msgstr "Désactiver l'utilisateur"

#: packages/admin/src/routes/users.tsx:272
msgid "Disable User?"
msgstr "Désactiver l'utilisateur ?"

#: packages/admin/src/components/PluginManager.tsx:354
#: packages/admin/src/components/Redirects.tsx:418
#: packages/admin/src/components/users/UserDetail.tsx:201
#: packages/admin/src/components/users/UserList.tsx:212
msgid "Disabled"
msgstr "Désactivé"

#: packages/admin/src/components/PluginManager.tsx:531
msgid "Disabled:"
msgstr "Désactivé :"

#. placeholder {0}: selectedUser?.name || selectedUser?.email
#: packages/admin/src/routes/users.tsx:274
msgid "Disabling <0>{0}</0> will prevent them from logging in until re-enabled. Their content will be preserved."
msgstr "La désactivation de <0>{0}</0> les empêchera de se connecter jusqu'à ce qu'ils soient réactivés. Leur contenu sera préservé."

#: packages/admin/src/routes/users.tsx:280
msgid "Disabling..."
msgstr "Désactivation en cours..."

#: packages/admin/src/components/ContentEditor.tsx:691
#: packages/admin/src/components/ContentEditor.tsx:713
msgid "Discard changes"
msgstr "Ignorer les modifications"

#: packages/admin/src/components/ContentEditor.tsx:697
msgid "Discard draft changes?"
msgstr "Supprimer les brouillons de modifications ?"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:233
#: packages/admin/src/components/settings/ApiTokenSettings.tsx:235
msgid "Dismiss"
msgstr "Fermer"

#: packages/admin/src/components/Widgets.tsx:103
msgid "Display a navigation menu"
msgstr "Afficher un menu de navigation"

#: packages/admin/src/components/ContentEditor.tsx:2004
#: packages/admin/src/components/ContentEditor.tsx:2066
#: packages/admin/src/routes/bylines.tsx:482
msgid "Display name"
msgstr "Nom affiché"

#: packages/admin/src/components/MenuList.tsx:167
msgid "Display name for admin interface"
msgstr "Nom affiché dans l'interface d'administration"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:269
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:458
msgid "Display Size"
msgstr "Taille d'affichage"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:356
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:545
msgid "Displayed below the image as a visible caption."
msgstr "Affiché sous l’image sous forme de légende visible."

#: packages/admin/src/components/ContentEditor.tsx:667
msgid "Distraction-free mode (⌘⇧\\)"
msgstr "Mode sans distraction (⌘⇧\\)"

#: packages/admin/src/components/PortableTextEditor.tsx:1095
msgid "Divider"
msgstr "Séparateur"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:35
msgid "Dockerfile"
msgstr ""

#: packages/admin/src/components/AllowedTypesEditor.tsx:63
#: packages/admin/src/components/MediaLibrary.tsx:404
msgid "Documents"
msgstr "Documents"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:319
msgid "Domain"
msgstr "Domaine"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:85
msgid "Domain added successfully"
msgstr "Domaine ajouté avec succès"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:124
msgid "Domain removed"
msgstr "Domaine supprimé"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:107
msgid "Domain updated"
msgstr "Domaine mis à jour"

#: packages/admin/src/components/LoginPage.tsx:332
msgid "Don't have an account? <0>Sign up</0>"
msgstr "Pas encore de compte ? <0>S'inscrire</0>"

#: packages/admin/src/components/users/InviteUserModal.tsx:144
#: packages/admin/src/components/WordPressImport.tsx:1964
msgid "Done"
msgstr "Fait"

#: packages/admin/src/components/ContentEditor.tsx:1947
msgid "Down"
msgstr "Vers le bas"

#: packages/admin/src/components/RegistryPluginDetail.tsx:479
msgid "Download SBOM"
msgstr "Télécharger la nomenclature logicielle (SBOM)"

#: packages/admin/src/components/WordPressImport.tsx:1962
msgid "Downloading"
msgstr "Téléchargement en cours"

#: packages/admin/src/components/ContentList.tsx:959
msgid "draft"
msgstr "brouillon"

#: packages/admin/src/components/ContentEditor.tsx:858
#: packages/admin/src/components/ContentList.tsx:544
#: packages/admin/src/components/ContentPickerModal.tsx:212
msgid "Draft"
msgstr "Brouillon"

#: packages/admin/src/components/ContentTypeEditor.tsx:119
msgid "draft, published, or archived"
msgstr "brouillon, publié ou archivé"

#: packages/admin/src/components/ContentTypeEditor.tsx:71
#: packages/admin/src/components/Dashboard.tsx:188
msgid "Drafts"
msgstr "Brouillons"

#: packages/admin/src/components/WordPressImport.tsx:961
msgid "Drag and drop or click to browse (.xml)"
msgstr "Glisser-déposer ou cliquer pour parcourir (.xml)"

#: packages/admin/src/components/Widgets.tsx:620
msgid "Drag here to add"
msgstr "Faites glisser ici pour ajouter"

#: packages/admin/src/components/PortableTextEditor.tsx:1833
msgid "Drag to reorder"
msgstr "Faites glisser pour réorganiser"

#. placeholder {0}: field.label
#. placeholder {0}: widget.title ?? t`widget`
#: packages/admin/src/components/ContentTypeEditor.tsx:707
#: packages/admin/src/components/Widgets.tsx:722
msgid "Drag to reorder {0}"
msgstr "Faites glisser pour réorganiser {0}"

#: packages/admin/src/components/editor/BlockMenu.tsx:338
msgid "Drag to reorder block"
msgstr "Faites glisser pour réorganiser le bloc"

#: packages/admin/src/components/Widgets.tsx:624
msgid "Drag widgets here to add them"
msgstr "Faites glisser les widgets ici pour les ajouter"

#: packages/admin/src/components/Widgets.tsx:402
msgid "Drag widgets into an area to add them"
msgstr "Faites glisser les widgets dans une zone pour les ajouter"

#: packages/admin/src/components/Widgets.tsx:620
msgid "Drop to add widget"
msgstr "Déposer pour ajouter un widget"

#: packages/admin/src/components/WordPressImport.tsx:1427
msgid "Drop your WordPress export file here"
msgstr "Déposer votre fichier d'exportation WordPress ici"

#: packages/admin/src/components/editor/BlockMenu.tsx:292
msgid "Duplicate"
msgstr "Dupliquer"

#: packages/admin/src/components/ContentList.tsx:824
msgid "Duplicate {title}"
msgstr "Dupliquer {title}"

#: packages/admin/src/components/AllowedTypesEditor.tsx:161
msgid "e.g. application/zip or .pdf"
msgstr "p. ex. : application/zip ou .pdf"

#: packages/admin/src/components/Redirects.tsx:167
msgid "e.g. import, blog"
msgstr "p. ex. : importer, bloguer"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:410
msgid "e.g., CI/CD Pipeline"
msgstr "p. ex. : pipeline CI/CD"

#: packages/admin/src/components/auth/PasskeyRegistration.tsx:333
msgid "e.g., MacBook Pro, iPhone"
msgstr "p. ex. : MacBook Pro, iPhone"

#: packages/admin/src/components/ContentEditor.tsx:1956
#: packages/admin/src/components/editor/PluginBlockNode.tsx:367
#: packages/admin/src/components/editor/PluginBlockNode.tsx:368
#: packages/admin/src/components/MenuEditor.tsx:458
#: packages/admin/src/components/MenuList.tsx:231
#: packages/admin/src/components/Sections.tsx:392
#: packages/admin/src/components/TranslationsPanel.tsx:88
msgid "Edit"
msgstr "Modifier"

#. placeholder {0}: block?.label || ""
#. placeholder {0}: collection.label
#. placeholder {0}: domain.domain
#: packages/admin/src/components/ContentTypeList.tsx:220
#: packages/admin/src/components/PortableTextEditor.tsx:1438
#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:276
#: packages/admin/src/components/TaxonomyManager.tsx:89
#: packages/admin/src/components/TaxonomyManager.tsx:361
#: packages/admin/src/routes/byline-schema.tsx:449
#: packages/admin/src/routes/bylines.tsx:477
msgid "Edit {0}"
msgstr "Modifier {0}"

#. placeholder {0}: field.label
#: packages/admin/src/components/ContentTypeEditor.tsx:732
msgid "Edit {0} field"
msgstr "Modifier le champ {0}"

#: packages/admin/src/components/ContentEditor.tsx:630
msgid "Edit {collectionLabel}"
msgstr "Modifier {collectionLabel}"

#: packages/admin/src/components/ContentList.tsx:816
msgid "Edit {title}"
msgstr "Modifier {title}"

#: packages/admin/src/components/ContentEditor.tsx:2063
msgid "Edit byline"
msgstr "Modifier l'auteur"

#: packages/admin/src/components/BylineFieldEditor.tsx:209
msgid "Edit byline field"
msgstr "Modifier le champ d'auteur"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:364
msgid "Edit Domain"
msgstr "Modifier le domaine"

#: packages/admin/src/components/FieldEditor.tsx:342
msgid "Edit Field"
msgstr "Modifier le champ"

#: packages/admin/src/components/PortableTextEditor.tsx:2743
msgid "Edit link"
msgstr "Modifier le lien"

#: packages/admin/src/components/MenuEditor.tsx:486
msgid "Edit Menu Item"
msgstr "Modifier l'élément de menu"

#: packages/admin/src/components/MenuEditor.tsx:290
msgid "Edit menu items"
msgstr "Modifier les éléments du menu"

#: packages/admin/src/components/Redirects.tsx:527
msgid "Edit redirect"
msgstr "Modifier la redirection"

#: packages/admin/src/components/Redirects.tsx:105
msgid "Edit Redirect"
msgstr "Modifier la redirection"

#. placeholder {0}: r.source
#: packages/admin/src/components/Redirects.tsx:528
msgid "Edit redirect {0}"
msgstr "Modifier la redirection {0}"

#: packages/admin/src/components/editor/PluginBlockNode.tsx:367
#: packages/admin/src/components/editor/PluginBlockNode.tsx:368
msgid "Edit URL"
msgstr "Modifier l'URL"

#: packages/admin/src/components/users/roleDefinitions.ts:36
#: packages/admin/src/components/WelcomeModal.tsx:26
msgid "Editor"
msgstr "Éditeur"

#: packages/admin/src/components/BylineFieldEditor.tsx:305
msgid ""
"Editor\n"
"Reporter\n"
"Photographer"
msgstr ""
"Éditeur\n"
"Journaliste\n"
"Photographe"

#: packages/admin/src/components/InviteAcceptPage.tsx:59
#: packages/admin/src/components/Settings.tsx:115
#: packages/admin/src/components/SignupPage.tsx:197
#: packages/admin/src/components/users/UserDetail.tsx:154
msgid "Email"
msgstr "E-mail"

#: packages/admin/src/components/auth/PasskeyLogin.tsx:332
msgid "Email (optional)"
msgstr "E-mail (facultatif)"

#: packages/admin/src/components/LoginPage.tsx:126
#: packages/admin/src/components/SignupPage.tsx:66
#: packages/admin/src/components/users/InviteUserModal.tsx:154
msgid "Email address"
msgstr "Adresse e-mail"

#: packages/admin/src/components/SetupWizard.tsx:179
#: packages/admin/src/components/SignupPage.tsx:49
msgid "Email is required"
msgstr "L'e-mail est obligatoire"

#: packages/admin/src/components/settings/EmailSettings.tsx:215
msgid "Email Middleware"
msgstr "Middleware de messagerie"

#: packages/admin/src/components/settings/EmailSettings.tsx:125
msgid "Email Pipeline"
msgstr "Pipeline de messagerie"

#: packages/admin/src/components/settings/EmailSettings.tsx:199
msgid "Email provider active"
msgstr "Fournisseur de messagerie actif"

#: packages/admin/src/components/settings/EmailSettings.tsx:85
#: packages/admin/src/components/settings/EmailSettings.tsx:100
msgid "Email Settings"
msgstr "Paramètres de messagerie"

#: packages/admin/src/components/users/UserDetail.tsx:235
msgid "Email verified"
msgstr "E-mail vérifié"

#: packages/admin/src/components/SignupPage.tsx:189
msgid "Email verified!"
msgstr "E-mail vérifié !"

#. placeholder {0}: block.label
#: packages/admin/src/components/PortableTextEditor.tsx:2224
msgid "Embed a {0}"
msgstr "Intégrer un {0}"

#: packages/admin/src/components/PortableTextEditor.tsx:2227
msgid "Embeds"
msgstr "Intégrations"

#: packages/admin/src/components/WordPressImport.tsx:1047
msgid "EmDash Exporter"
msgstr "Exportateur EmDash"

#: packages/admin/src/components/WordPressImport.tsx:1146
msgid "EmDash Exporter plugin detected! You can import directly."
msgstr "Module d'extension EmDash Exporter détecté ! Vous pouvez importer directement."

#: packages/admin/src/components/users/UserDetail.tsx:319
msgid "Enable"
msgstr "Activer"

#: packages/admin/src/components/ContentTypeEditor.tsx:495
msgid "Enable comments"
msgstr "Activer les commentaires"

#: packages/admin/src/components/ContentTypeEditor.tsx:87
msgid "Enable full-text search on this collection"
msgstr "Permettre la recherche dans le contenu de cette collection"

#: packages/admin/src/components/PluginManager.tsx:448
msgid "Enable plugin"
msgstr "Activer le module d'extension"

#: packages/admin/src/components/Redirects.tsx:504
msgid "Enable redirect"
msgstr "Activer la redirection"

#: packages/admin/src/components/Redirects.tsx:175
#: packages/admin/src/components/Redirects.tsx:418
msgid "Enabled"
msgstr "Activé"

#. placeholder {0}: label.toLowerCase()
#: packages/admin/src/components/ContentEditor.tsx:1229
msgid "Enter {0}..."
msgstr "Saisissez {0}..."

#: packages/admin/src/components/MenuEditor.tsx:344
#: packages/admin/src/components/MenuEditor.tsx:514
msgid "Enter a URL (https://…) or a relative path (/…)"
msgstr "Saisissez une URL (https://…) ou un chemin relatif (/…)"

#: packages/admin/src/components/ContentEditor.tsx:1477
msgid "Enter a valid URL (e.g. https://example.com)"
msgstr "Saisissez une URL valide (par exemple https://example.com)"

#: packages/admin/src/components/WordPressImport.tsx:1219
msgid "Enter credentials manually"
msgstr "Saisir les informations d'identification manuellement"

#: packages/admin/src/components/ContentEditor.tsx:666
msgid "Enter distraction-free mode"
msgstr "Passez en mode sans distraction"

#: packages/admin/src/components/users/UserDetail.tsx:158
msgid "Enter email"
msgstr "Saisissez l'adresse mail"

#: packages/admin/src/components/editor/HtmlBlockNode.tsx:144
msgid "Enter HTML..."
msgstr "Saisissez du HTML..."

#: packages/admin/src/components/ContentEditor.tsx:1251
msgid "Enter markdown content..."
msgstr "Saisissez du contenu Markdown..."

#: packages/admin/src/components/users/UserDetail.tsx:151
msgid "Enter name"
msgstr "Saisissez le nom"

#: packages/admin/src/components/DeviceAuthorizePage.tsx:177
msgid "Enter the code from your terminal"
msgstr "Saisissez le code depuis votre terminal"

#: packages/admin/src/components/editor/PluginBlockNode.tsx:123
#: packages/admin/src/components/editor/PluginBlockNode.tsx:132
msgid "Enter URL..."
msgstr "Saisissez l'URL..."

#: packages/admin/src/components/LoginPage.tsx:325
msgid "Enter your handle to sign in."
msgstr "Saisissez votre identifiant pour vous connecter."

#: packages/admin/src/components/WordPressImport.tsx:1298
msgid "Enter your WordPress credentials to import content directly."
msgstr "Saisissez vos informations d'identification WordPress pour importer du contenu directement."

#: packages/admin/src/components/WordPressImport.tsx:924
msgid "Enter your WordPress site URL"
msgstr "Saisir l'URL de votre site WordPress"

#: packages/admin/src/components/MenuEditor.tsx:101
#: packages/admin/src/components/MenuEditor.tsx:139
#: packages/admin/src/components/MenuEditor.tsx:179
#: packages/admin/src/components/SetupWizard.tsx:539
#: packages/admin/src/components/Widgets.tsx:689
#: packages/admin/src/router.tsx:1947
msgid "Error"
msgstr "Erreur"

#: packages/admin/src/components/Widgets.tsx:174
msgid "Error adding widget"
msgstr "Erreur lors de l'ajout du widget"

#: packages/admin/src/components/Widgets.tsx:235
msgid "Error reordering widgets"
msgstr "Erreur lors de la réorganisation des widgets"

#: packages/admin/src/components/SectionEditor.tsx:52
msgid "Error saving section"
msgstr "Erreur lors de l'enregistrement de la section"

#: packages/admin/src/components/Widgets.tsx:704
msgid "Error updating widget"
msgstr "Erreur lors de la mise à jour du widget"

#: packages/admin/src/components/RegistryPluginDetail.tsx:583
msgid "Every published release of this plugin has been withdrawn or could not be verified. Check back later, or contact the publisher."
msgstr "Toutes les versions publiées de ce module d'extension ont été retirées ou n'ont pas pu être vérifiées. Revenez plus tard ou contactez l'éditeur."

#: packages/admin/src/components/WordPressImport.tsx:1846
msgid "Exists"
msgstr "Existe"

#: packages/admin/src/components/ContentEditor.tsx:624
msgid "Exit distraction-free mode"
msgstr "Quitter le mode sans distraction"

#: packages/admin/src/components/PortableTextEditor.tsx:3258
msgid "Exit Spotlight Mode"
msgstr "Quitter le mode Projecteur"

#: packages/admin/src/components/PluginManager.tsx:460
msgid "Expand"
msgstr "Développer"

#: packages/admin/src/components/PluginManager.tsx:454
msgid "Expand details"
msgstr "Développer les détails"

#. placeholder {0}: new Date(token.expiresAt).toLocaleDateString()
#: packages/admin/src/components/settings/ApiTokenSettings.tsx:287
msgid "Expires {0}"
msgstr "Expire le {0}"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:436
msgid "Expiry"
msgstr "Expiration"

#: packages/admin/src/components/WordPressImport.tsx:1112
msgid "Export from WordPress manually"
msgstr "Exporter manuellement depuis WordPress"

#: packages/admin/src/components/WordPressImport.tsx:1236
msgid "Export your content from WordPress to import everything including drafts."
msgstr "Exportez votre contenu depuis WordPress pour tout importer, y compris les brouillons."

#: packages/admin/src/components/settings/SocialSettings.tsx:144
msgid "Facebook"
msgstr "Facebook"

#: packages/admin/src/components/MarketplaceBrowse.tsx:343
msgid "Fail"
msgstr "Échec"

#: packages/admin/src/components/WordPressImport.tsx:1966
msgid "Failed"
msgstr "Échec"

#: packages/admin/src/components/MarketplacePluginDetail.tsx:188
msgid "Failed security audit"
msgstr "Échec lors de l'audit de sécurité"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:90
msgid "Failed to add domain"
msgstr "Échec lors de l'ajout du domaine"

#: packages/admin/src/components/WordPressImport.tsx:367
msgid "Failed to analyze WordPress site"
msgstr "Échec lors de l'analyse du site WordPress"

#: packages/admin/src/components/SandboxedPluginPage.tsx:54
msgid "Failed to communicate with plugin"
msgstr "Échec lors de la communication avec le module d'extension"

#: packages/admin/src/lib/api/media.ts:155
msgid "Failed to confirm upload"
msgstr ""

#: packages/admin/src/components/SetupWizard.tsx:493
msgid "Failed to create admin"
msgstr "Échec lors de la création de l'administrateur"

#: packages/admin/src/components/ContentEditor.tsx:2047
msgid "Failed to create byline"
msgstr "Échec lors de la création de l'auteur"

#: packages/admin/src/lib/api/byline-fields.ts:120
msgid "Failed to create byline field"
msgstr "Échec lors de la création du champ d'auteur"

#: packages/admin/src/routes/byline-schema.tsx:102
msgid "Failed to create field"
msgstr "Échec lors de la création du champ"

#: packages/admin/src/lib/api/sections.ts:88
msgid "Failed to create section"
msgstr ""

#: packages/admin/src/components/WordPressImport.tsx:1553
msgid "Failed to create some collections"
msgstr "Échec lors de la création de certaines collections"

#: packages/admin/src/components/TaxonomySidebar.tsx:493
msgid "Failed to create term"
msgstr "Échec lors de la création du terme"

#: packages/admin/src/router.tsx:985
msgid "Failed to create translation"
msgstr "Échec lors de la création de la traduction"

#: packages/admin/src/router.tsx:398
#: packages/admin/src/router.tsx:427
#: packages/admin/src/router.tsx:1005
msgid "Failed to delete"
msgstr "Échec lors de la suppression"

#: packages/admin/src/lib/api/users.ts:345
msgid "Failed to delete allowed domain"
msgstr "Échec lors de la suppression du domaine autorisé"

#: packages/admin/src/lib/api/bylines.ts:143
msgid "Failed to delete byline"
msgstr "Échec lors de la suppression de l'auteur"

#: packages/admin/src/lib/api/byline-fields.ts:143
msgid "Failed to delete byline field"
msgstr "Échec lors de la suppression du champ d'auteur"

#: packages/admin/src/lib/api/schema.ts:222
msgid "Failed to delete collection"
msgstr "Échec lors de la suppression de la collection"

#: packages/admin/src/lib/api/comments.ts:111
#: packages/admin/src/router.tsx:1257
msgid "Failed to delete comment"
msgstr "Échec lors de la suppression du commentaire"

#: packages/admin/src/lib/api/content.ts:279
msgid "Failed to delete content"
msgstr "Échec lors de la suppression du contenu"

#: packages/admin/src/lib/api/schema.ts:278
#: packages/admin/src/routes/byline-schema.tsx:138
msgid "Failed to delete field"
msgstr "Échec lors de la suppression du champ"

#: packages/admin/src/lib/api/media.ts:389
msgid "Failed to delete from provider"
msgstr "Échec lors de la suppression du fournisseur"

#: packages/admin/src/lib/api/media.ts:259
msgid "Failed to delete media"
msgstr "Échec lors de la suppression du média"

#: packages/admin/src/lib/api/menus.ts:163
msgid "Failed to delete menu"
msgstr "Échec lors de la suppression du menu"

#: packages/admin/src/lib/api/menus.ts:217
msgid "Failed to delete menu item"
msgstr "Échec lors de la suppression de l'élément de menu"

#: packages/admin/src/lib/api/users.ts:256
msgid "Failed to delete passkey"
msgstr "Échec lors de la suppression de la clé d'accès"

#: packages/admin/src/lib/api/redirects.ts:111
msgid "Failed to delete redirect"
msgstr "Échec lors de la suppression de la redirection"

#: packages/admin/src/lib/api/sections.ts:110
msgid "Failed to delete section"
msgstr "Échec lors de la suppression de la section"

#: packages/admin/src/lib/api/taxonomies.ts:201
msgid "Failed to delete term"
msgstr "Échec lors de la suppression du terme"

#: packages/admin/src/lib/api/widgets.ts:146
msgid "Failed to delete widget"
msgstr "Échec lors de la suppression du widget"

#: packages/admin/src/lib/api/widgets.ts:108
msgid "Failed to delete widget area"
msgstr "Échec lors de la suppression de la zone de widgets"

#: packages/admin/src/components/PluginManager.tsx:116
#: packages/admin/src/lib/api/plugins.ts:91
msgid "Failed to disable plugin"
msgstr "Échec lors de la désactivation du module d'extension"

#: packages/admin/src/lib/api/search.ts:32
msgid "Failed to disable search"
msgstr ""

#: packages/admin/src/lib/api/users.ts:118
msgid "Failed to disable user"
msgstr "Échec lors de la désactivation de l'utilisateur"

#: packages/admin/src/router.tsx:912
msgid "Failed to discard changes"
msgstr "Échec lors de l'annulation des modifications"

#: packages/admin/src/components/WelcomeModal.tsx:70
msgid "Failed to dismiss welcome"
msgstr "Échec lors de la fermeture de la fenêtre de bienvenue"

#: packages/admin/src/router.tsx:441
msgid "Failed to duplicate"
msgstr "Échec lors de la duplication"

#: packages/admin/src/components/PluginManager.tsx:97
#: packages/admin/src/lib/api/plugins.ts:77
msgid "Failed to enable plugin"
msgstr "Échec lors de l'activation du module d'extension"

#: packages/admin/src/lib/api/search.ts:31
msgid "Failed to enable search"
msgstr ""

#: packages/admin/src/lib/api/users.ts:138
msgid "Failed to enable user"
msgstr "Échec lors de l'activation de l'utilisateur"

#: packages/admin/src/components/WordPressImport.tsx:295
msgid "Failed to execute import"
msgstr "Échec lors de l'exécution de l'importation"

#: packages/admin/src/lib/api/client.ts:227
msgid "Failed to fetch auth mode"
msgstr ""

#: packages/admin/src/lib/api/schema.ts:170
#: packages/admin/src/lib/api/schema.ts:174
msgid "Failed to fetch collection"
msgstr "Échec lors de la récupération de la collection"

#: packages/admin/src/lib/api/dashboard.ts:41
msgid "Failed to fetch dashboard stats"
msgstr ""

#: packages/admin/src/lib/api/email-settings.ts:34
msgid "Failed to fetch email settings"
msgstr ""

#: packages/admin/src/components/TaxonomySidebar.tsx:90
msgid "Failed to fetch entry terms"
msgstr "Échec lors de la récupération des termes d'entrée"

#: packages/admin/src/lib/api/client.ts:210
msgid "Failed to fetch manifest"
msgstr "Échec lors de la récupération du manifeste"

#: packages/admin/src/lib/api/media.ts:76
msgid "Failed to fetch media"
msgstr ""

#: packages/admin/src/lib/api/media.ts:89
msgid "Failed to fetch media item"
msgstr ""

#: packages/admin/src/lib/api/media.ts:325
msgid "Failed to fetch media providers"
msgstr ""

#: packages/admin/src/lib/api/plugins.ts:59
#: packages/admin/src/lib/api/plugins.ts:63
msgid "Failed to fetch plugin"
msgstr "Échec lors de la récupération du module d'extension"

#: packages/admin/src/lib/api/plugins.ts:45
msgid "Failed to fetch plugins"
msgstr ""

#: packages/admin/src/lib/api/media.ts:355
msgid "Failed to fetch provider media"
msgstr ""

#: packages/admin/src/lib/api/content.ts:556
#: packages/admin/src/lib/api/content.ts:561
msgid "Failed to fetch revision"
msgstr "Échec lors de la récupération de la révision"

#: packages/admin/src/lib/api/sections.ts:76
msgid "Failed to fetch section"
msgstr ""

#: packages/admin/src/lib/api/sections.ts:68
msgid "Failed to fetch sections"
msgstr ""

#: packages/admin/src/lib/api/settings.ts:50
msgid "Failed to fetch settings"
msgstr ""

#: packages/admin/src/components/SetupWizard.tsx:446
msgid "Failed to fetch setup status"
msgstr "Échec lors de la récupération de l'état de configuration"

#: packages/admin/src/components/TaxonomySidebar.tsx:71
msgid "Failed to fetch terms"
msgstr "Échec lors de la récupération des termes"

#: packages/admin/src/lib/api/current-user.ts:22
#: packages/admin/src/lib/api/users.ts:88
#: packages/admin/src/lib/api/users.ts:93
#: packages/admin/src/router.tsx:742
#: packages/admin/src/router.tsx:1188
msgid "Failed to fetch user"
msgstr "Échec lors de la récupération de l'utilisateur"

#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:271
msgid "Failed to generate preview"
msgstr "Échec lors de la génération de l'aperçu"

#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:157
msgid "Failed to generate preview URL"
msgstr "Échec lors de la génération de l'URL d'aperçu"

#: packages/admin/src/components/auth/PasskeyLogin.tsx:176
msgid "Failed to get authentication options"
msgstr "Échec lors de l'obtention des options d'authentification"

#: packages/admin/src/components/auth/PasskeyRegistration.tsx:180
msgid "Failed to get registration options"
msgstr "Échec lors de l'obtention des options d'inscription"

#: packages/admin/src/lib/api/media.ts:131
msgid "Failed to get upload URL"
msgstr ""

#: packages/admin/src/components/WordPressImport.tsx:386
msgid "Failed to import from WordPress"
msgstr "Échec lors de l'importation depuis WordPress"

#: packages/admin/src/components/WordPressImport.tsx:319
#: packages/admin/src/lib/api/import.ts:256
msgid "Failed to import media"
msgstr "Échec lors de l'importation du média"

#: packages/admin/src/lib/api/marketplace.ts:160
#: packages/admin/src/lib/api/registry.ts:692
msgid "Failed to install plugin"
msgstr "Échec lors de l'installation du module d'extension"

#: packages/admin/src/lib/api/byline-fields.ts:98
msgid "Failed to list byline fields"
msgstr "Échec lors du chargement de la liste des champs d'auteur"

#: packages/admin/src/router.tsx:258
msgid "Failed to load admin"
msgstr "Échec lors du chargement de l'administrateur"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:207
msgid "Failed to load allowed domains"
msgstr "Échec lors du chargement des domaines autorisés"

#. placeholder {0}: error.message
#: packages/admin/src/routes/bylines.tsx:366
msgid "Failed to load bylines: {0}"
msgstr "Échec lors du chargement des auteurs : {0}"

#: packages/admin/src/components/settings/EmailSettings.tsx:89
msgid "Failed to load email settings"
msgstr "Échec lors du chargement des paramètres de messagerie"

#: packages/admin/src/components/MediaPickerModal.tsx:422
msgid "Failed to load image"
msgstr "Échec lors du chargement de l'image"

#: packages/admin/src/components/settings/SecuritySettings.tsx:144
msgid "Failed to load passkeys"
msgstr "Échec lors du chargement des clés d'accès"

#: packages/admin/src/components/MarketplacePluginDetail.tsx:110
msgid "Failed to load plugin"
msgstr "Échec lors du chargement du module d'extension"

#. placeholder {0}: error.message
#: packages/admin/src/components/PluginManager.tsx:145
msgid "Failed to load plugins: {0}"
msgstr "Échec lors du chargement des modules d'extension : {0}"

#: packages/admin/src/components/RegistryBrowse.tsx:95
msgid "Failed to load plugins. The registry aggregator may be unreachable."
msgstr "Échec lors du chargement des modules d'extension. L'agrégateur de registres est peut-être injoignable."

#: packages/admin/src/components/RevisionHistory.tsx:180
msgid "Failed to load revisions"
msgstr "Échec lors du chargement des révisions"

#: packages/admin/src/components/SetupWizard.tsx:541
msgid "Failed to load setup"
msgstr "Échec lors du chargement de la configuration"

#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:89
msgid "Failed to load theme"
msgstr "Échec lors du chargement du thème"

#. placeholder {0}: usersQuery.error.message
#: packages/admin/src/routes/users.tsx:205
msgid "Failed to load users: {0}"
msgstr "Échec lors du chargement des utilisateurs : {0}"

#: packages/admin/src/components/SandboxedPluginWidget.tsx:46
msgid "Failed to load widget"
msgstr "Échec lors du chargement du widget"

#: packages/admin/src/router.tsx:1282
msgid "Failed to perform bulk action"
msgstr "Échec lors de l'exécution d'une action groupée"

#: packages/admin/src/lib/api/content.ts:322
msgid "Failed to permanently delete content"
msgstr "Échec lors de la suppression définitive du contenu"

#: packages/admin/src/components/WordPressImport.tsx:276
msgid "Failed to prepare import"
msgstr "Échec lors de la préparation de l'importation"

#: packages/admin/src/router.tsx:873
msgid "Failed to publish"
msgstr "Échec lors de la publication"

#: packages/admin/src/lib/api/byline-fields.ts:106
msgid "Failed to read byline field usage"
msgstr "Échec lors de la lecture de l'utilisation du champ d'auteur"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:130
msgid "Failed to remove domain"
msgstr "Échec lors de la suppression du domaine"

#: packages/admin/src/components/settings/PasskeyItem.tsx:99
#: packages/admin/src/components/settings/SecuritySettings.tsx:82
msgid "Failed to remove passkey"
msgstr "Échec lors de la suppression de la clé d'accès"

#: packages/admin/src/components/settings/SecuritySettings.tsx:66
msgid "Failed to rename passkey"
msgstr "Échec lors du renommage de la clé d'accès"

#: packages/admin/src/lib/api/byline-fields.ts:156
msgid "Failed to reorder byline fields"
msgstr "Échec lors de la réorganisation des champs d'auteur"

#: packages/admin/src/lib/api/schema.ts:293
#: packages/admin/src/routes/byline-schema.tsx:152
msgid "Failed to reorder fields"
msgstr "Échec lors de la réorganisation des champs"

#: packages/admin/src/lib/api/widgets.ts:158
msgid "Failed to reorder widgets"
msgstr "Échec lors de la réorganisation des widgets"

#: packages/admin/src/router.tsx:413
msgid "Failed to restore"
msgstr "Échec lors de la restauration"

#: packages/admin/src/lib/api/content.ts:311
msgid "Failed to restore content"
msgstr "Échec lors de la restauration du contenu"

#: packages/admin/src/lib/api/content.ts:578
#: packages/admin/src/lib/api/content.ts:583
msgid "Failed to restore revision"
msgstr "Échec lors de la restauration de la révision"

#: packages/admin/src/lib/api/api-tokens.ts:98
msgid "Failed to revoke API token"
msgstr "Échec lors de la révocation du jeton API"

#: packages/admin/src/components/WordPressImport.tsx:332
msgid "Failed to rewrite URLs"
msgstr "Échec lors de la réécriture des URL"

#: packages/admin/src/router.tsx:817
#: packages/admin/src/router.tsx:1764
msgid "Failed to save"
msgstr "Échec lors de l'enregistrement"

#: packages/admin/src/routes/byline-schema.tsx:122
msgid "Failed to save field"
msgstr "Échec lors de l'enregistrement du champ"

#: packages/admin/src/components/settings/GeneralSettings.tsx:58
#: packages/admin/src/components/settings/SeoSettings.tsx:62
#: packages/admin/src/components/settings/SocialSettings.tsx:53
msgid "Failed to save settings"
msgstr "Échec lors de l'enregistrement des paramètres"

#: packages/admin/src/router.tsx:933
msgid "Failed to schedule"
msgstr "Échec lors de la planification"

#: packages/admin/src/components/LoginPage.tsx:70
#: packages/admin/src/components/LoginPage.tsx:75
msgid "Failed to send magic link"
msgstr "Échec lors de l'envoi du lien de connexion"

#: packages/admin/src/lib/api/users.ts:128
msgid "Failed to send recovery link"
msgstr "Échec lors de l'envoi du lien de récupération"

#: packages/admin/src/components/settings/EmailSettings.tsx:61
#: packages/admin/src/lib/api/email-settings.ts:45
msgid "Failed to send test email"
msgstr "Échec lors de l'envoi de l'e-mail de test"

#: packages/admin/src/components/SignupPage.tsx:349
msgid "Failed to send verification email"
msgstr "Échec lors de l'envoi de l'e-mail de vérification"

#: packages/admin/src/components/TaxonomySidebar.tsx:113
msgid "Failed to set entry terms"
msgstr "Échec lors de la définition des conditions d'entrée"

#: packages/admin/src/lib/api/marketplace.ts:192
#: packages/admin/src/lib/api/registry.ts:831
msgid "Failed to uninstall plugin"
msgstr "Échec lors de la désinstallation du module d'extension"

#: packages/admin/src/router.tsx:891
msgid "Failed to unpublish"
msgstr "Échec lors de l'annulation de la publication"

#: packages/admin/src/router.tsx:954
msgid "Failed to unschedule"
msgstr "Échec lors de la déprogrammation"

#. placeholder {0}: taxonomy.label.toLowerCase()
#: packages/admin/src/components/TaxonomySidebar.tsx:349
msgid "Failed to update {0}"
msgstr "Échec lors de la mise à jour de {0}"

#: packages/admin/src/components/ContentEditor.tsx:2097
msgid "Failed to update byline"
msgstr "Échec lors de la mise à jour de l'auteur"

#: packages/admin/src/lib/api/byline-fields.ts:135
msgid "Failed to update byline field"
msgstr "Échec lors de la mise à jour du champ d'auteur"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:113
msgid "Failed to update domain"
msgstr "Échec lors de la mise à jour du domaine"

#: packages/admin/src/lib/api/media.ts:276
msgid "Failed to update media"
msgstr ""

#: packages/admin/src/lib/api/marketplace.ts:176
#: packages/admin/src/lib/api/registry.ts:763
msgid "Failed to update plugin"
msgstr "Échec lors de la mise à jour du module d'extension"

#: packages/admin/src/lib/api/sections.ts:100
msgid "Failed to update section"
msgstr ""

#: packages/admin/src/lib/api/settings.ts:64
msgid "Failed to update settings"
msgstr ""

#: packages/admin/src/router.tsx:1241
msgid "Failed to update status"
msgstr "Échec lors de la mise à jour du statut"

#: packages/admin/src/lib/api/media.ts:173
msgid "Failed to upload file"
msgstr "Échec lors du téléchargement du fichier"

#: packages/admin/src/lib/api/media.ts:218
msgid "Failed to upload media"
msgstr ""

#: packages/admin/src/lib/api/media.ts:377
msgid "Failed to upload to provider"
msgstr ""

#: packages/admin/src/components/auth/PasskeyLogin.tsx:250
msgid "Failed to verify authentication"
msgstr "Échec lors de la vérification de l'authentification"

#: packages/admin/src/components/auth/PasskeyRegistration.tsx:253
msgid "Failed to verify registration"
msgstr "Échec lors de la vérification de l'inscription"

#: packages/admin/src/components/RegistryPluginDetail.tsx:792
msgid "FAQ"
msgstr "FAQ"

#: packages/admin/src/components/settings/GeneralSettings.tsx:236
#: packages/admin/src/components/settings/GeneralSettings.tsx:242
msgid "Favicon"
msgstr "Favicon"

#: packages/admin/src/components/WordPressImport.tsx:1022
msgid "Feature"
msgstr "Fonctionnalité"

#: packages/admin/src/components/ContentTypeEditor.tsx:442
#: packages/admin/src/components/ContentTypeList.tsx:103
msgid "Features"
msgstr "Fonctionnalités"

#: packages/admin/src/components/WordPressImport.tsx:736
msgid "Fetching content from the EmDash Exporter API."
msgstr "Récupération de contenu à partir de l'API EmDash Exporter."

#: packages/admin/src/routes/byline-schema.tsx:95
msgid "Field created"
msgstr "Champ créé"

#: packages/admin/src/routes/byline-schema.tsx:133
msgid "Field deleted"
msgstr "Champ supprimé"

#: packages/admin/src/components/FieldEditor.tsx:567
msgid "Field label"
msgstr "Libellé du champ"

#: packages/admin/src/components/FieldEditor.tsx:414
msgid "Field Label"
msgstr "Libellé du champ"

#: packages/admin/src/components/FieldEditor.tsx:426
msgid "Field slugs cannot be changed after creation"
msgstr "Le slug des champs ne peut pas être modifié après la création"

#: packages/admin/src/components/BylineFieldEditor.tsx:268
msgid "Field type cannot be changed after creation."
msgstr "Le type de champ ne peut pas être modifié après la création."

#: packages/admin/src/routes/byline-schema.tsx:115
msgid "Field updated"
msgstr "Champ mis à jour"

#: packages/admin/src/components/ContentTypeEditor.tsx:572
msgid "Fields"
msgstr "Champs"

#: packages/admin/src/components/WordPressImport.tsx:2139
msgid "Fields created:"
msgstr "Champs créés :"

#: packages/admin/src/components/FieldEditor.tsx:210
msgid "File"
msgstr "Fichier"

#. placeholder {0}: progress.current
#: packages/admin/src/components/WordPressImport.tsx:1994
msgid "File {0}"
msgstr "Fichier {0}"

#: packages/admin/src/components/FieldEditor.tsx:211
msgid "File from media library"
msgstr "Fichier de la médiathèque"

#: packages/admin/src/components/MediaDetailPanel.tsx:206
#: packages/admin/src/components/MediaLibrary.tsx:490
msgid "Filename"
msgstr "Nom du fichier"

#: packages/admin/src/components/MediaDetailPanel.tsx:210
msgid "Filename cannot be changed after upload"
msgstr "Le nom du fichier ne peut pas être modifié après le téléversement"

#: packages/admin/src/components/WordPressImport.tsx:2172
msgid "files imported"
msgstr "fichiers importés"

#: packages/admin/src/components/ContentList.tsx:583
msgid "Filter by author"
msgstr ""

#: packages/admin/src/components/MarketplaceBrowse.tsx:113
msgid "Filter by capability"
msgstr "Filtrer par capacité"

#: packages/admin/src/components/comments/CommentInbox.tsx:177
msgid "Filter by collection"
msgstr "Filtrer par collection"

#: packages/admin/src/components/users/UserList.tsx:82
msgid "Filter by role"
msgstr "Filtrer par rôle"

#: packages/admin/src/components/Sections.tsx:245
msgid "Filter by source"
msgstr "Filtrer par source"

#: packages/admin/src/components/ContentList.tsx:568
#: packages/admin/src/components/Redirects.tsx:419
msgid "Filter by status"
msgstr "Filtrer par statut"

#: packages/admin/src/components/MediaLibrary.tsx:406
#: packages/admin/src/components/Redirects.tsx:425
msgid "Filter by type"
msgstr "Filtrer par type"

#: packages/admin/src/routes/bylines.tsx:409
msgid "Filter byline type"
msgstr "Filtrer le type d'auteur"

#: packages/admin/src/components/ContentTypeEditor.tsx:64
msgid "First-time commenters only"
msgstr "Réservé aux nouveaux commentateurs"

#: packages/admin/src/components/AllowedTypesEditor.tsx:69
msgid "Fonts"
msgstr "Polices"

#: packages/admin/src/components/WordPressImport.tsx:1237
msgid "For a complete import including drafts and all content, export from WordPress."
msgstr "Pour une importation complète incluant les brouillons et tout le contenu, exportez depuis WordPress."

#: packages/admin/src/components/WordPressImport.tsx:1046
msgid "For the best import experience, install the"
msgstr "Pour une expérience d'importation optimale, installez le"

#: packages/admin/src/components/ContentList.tsx:620
msgid "From date"
msgstr ""

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:164
msgid "Full"
msgstr ""

#: packages/admin/src/components/users/roleDefinitions.ts:43
msgid "Full access"
msgstr "Accès complet"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:96
msgid "Full admin access"
msgstr "Accès administrateur complet"

#: packages/admin/src/components/Settings.tsx:69
msgid "General"
msgstr "Général"

#: packages/admin/src/components/settings/GeneralSettings.tsx:101
#: packages/admin/src/components/settings/GeneralSettings.tsx:129
msgid "General Settings"
msgstr "Paramètres généraux"

#: packages/admin/src/components/TaxonomyManager.tsx:626
msgid "Genres"
msgstr "Genres"

#: packages/admin/src/components/WelcomeModal.tsx:143
msgid "Get Started"
msgstr "Commencer"

#: packages/admin/src/components/settings/SocialSettings.tsx:138
msgid "GitHub"
msgstr "GitHub"

#: packages/admin/src/components/auth/PasskeyRegistration.tsx:337
msgid "Give this passkey a name to help you identify it later."
msgstr "Donnez un nom à cette clé d'accès pour vous aider à l'identifier plus tard."

#: packages/admin/src/components/editor/codeBlockLanguages.ts:36
msgid "Go"
msgstr ""

#: packages/admin/src/components/WordPressImport.tsx:2224
#: packages/admin/src/router.tsx:1967
msgid "Go to Dashboard"
msgstr "Aller au tableau de bord"

#: packages/admin/src/components/settings/SeoSettings.tsx:227
msgid "Google Verification"
msgstr "Vérification Google"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:37
msgid "GraphQL"
msgstr ""

#: packages/admin/src/components/MediaLibrary.tsx:277
msgid "Grid view"
msgstr "Vue en grille"

#: packages/admin/src/components/Redirects.tsx:166
msgid "Group (optional)"
msgstr "Groupe (facultatif)"

#: packages/admin/src/routes/bylines.tsx:556
msgid "Guest byline"
msgstr "Auteur invité"

#: packages/admin/src/routes/bylines.tsx:414
msgid "Guest only"
msgstr "Invité seulement"

#: packages/admin/src/components/editor/BlockMenu.tsx:62
#: packages/admin/src/components/PortableTextEditor.tsx:1010
#: packages/admin/src/components/PortableTextEditor.tsx:3056
msgid "Heading 1"
msgstr "Titre 1"

#: packages/admin/src/components/editor/BlockMenu.tsx:70
#: packages/admin/src/components/PortableTextEditor.tsx:1020
#: packages/admin/src/components/PortableTextEditor.tsx:3063
msgid "Heading 2"
msgstr "Titre 2"

#: packages/admin/src/components/editor/BlockMenu.tsx:78
#: packages/admin/src/components/PortableTextEditor.tsx:1030
#: packages/admin/src/components/PortableTextEditor.tsx:3070
msgid "Heading 3"
msgstr "Titre 3"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:308
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:497
msgid "Height"
msgstr "Hauteur"

#: packages/admin/src/components/Sections.tsx:180
msgid "Hero Banner"
msgstr "Bannière de couverture"

#: packages/admin/src/components/SectionEditor.tsx:271
msgid "hero, banner, cta"
msgstr "couverture, bannière, appel à l'action"

#: packages/admin/src/components/SeoPanel.tsx:196
msgid "Hide from search engines"
msgstr "Masquer des moteurs de recherche"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:210
msgid "Hide token"
msgstr "Masquer le jeton"

#: packages/admin/src/components/TaxonomyManager.tsx:649
msgid "Hierarchical (like categories, with parent/child relationships)"
msgstr "Hiérarchique (comme les catégories, avec des relations parent/enfant)"

#: packages/admin/src/components/Redirects.tsx:225
#: packages/admin/src/components/Redirects.tsx:470
msgid "Hits"
msgstr "Clics"

#: packages/admin/src/components/MenuEditor.tsx:337
msgid "Home"
msgstr "Accueil"

#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:231
msgid "Homepage"
msgstr "Page d'accueil"

#: packages/admin/src/components/PluginManager.tsx:385
msgid "Hooks"
msgstr "Hooks"

#: packages/admin/src/components/WordPressImport.tsx:1359
msgid "How to create an Application Password"
msgstr "Comment créer un mot de passe d'application"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:38
#: packages/admin/src/components/editor/HtmlBlockNode.tsx:114
#: packages/admin/src/components/PortableTextEditor.tsx:1080
msgid "HTML"
msgstr "HTML"

#: packages/admin/src/components/editor/HtmlBlockNode.tsx:147
msgid "HTML source"
msgstr "Code source HTML"

#: packages/admin/src/components/MenuEditor.tsx:345
msgid "https://example.com or /about"
msgstr "https://example.com ou /about"

#: packages/admin/src/components/MediaPickerModal.tsx:508
msgid "https://example.com/image.jpg"
msgstr "https://example.com/image.jpg"

#: packages/admin/src/components/MarketplaceBrowse.tsx:241
#: packages/admin/src/components/MarketplacePluginDetail.tsx:142
msgid "Icon blurred due to image audit"
msgstr "Icône floutée en raison de l'audit d'image"

#: packages/admin/src/components/ContentTypeEditor.tsx:105
msgid "ID"
msgstr "ID"

#: packages/admin/src/components/LoginPage.tsx:103
msgid "If an account exists for <0>{email}</0>, we've sent a sign-in link."
msgstr "Si un compte existe pour <0>{email}</0>, nous vous avons envoyé un lien de connexion."

#: packages/admin/src/components/FieldEditor.tsx:204
#: packages/admin/src/components/FieldEditor.tsx:587
#: packages/admin/src/components/PortableTextEditor.tsx:2193
msgid "Image"
msgstr "Image"

#: packages/admin/src/components/FieldEditor.tsx:205
msgid "Image from media library"
msgstr "Image de la médiathèque"

#: packages/admin/src/components/BlockKitMediaPickerField.tsx:67
#: packages/admin/src/components/ImageFieldRenderer.tsx:113
msgid "Image not found"
msgstr "Image introuvable"

#: packages/admin/src/components/editor/ImageNode.tsx:208
#: packages/admin/src/components/editor/ImageNode.tsx:209
msgid "Image settings"
msgstr "Paramètres des images"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:225
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:410
msgid "Image Settings"
msgstr "Paramètres d'image"

#: packages/admin/src/components/SeoImageField.tsx:75
msgid "Image shown when this page is shared on social media"
msgstr "Image affichée lorsque cette page est partagée sur les réseaux sociaux"

#: packages/admin/src/components/MediaPickerModal.tsx:509
msgid "Image URL"
msgstr "URL de l'image"

#: packages/admin/src/components/WordPressImport.tsx:2176
msgid "image URLs updated in"
msgstr "URL des images mises à jour dans"

#: packages/admin/src/components/AllowedTypesEditor.tsx:61
#: packages/admin/src/components/MediaLibrary.tsx:401
msgid "Images"
msgstr "Images"

#: packages/admin/src/components/AdminCommandPalette.tsx:227
#: packages/admin/src/components/Sidebar.tsx:378
#: packages/admin/src/components/WordPressImport.tsx:664
msgid "Import"
msgstr "Importer"

#. placeholder {0}: postType.name
#: packages/admin/src/components/WordPressImport.tsx:1794
msgid "Import {0}"
msgstr "Importer {0}"

#: packages/admin/src/components/WordPressImport.tsx:1205
msgid "Import all content directly including drafts, custom post types, ACF fields, and SEO data. No file download needed."
msgstr "Importez directement tout le contenu, y compris les brouillons, les types de publication personnalisés, les champs ACF et les données SEO. Aucun téléchargement de fichier n'est nécessaire."

#: packages/admin/src/components/WordPressImport.tsx:2222
msgid "Import Another File"
msgstr "Importer un autre fichier"

#: packages/admin/src/components/WordPressImport.tsx:1016
msgid "Import Capabilities"
msgstr "Capacités d'importation"

#: packages/admin/src/components/WordPressImport.tsx:2110
msgid "Import Complete"
msgstr "Importation terminée"

#: packages/admin/src/components/WordPressImport.tsx:2111
msgid "Import Completed with Errors"
msgstr "Importation terminée avec des erreurs"

#: packages/admin/src/components/WordPressImport.tsx:1538
msgid "Import failed"
msgstr "Échec de l'importation"

#: packages/admin/src/components/WordPressImport.tsx:617
msgid "Import from WordPress"
msgstr "Importer depuis WordPress"

#: packages/admin/src/components/WordPressImport.tsx:1943
msgid "Import Media"
msgstr "Importer des fichiers multimédias"

#: packages/admin/src/components/WordPressImport.tsx:1896
msgid "Import Media Files"
msgstr "Importer des fichiers multimédias"

#: packages/admin/src/components/WordPressImport.tsx:619
msgid "Import posts, pages, and custom post types from WordPress."
msgstr "Importer des articles, des pages et des types de publications personnalisés depuis WordPress."

#: packages/admin/src/components/WordPressImport.tsx:1650
msgid "Import site configuration from WordPress."
msgstr "Importez la configuration du site depuis WordPress."

#: packages/admin/src/components/WordPressImport.tsx:1203
msgid "Import via EmDash Exporter"
msgstr "Importer via l'exportateur EmDash"

#: packages/admin/src/components/Sections.tsx:47
msgid "Imported"
msgstr "Importé"

#: packages/admin/src/components/WordPressImport.tsx:2150
msgid "Imported by Collection"
msgstr "Importé par Collection"

#: packages/admin/src/components/WordPressImport.tsx:820
msgid "Importing content..."
msgstr "En cours d'importation de contenu..."

#: packages/admin/src/components/WordPressImport.tsx:1975
msgid "Importing Media"
msgstr "Importation de fichiers multimédias"

#: packages/admin/src/components/SetupWizard.tsx:138
msgid "Include sample content (recommended for new sites)"
msgstr "Inclure un exemple de contenu (recommandé pour les nouveaux sites)"

#: packages/admin/src/components/WordPressImport.tsx:1816
msgid "Incompatible"
msgstr "Incompatible"

#: packages/admin/src/components/RegistryPluginDetail.tsx:493
msgid "Indexed"
msgstr "Indexé"

#: packages/admin/src/components/PortableTextEditor.tsx:3043
msgid "Inline Code"
msgstr "Code incorporé"

#: packages/admin/src/components/MediaPickerModal.tsx:520
#: packages/admin/src/components/MediaPickerModal.tsx:747
msgid "Insert"
msgstr "Insérer"

#. placeholder {0}: block?.label || ""
#: packages/admin/src/components/PortableTextEditor.tsx:1438
msgid "Insert {0}"
msgstr "Insérer {0}"

#: packages/admin/src/components/PortableTextEditor.tsx:1061
msgid "Insert a blockquote"
msgstr "Insérer une citation"

#: packages/admin/src/components/PortableTextEditor.tsx:1071
msgid "Insert a code block"
msgstr "Insérer un bloc de code"

#: packages/admin/src/components/PortableTextEditor.tsx:1096
msgid "Insert a horizontal rule"
msgstr "Insérer un séparateur horizontal"

#: packages/admin/src/components/PortableTextEditor.tsx:2208
msgid "Insert a reusable section"
msgstr "Insérer une section réutilisable"

#: packages/admin/src/components/PortableTextEditor.tsx:1106
msgid "Insert a table"
msgstr "Insérer un tableau"

#: packages/admin/src/components/PortableTextEditor.tsx:2194
msgid "Insert an image"
msgstr "Insérer une image"

#: packages/admin/src/components/MediaPickerModal.tsx:502
msgid "Insert from URL"
msgstr "Insérer à partir de l'URL"

#: packages/admin/src/components/PortableTextEditor.tsx:3225
msgid "Insert Horizontal Rule"
msgstr "Insérer une règle horizontale"

#: packages/admin/src/components/PortableTextEditor.tsx:3219
msgid "Insert HTML"
msgstr ""

#: packages/admin/src/components/PortableTextEditor.tsx:3208
msgid "Insert Image"
msgstr "Insérer une image"

#: packages/admin/src/components/PortableTextEditor.tsx:3155
msgid "Insert Link"
msgstr "Insérer un lien"

#: packages/admin/src/components/PortableTextEditor.tsx:1081
msgid "Insert raw HTML"
msgstr "Insérer du HTML brut"

#: packages/admin/src/components/SectionPickerModal.tsx:57
msgid "Insert Section"
msgstr "Insérer une section"

#: packages/admin/src/components/PortableTextEditor.tsx:3113
msgid "Insert Table"
msgstr "Insérer un tableau"

#: packages/admin/src/components/settings/SocialSettings.tsx:150
msgid "Instagram"
msgstr "Instagram"

#: packages/admin/src/components/MarketplacePluginDetail.tsx:192
#: packages/admin/src/components/RegistryPluginDetail.tsx:541
msgid "Install"
msgstr "Installer"

#: packages/admin/src/components/settings/EmailSettings.tsx:181
msgid "Install and activate an email provider plugin to enable email features like invitations, magic links, and password recovery."
msgstr "Installez et activez un module d'extension de fournisseur de messagerie pour activer les fonctionnalités de messagerie telles que les invitations, les liens magiques et la récupération de mot de passe."

#: packages/admin/src/components/MarketplacePluginDetail.tsx:186
msgid "Install blocked"
msgstr "Installation bloquée"

#: packages/admin/src/components/RegistryPluginDetail.tsx:791
msgid "Installation"
msgstr "Installation"

#: packages/admin/src/components/MarketplaceBrowse.tsx:261
#: packages/admin/src/components/MarketplacePluginDetail.tsx:173
#: packages/admin/src/components/RegistryBrowse.tsx:198
#: packages/admin/src/components/RegistryPluginDetail.tsx:533
msgid "Installed"
msgstr "Installé"

#. placeholder {0}: plugin.marketplaceVersion || plugin.version
#: packages/admin/src/components/PluginManager.tsx:500
msgid "Installed from marketplace (v{0})"
msgstr "Installé depuis la place de marché (v{0})"

#: packages/admin/src/components/PluginManager.tsx:519
msgid "Installed:"
msgstr "Installé :"

#: packages/admin/src/components/CapabilityConsentDialog.tsx:167
msgid "Installing..."
msgstr "En cours d'installation..."

#: packages/admin/src/components/FieldEditor.tsx:168
#: packages/admin/src/components/FieldEditor.tsx:582
msgid "Integer"
msgstr "Entier"

#: packages/admin/src/components/InviteAcceptPage.tsx:119
msgid "Invalid invite link"
msgstr "Lien d'invitation invalide"

#: packages/admin/src/components/ContentEditor.tsx:1546
msgid "Invalid JSON"
msgstr "JSON invalide"

#: packages/admin/src/components/SignupPage.tsx:259
msgid "Invalid link"
msgstr "Lien invalide"

#: packages/admin/src/components/InviteAcceptPage.tsx:207
msgid "Invite Error"
msgstr "Erreur lors de l'invitation"

#: packages/admin/src/components/InviteAcceptPage.tsx:117
msgid "Invite expired"
msgstr "Invitation expirée"

#: packages/admin/src/components/users/InviteUserModal.tsx:79
msgid "Invite Link Created"
msgstr "Lien d'invitation créé"

#: packages/admin/src/components/users/InviteUserModal.tsx:79
#: packages/admin/src/components/users/UserList.tsx:56
msgid "Invite User"
msgstr "Inviter un utilisateur"

#: packages/admin/src/components/users/UserList.tsx:140
msgid "Invite your first team member"
msgstr "Invitez votre premier membre de l'équipe"

#: packages/admin/src/components/PortableTextEditor.tsx:2714
#: packages/admin/src/components/PortableTextEditor.tsx:3022
msgid "Italic"
msgstr "Italique"

#. placeholder {0}: index + 1
#: packages/admin/src/components/PortableTextEditor.tsx:1819
#: packages/admin/src/components/RepeaterField.tsx:239
msgid "Item {0}"
msgstr "Article {0}"

#: packages/admin/src/components/MenuEditor.tsx:121
msgid "Item added"
msgstr "Article ajouté"

#: packages/admin/src/components/MenuEditor.tsx:133
msgid "Item deleted"
msgstr "Élément supprimé"

#: packages/admin/src/components/MenuEditor.tsx:158
msgid "Item updated"
msgstr "Article mis à jour"

#: packages/admin/src/components/SetupWizard.tsx:213
#: packages/admin/src/components/SignupPage.tsx:205
msgid "Jane Doe"
msgstr "Jane Doe"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:39
msgid "Java"
msgstr ""

#: packages/admin/src/components/editor/codeBlockLanguages.ts:40
msgid "JavaScript"
msgstr ""

#: packages/admin/src/components/BylineFieldEditor.tsx:235
msgid "Job title"
msgstr "Intitulé du poste"

#: packages/admin/src/components/BylineFieldEditor.tsx:246
msgid "job_title"
msgstr "intitule_du_poste"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:41
#: packages/admin/src/components/FieldEditor.tsx:222
msgid "JSON"
msgstr "JSON"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:42
msgid "JSX"
msgstr ""

#: packages/admin/src/components/ContentEditor.tsx:1926
msgid "Keep typing to narrow down more bylines."
msgstr "Continuez à saisir pour affiner davantage les auteurs."

#: packages/admin/src/components/MarketplacePluginDetail.tsx:293
#: packages/admin/src/components/SectionEditor.tsx:268
#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:189
msgid "Keywords"
msgstr "Mots-clés"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:43
msgid "Kotlin"
msgstr ""

#: packages/admin/src/components/BylineFieldEditor.tsx:232
#: packages/admin/src/components/FieldEditor.tsx:411
#: packages/admin/src/components/FieldEditor.tsx:553
#: packages/admin/src/components/MenuEditor.tsx:337
#: packages/admin/src/components/MenuEditor.tsx:506
#: packages/admin/src/components/MenuList.tsx:166
#: packages/admin/src/components/TaxonomyManager.tsx:623
#: packages/admin/src/components/Widgets.tsx:371
#: packages/admin/src/routes/byline-schema.tsx:234
msgid "Label"
msgstr "Libellé"

#: packages/admin/src/components/ContentTypeEditor.tsx:394
msgid "Label (Plural)"
msgstr "Libellé (pluriel)"

#: packages/admin/src/components/ContentTypeEditor.tsx:386
msgid "Label (Singular)"
msgstr "Libellé (singulier)"

#: packages/admin/src/components/editor/CodeBlockNode.tsx:162
#: packages/admin/src/components/LoginPage.tsx:345
#: packages/admin/src/components/Settings.tsx:129
#: packages/admin/src/components/Settings.tsx:134
msgid "Language"
msgstr "Langue"

#: packages/admin/src/components/PortableTextEditor.tsx:1011
msgid "Large section heading"
msgstr "Titre principal"

#: packages/admin/src/components/PluginManager.tsx:525
msgid "Last enabled:"
msgstr "Dernière activation :"

#: packages/admin/src/components/users/UserDetail.tsx:227
msgid "Last login"
msgstr "Dernière connexion"

#: packages/admin/src/components/users/UserList.tsx:107
msgid "Last Login"
msgstr "Dernière connexion"

#: packages/admin/src/components/Redirects.tsx:226
msgid "Last seen"
msgstr "Vu pour la dernière fois"

#: packages/admin/src/components/users/UserDetail.tsx:223
msgid "Last updated"
msgstr "Dernière mise à jour"

#: packages/admin/src/components/settings/PasskeyItem.tsx:161
msgid "Last used"
msgstr "Dernière utilisation"

#. placeholder {0}: new Date(cred.lastUsedAt).toLocaleDateString()
#. placeholder {0}: new Date(token.lastUsedAt).toLocaleDateString()
#: packages/admin/src/components/settings/ApiTokenSettings.tsx:292
#: packages/admin/src/components/users/UserDetail.tsx:262
msgid "Last used {0}"
msgstr "Dernière utilisation le {0}"

#: packages/admin/src/components/auth/PasskeyLogin.tsx:341
msgid "Leave blank to use a discoverable passkey."
msgstr "Laissez vide pour utiliser une clé d'accès détectable."

#: packages/admin/src/components/WordPressImport.tsx:2303
msgid "Leave unassigned"
msgstr "Laisser non attribué"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:160
msgid "Left"
msgstr ""

#: packages/admin/src/components/MediaLibrary.tsx:127
#: packages/admin/src/components/MediaLibrary.tsx:247
#: packages/admin/src/components/MediaLibrary.tsx:359
#: packages/admin/src/components/MediaPickerModal.tsx:203
#: packages/admin/src/components/MediaPickerModal.tsx:462
msgid "Library"
msgstr "Bibliothèque"

#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:203
msgid "License"
msgstr "Licence"

#: packages/admin/src/components/ThemeToggle.tsx:22
msgid "light"
msgstr "clair"

#: packages/admin/src/components/ThemeToggle.tsx:24
msgid "Light"
msgstr "Clair"

#: packages/admin/src/components/SignupPage.tsx:257
msgid "Link expired"
msgstr "Lien expiré"

#: packages/admin/src/components/FieldEditor.tsx:217
msgid "Link to another content item"
msgstr "Lien vers un autre élément de contenu"

#. placeholder {0}: user.oauthAccounts.length
#: packages/admin/src/components/users/UserDetail.tsx:276
msgid "Linked Accounts ({0})"
msgstr "Comptes associés ({0})"

#: packages/admin/src/routes/bylines.tsx:415
msgid "Linked only"
msgstr "Lié uniquement"

#: packages/admin/src/routes/bylines.tsx:507
msgid "Linked user"
msgstr "Utilisateur lié"

#: packages/admin/src/components/settings/SocialSettings.tsx:156
msgid "LinkedIn"
msgstr "LinkedIn"

#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:210
msgid "Links"
msgstr "Liens"

#: packages/admin/src/components/MediaLibrary.tsx:286
msgid "List view"
msgstr "Vue en liste"

#: packages/admin/src/components/ContentEditor.tsx:745
msgid "Live View"
msgstr "Affichage en direct"

#: packages/admin/src/components/ContentPickerModal.tsx:236
#: packages/admin/src/components/MarketplaceBrowse.tsx:198
#: packages/admin/src/components/RegistryBrowse.tsx:143
#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:170
#: packages/admin/src/routes/bylines.tsx:469
msgid "Load more"
msgstr "Charger davantage"

#: packages/admin/src/components/ContentList.tsx:444
#: packages/admin/src/components/ContentList.tsx:501
#: packages/admin/src/components/MediaLibrary.tsx:540
#: packages/admin/src/components/MediaPickerModal.tsx:723
#: packages/admin/src/components/users/UserList.tsx:169
msgid "Load More"
msgstr "Charger davantage"

#: packages/admin/src/routes/byline-schema.tsx:257
msgid "Loading byline fields…"
msgstr "En cours de chargement des champs d'auteur…"

#: packages/admin/src/components/ContentTypeList.tsx:114
msgid "Loading collections..."
msgstr "En cours de chargement des collections..."

#: packages/admin/src/components/comments/CommentInbox.tsx:307
msgid "Loading comments..."
msgstr "En cours de chargement des commentaires..."

#: packages/admin/src/router.tsx:1936
msgid "Loading configuration..."
msgstr "Chargement de la configuration en cours..."

#: packages/admin/src/components/ContentPickerModal.tsx:164
msgid "Loading content..."
msgstr "En cours de chargement du contenu..."

#: packages/admin/src/components/PortableTextEditor.tsx:2541
msgid "Loading editor..."
msgstr "Chargement de l'éditeur en cours..."

#: packages/admin/src/components/MenuEditor.tsx:263
msgid "Loading menu..."
msgstr "En cours de chargement du menu..."

#: packages/admin/src/components/MenuList.tsx:94
msgid "Loading menus..."
msgstr "En cours de chargement des menus..."

#: packages/admin/src/components/PluginManager.tsx:136
msgid "Loading plugins..."
msgstr "En cours de chargement des modules d'extension..."

#: packages/admin/src/components/Redirects.tsx:456
msgid "Loading redirects..."
msgstr "En cours de chargement des redirections..."

#: packages/admin/src/components/SectionPickerModal.tsx:94
#: packages/admin/src/components/Sections.tsx:252
msgid "Loading sections..."
msgstr "En cours de chargement des rubriques..."

#: packages/admin/src/components/settings/GeneralSettings.tsx:104
#: packages/admin/src/components/settings/SeoSettings.tsx:108
#: packages/admin/src/components/settings/SocialSettings.tsx:81
msgid "Loading settings..."
msgstr "En cours de chargement des paramètres..."

#: packages/admin/src/components/SetupWizard.tsx:528
msgid "Loading setup..."
msgstr "En cours de chargement de la configuration..."

#: packages/admin/src/components/TaxonomyManager.tsx:827
msgid "Loading terms..."
msgstr "En cours de chargement des termes..."

#: packages/admin/src/components/Widgets.tsx:310
msgid "Loading widgets..."
msgstr "Chargement des widgets en cours..."

#: packages/admin/src/components/ContentList.tsx:355
#: packages/admin/src/components/ContentList.tsx:444
#: packages/admin/src/components/ContentList.tsx:473
#: packages/admin/src/components/ContentList.tsx:501
#: packages/admin/src/components/ContentPickerModal.tsx:233
#: packages/admin/src/components/MarketplaceBrowse.tsx:198
#: packages/admin/src/components/MediaLibrary.tsx:540
#: packages/admin/src/components/MediaPickerModal.tsx:723
#: packages/admin/src/components/PortableTextEditor.tsx:1946
#: packages/admin/src/components/RegistryBrowse.tsx:143
#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:176
#: packages/admin/src/components/settings/SecuritySettings.tsx:113
#: packages/admin/src/components/TaxonomyManager.tsx:779
#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:170
#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:252
#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:143
#: packages/admin/src/components/users/UserList.tsx:156
#: packages/admin/src/components/WelcomeModal.tsx:143
#: packages/admin/src/routes/bylines.tsx:469
msgid "Loading..."
msgstr "En cours de chargement..."

#: packages/admin/src/components/ContentList.tsx:335
#: packages/admin/src/components/LocaleSwitcher.tsx:60
msgid "Locale"
msgstr "Langue"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:296
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:297
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:485
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:486
msgid "Lock aspect ratio"
msgstr "Verrouiller le rapport hauteur/largeur"

#: packages/admin/src/components/BylineFieldEditor.tsx:291
msgid "Locked because this field has stored values. Delete the values (or the field) to change this."
msgstr "Verrouillé parce que ce champ contient des valeurs enregistrées. Supprimez les valeurs (ou le champ) pour pouvoir le modifier."

#: packages/admin/src/components/Header.tsx:101
msgid "Log out"
msgstr "Se déconnecter"

#: packages/admin/src/components/settings/GeneralSettings.tsx:182
#: packages/admin/src/components/settings/GeneralSettings.tsx:188
msgid "Logo"
msgstr "Logo"

#: packages/admin/src/components/WordPressImport.tsx:1668
msgid "Logo & favicon"
msgstr "Logo et favicon"

#: packages/admin/src/components/BylineFieldEditor.tsx:53
msgid "Long text"
msgstr "Texte long"

#: packages/admin/src/components/FieldEditor.tsx:156
#: packages/admin/src/components/FieldEditor.tsx:580
msgid "Long Text"
msgstr "Texte long"

#: packages/admin/src/components/Sections.tsx:193
msgid "Lowercase letters, numbers, and hyphens only"
msgstr "Lettres minuscules, chiffres et traits d'union uniquement"

#: packages/admin/src/components/TaxonomyManager.tsx:641
msgid "Lowercase letters, numbers, and underscores only, starting with a letter"
msgstr "Lettres minuscules, chiffres et traits de soulignement uniquement, commençant par une lettre"

#: packages/admin/src/components/Widgets.tsx:371
msgid "Main Sidebar"
msgstr "Barre latérale principale"

#: packages/admin/src/lib/api/marketplace.ts:227
#: packages/admin/src/lib/api/marketplace.ts:235
msgid "Make network requests"
msgstr "Effectuer des requêtes réseau"

#: packages/admin/src/lib/api/marketplace.ts:228
#: packages/admin/src/lib/api/marketplace.ts:236
msgid "Make network requests to any host (unrestricted)"
msgstr "Effectuer des requêtes réseau vers n'importe quel hôte (sans restriction)"

#: packages/admin/src/components/Sidebar.tsx:461
msgid "Manage"
msgstr "Gérer"

#. placeholder {0}: taxonomyDef.label.toLowerCase()
#. placeholder {1}: taxonomyDef.collections.join(", ")
#: packages/admin/src/components/TaxonomyManager.tsx:798
msgid "Manage {0} for {1}"
msgstr "Gérer les {0} pour les {1}"

#: packages/admin/src/components/ContentEditor.tsx:1889
msgid "Manage bylines in {entryLocale}"
msgstr "Gérer les auteurs en {entryLocale}"

#: packages/admin/src/components/Widgets.tsx:326
msgid "Manage content widgets in your widget areas"
msgstr "Gérer les widgets de contenu dans vos zones de widgets"

#: packages/admin/src/components/PluginManager.tsx:175
msgid "Manage installed plugins. Enable or disable plugins to control their functionality."
msgstr "Gérer les modules d'extension installés. Activer ou désactiver les modules d'extension pour contrôler leurs fonctionnalités."

#: packages/admin/src/components/MenuList.tsx:104
msgid "Manage navigation menus for your site"
msgstr "Gérer les menus de navigation de votre site"

#: packages/admin/src/components/Redirects.tsx:359
msgid "Manage URL redirects and view 404 errors."
msgstr "Gérer les redirections d'URL et afficher les erreurs 404."

#: packages/admin/src/components/Settings.tsx:93
msgid "Manage your passkeys and authentication"
msgstr "Gérer vos clés d'accès et votre authentification"

#: packages/admin/src/components/Redirects.tsx:424
msgid "Manual"
msgstr "Manuel"

#: packages/admin/src/components/WordPressImport.tsx:2260
msgid "Map Authors"
msgstr "Associer les auteurs"

#. placeholder {0}: mapping.wpLogin
#: packages/admin/src/components/WordPressImport.tsx:2308
msgid "Map WordPress user {0} to EmDash user"
msgstr "Associer l'utilisateur WordPress {0} à l'utilisateur EmDash"

#. placeholder {0}: item.path
#: packages/admin/src/components/Redirects.tsx:255
msgid "Mark {0} as Gone (410)"
msgstr ""

#: packages/admin/src/components/Redirects.tsx:254
msgid "Mark as Gone (410) — tells search engines it was permanently deleted"
msgstr ""

#: packages/admin/src/components/comments/CommentInbox.tsx:501
msgid "Mark as spam"
msgstr "Marquer comme indésirable"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:44
msgid "Markdown"
msgstr ""

#: packages/admin/src/components/PluginManager.tsx:201
msgid "marketplace"
msgstr "place de marché"

#: packages/admin/src/components/MarketplaceBrowse.tsx:87
#: packages/admin/src/components/PluginManager.tsx:167
#: packages/admin/src/components/PluginManager.tsx:355
#: packages/admin/src/components/Sidebar.tsx:362
msgid "Marketplace"
msgstr "Place de marché"

#: packages/admin/src/components/FieldEditor.tsx:627
msgid "Max Items"
msgstr "Nombre maximum d'éléments"

#: packages/admin/src/components/FieldEditor.tsx:470
msgid "Max Length"
msgstr "Longueur maximale"

#: packages/admin/src/components/FieldEditor.tsx:500
msgid "Max Value"
msgstr "Valeur maximale"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:45
msgid "MDX"
msgstr ""

#: packages/admin/src/components/PortableTextEditor.tsx:2197
#: packages/admin/src/components/Sidebar.tsx:321
#: packages/admin/src/components/WordPressImport.tsx:678
#: packages/admin/src/components/WordPressImport.tsx:1173
msgid "Media"
msgstr "Médias"

#: packages/admin/src/components/MediaDetailPanel.tsx:134
msgid "Media Details"
msgstr "Détails des fichiers multimédias"

#. placeholder {0}: mediaResult.failed.length
#: packages/admin/src/components/WordPressImport.tsx:2206
msgid "Media Errors ({0})"
msgstr "Erreurs liées aux fichiers multimédias ({0})"

#: packages/admin/src/components/WordPressImport.tsx:2168
msgid "Media Import"
msgstr "Importation de fichiers multimédias"

#: packages/admin/src/components/WordPressImport.tsx:2109
msgid "Media Import Complete"
msgstr "Importation des fichiers multimédias terminée"

#: packages/admin/src/components/WordPressImport.tsx:2120
msgid "Media import was skipped"
msgstr "L'importation des fichiers multimédias a été ignorée"

#: packages/admin/src/components/AdminCommandPalette.tsx:154
#: packages/admin/src/components/MediaLibrary.tsx:271
msgid "Media Library"
msgstr "Médiathèque"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:55
msgid "Media Read"
msgstr "Lecture des fichiers multimédias"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:60
msgid "Media Write"
msgstr "Écriture des fichiers multimédias"

#: packages/admin/src/components/PortableTextEditor.tsx:1021
msgid "Medium section heading"
msgstr "Titre secondaire"

#: packages/admin/src/components/Widgets.tsx:102
#: packages/admin/src/components/Widgets.tsx:834
msgid "Menu"
msgstr "Menu"

#. placeholder {0}: translated.label
#. placeholder {1}: translated.locale.toUpperCase()
#: packages/admin/src/components/MenuEditor.tsx:90
msgid "Menu \"{0}\" ({1}) created."
msgstr "Menu « {0} » ({1}) créé."

#. placeholder {0}: menu.label
#: packages/admin/src/components/MenuList.tsx:55
msgid "Menu \"{0}\" has been created."
msgstr "Le menu « {0} » a été créé."

#: packages/admin/src/components/MenuList.tsx:54
msgid "Menu created"
msgstr "Menu créé"

#: packages/admin/src/components/MenuList.tsx:74
msgid "Menu deleted"
msgstr "Menu supprimé"

#: packages/admin/src/components/MenuEditor.tsx:121
msgid "Menu item has been added."
msgstr "Un élément de menu a été ajouté."

#: packages/admin/src/components/MenuEditor.tsx:134
msgid "Menu item has been deleted."
msgstr "L'élément de menu a été supprimé."

#: packages/admin/src/components/MenuEditor.tsx:159
msgid "Menu item has been updated."
msgstr "L'élément de menu a été mis à jour."

#: packages/admin/src/components/MenuEditor.tsx:271
msgid "Menu not found"
msgstr "Menu introuvable"

#: packages/admin/src/components/MenuEditor.tsx:174
msgid "Menu order has been updated."
msgstr "L'ordre des menus a été mis à jour."

#: packages/admin/src/components/AdminCommandPalette.tsx:161
#: packages/admin/src/components/MenuList.tsx:103
#: packages/admin/src/components/Sidebar.tsx:331
msgid "Menus"
msgstr "Menus"

#. placeholder {0}: navMenus.length
#: packages/admin/src/components/WordPressImport.tsx:1604
msgid "Menus ({0})"
msgstr "Menus ({0})"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:80
msgid "Menus Manage"
msgstr "Gestion des menus"

#: packages/admin/src/components/SeoPanel.tsx:170
msgid "Meta Description"
msgstr "Méta description"

#: packages/admin/src/components/settings/SeoSettings.tsx:236
msgid "Meta tag content for Bing Webmaster Tools verification"
msgstr "Contenu des balises méta pour la vérification avec les outils pour les webmasters de Bing"

#: packages/admin/src/components/settings/SeoSettings.tsx:230
msgid "Meta tag content for Google Search Console verification"
msgstr "Contenu des balises méta pour la vérification avec la console de recherche de Google"

#: packages/admin/src/components/WordPressImport.tsx:1681
msgid "Meta titles, descriptions, and social images"
msgstr "Méta titres, descriptions et images sociales"

#: packages/admin/src/components/FieldEditor.tsx:620
msgid "Min Items"
msgstr "Articles minimum"

#: packages/admin/src/components/FieldEditor.tsx:463
msgid "Min Length"
msgstr "Longueur minimale"

#: packages/admin/src/components/FieldEditor.tsx:493
msgid "Min Value"
msgstr "Valeur minimale"

#: packages/admin/src/components/ContentTypeEditor.tsx:506
msgid "Moderation"
msgstr "Modération"

#: packages/admin/src/components/comments/CommentDetail.tsx:129
msgid "Moderation Signals"
msgstr "Signaux de modération"

#: packages/admin/src/components/ContentPickerModal.tsx:211
msgid "Modified"
msgstr "Modifié"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:71
msgid "Modify collection schemas"
msgstr "Modifier les schémas de collections"

#: packages/admin/src/components/MarketplaceBrowse.tsx:42
msgid "Most Popular"
msgstr "Les plus populaires"

#. placeholder {0}: field.label
#: packages/admin/src/routes/byline-schema.tsx:439
msgid "Move \"{0}\" down"
msgstr "Déplacer « {0} » vers le bas"

#. placeholder {0}: field.label
#: packages/admin/src/routes/byline-schema.tsx:429
msgid "Move \"{0}\" up"
msgstr "Déplacer « {0} » vers le haut"

#: packages/admin/src/components/ContentList.tsx:845
msgid "Move \"{title}\" to trash? You can restore it later."
msgstr "Déplacer « {title} » vers la corbeille ? Vous pourrez le restaurer plus tard."

#: packages/admin/src/components/ContentList.tsx:836
msgid "Move {title} to trash"
msgstr "Déplacer {title} vers la corbeille"

#: packages/admin/src/components/MenuEditor.tsx:451
msgid "Move down"
msgstr "Descendre"

#: packages/admin/src/components/ContentEditor.tsx:944
#: packages/admin/src/components/ContentEditor.tsx:966
#: packages/admin/src/components/ContentList.tsx:858
msgid "Move to Trash"
msgstr "Déplacer vers la corbeille"

#: packages/admin/src/components/ContentEditor.tsx:950
#: packages/admin/src/components/ContentList.tsx:843
msgid "Move to Trash?"
msgstr "Placer dans la corbeille ?"

#: packages/admin/src/components/MenuEditor.tsx:442
msgid "Move up"
msgstr "Monter"

#: packages/admin/src/components/FieldEditor.tsx:192
msgid "Multi Select"
msgstr "Sélection multiple"

#: packages/admin/src/components/FieldEditor.tsx:157
msgid "Multi-line plain text"
msgstr "Texte brut multiligne"

#: packages/admin/src/components/FieldEditor.tsx:193
msgid "Multiple choices from options"
msgstr "Plusieurs choix parmi les options"

#: packages/admin/src/components/SetupWizard.tsx:120
msgid "My Awesome Blog"
msgstr "Mon super blog"

#: packages/admin/src/components/ContentTypeList.tsx:94
#: packages/admin/src/components/MarketplaceBrowse.tsx:45
#: packages/admin/src/components/MenuList.tsx:154
#: packages/admin/src/components/TaxonomyManager.tsx:389
#: packages/admin/src/components/TaxonomyManager.tsx:632
#: packages/admin/src/components/TaxonomyManager.tsx:821
#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:37
#: packages/admin/src/components/users/UserDetail.tsx:148
#: packages/admin/src/components/Widgets.tsx:365
msgid "Name"
msgstr "Nom"

#: packages/admin/src/components/TaxonomyManager.tsx:558
msgid "Name and label are required"
msgstr "Le nom et le libellé sont requis"

#: packages/admin/src/components/TaxonomyManager.tsx:564
msgid "Name must start with a letter and contain only lowercase letters, numbers, and underscores"
msgstr "Le nom doit commencer par une lettre et contenir uniquement des lettres minuscules, des chiffres et des traits de soulignement."

#: packages/admin/src/components/AdminCommandPalette.tsx:335
msgid "Navigation"
msgstr "Navigation"

#: packages/admin/src/components/users/UserDetail.tsx:231
#: packages/admin/src/components/users/UserList.tsx:185
msgid "Never"
msgstr "Jamais"

#: packages/admin/src/router.tsx:980
msgid "new"
msgstr "nouveau"

#: packages/admin/src/routes/bylines.tsx:427
msgid "New"
msgstr "Nouveau"

#: packages/admin/src/components/CapabilityConsentDialog.tsx:106
msgid "NEW"
msgstr "NOUVEAU"

#. placeholder {0}: (taxonomy.labelSingular || taxonomy.label).toLowerCase()
#: packages/admin/src/components/TaxonomySidebar.tsx:464
msgid "New {0}"
msgstr "Nouveau {0}"

#: packages/admin/src/components/ContentEditor.tsx:630
msgid "New {collectionLabel}"
msgstr "Nouveau {collectionLabel}"

#: packages/admin/src/components/BylineFieldEditor.tsx:209
msgid "New byline field"
msgstr "Nouveau champ d'auteur"

#: packages/admin/src/components/WordPressImport.tsx:1818
msgid "New collection"
msgstr "Nouvelle collection"

#: packages/admin/src/components/ContentTypeEditor.tsx:355
#: packages/admin/src/components/ContentTypeList.tsx:44
msgid "New Content Type"
msgstr "Nouveau type de contenu"

#: packages/admin/src/routes/byline-schema.tsx:224
msgid "New field"
msgstr "Nouveau champ"

#: packages/admin/src/components/CapabilityConsentDialog.tsx:116
msgid "New public routes"
msgstr "Nouvelles routes publiques"

#: packages/admin/src/components/Redirects.tsx:105
#: packages/admin/src/components/Redirects.tsx:362
msgid "New Redirect"
msgstr "Nouvelle redirection"

#: packages/admin/src/components/Sections.tsx:143
msgid "New Section"
msgstr "Nouvelle section"

#: packages/admin/src/components/AdminCommandPalette.tsx:466
msgid "new tab"
msgstr "nouvel onglet"

#: packages/admin/src/components/TaxonomyManager.tsx:811
msgid "New Taxonomy"
msgstr "Nouvelle taxonomie"

#: packages/admin/src/components/MenuEditor.tsx:351
#: packages/admin/src/components/MenuEditor.tsx:354
#: packages/admin/src/components/MenuEditor.tsx:522
#: packages/admin/src/components/MenuEditor.tsx:525
msgid "New window"
msgstr "Nouvelle fenêtre"

#: packages/admin/src/components/MarketplaceBrowse.tsx:44
#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:36
msgid "Newest"
msgstr "Le plus récent"

#: packages/admin/src/components/TaxonomyManager.tsx:392
msgid "News"
msgstr "Nouvelles"

#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:315
msgid "Next"
msgstr "Suivant"

#: packages/admin/src/components/comments/CommentInbox.tsx:371
#: packages/admin/src/components/ContentList.tsx:432
msgid "Next page"
msgstr "Page suivante"

#: packages/admin/src/components/MarketplacePluginDetail.tsx:463
msgid "Next screenshot"
msgstr "Capture d'écran suivante"

#: packages/admin/src/components/users/UserDetail.tsx:236
#: packages/admin/src/routes/byline-schema.tsx:422
msgid "No"
msgstr "Non"

#: packages/admin/src/routes/byline-schema.tsx:420
msgid "No (shared across translations)"
msgstr "Non (partagé entre les traductions)"

#. placeholder {0}: taxonomy.label.toLowerCase()
#: packages/admin/src/components/TaxonomySidebar.tsx:434
msgid "No {0} available."
msgstr "Aucun {0} disponible."

#. placeholder {0}: collectionLabel.toLowerCase()
#: packages/admin/src/components/ContentList.tsx:366
msgid "No {0} yet."
msgstr "Pas encore de {0}."

#. placeholder {0}: taxonomyDef.label.toLowerCase()
#: packages/admin/src/components/TaxonomyManager.tsx:830
msgid "No {0} yet. Create one to get started."
msgstr "Pas encore de {0}. Créez-en un pour commencer."

#: packages/admin/src/components/Redirects.tsx:217
msgid "No 404 errors recorded yet."
msgstr "Aucune erreur 404 enregistrée pour le moment."

#: packages/admin/src/components/MediaLibrary.tsx:697
#: packages/admin/src/components/MediaLibrary.tsx:754
msgid "No alt text"
msgstr "Aucun texte alternatif"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:270
msgid "No API tokens yet. Create one to get started."
msgstr "Aucun jeton d'API pour l'instant. Créez-en un pour commencer."

#: packages/admin/src/components/comments/CommentInbox.tsx:547
msgid "No approved comments yet."
msgstr "Aucun commentaire approuvé pour l'instant."

#: packages/admin/src/routes/byline-schema.tsx:291
msgid "No byline fields yet."
msgstr "Aucun champ d'auteur pour le moment."

#: packages/admin/src/components/ContentEditor.tsx:1881
msgid "No bylines available in {entryLocale}. Create a variant from the Bylines page before crediting one on this entry."
msgstr "Aucun auteur disponible en {entryLocale}. Créez une variante depuis la page Auteurs avant d'en mentionner un dans cette entrée."

#: packages/admin/src/routes/bylines.tsx:453
msgid "No bylines found"
msgstr "Aucun auteur trouvé"

#: packages/admin/src/components/ContentEditor.tsx:1988
msgid "No bylines selected."
msgstr "Aucun auteur sélectionné."

#: packages/admin/src/components/Dashboard.tsx:172
msgid "No collections configured"
msgstr "Aucune collection configurée"

#: packages/admin/src/components/comments/CommentInbox.tsx:546
msgid "No comments awaiting moderation."
msgstr "Aucun commentaire en attente de modération."

#: packages/admin/src/components/comments/CommentInbox.tsx:542
msgid "No comments match your search."
msgstr "Aucun commentaire ne correspond à votre recherche."

#: packages/admin/src/components/SandboxedPluginWidget.tsx:80
msgid "No content"
msgstr "Aucun contenu"

#: packages/admin/src/components/ContentPickerModal.tsx:171
msgid "No content found"
msgstr "Aucun contenu trouvé"

#: packages/admin/src/components/ContentPickerModal.tsx:177
msgid "No content in this collection"
msgstr "Aucun contenu dans cette collection"

#: packages/admin/src/components/ContentTypeList.tsx:120
msgid "No content types yet."
msgstr "Aucun type de contenu pour l'instant."

#: packages/admin/src/components/ContentTypeEditor.tsx:603
msgid "No custom fields yet"
msgstr "Pas encore de champs personnalisés"

#: packages/admin/src/components/MarketplacePluginDetail.tsx:264
msgid "No detailed description available."
msgstr "Aucune description détaillée disponible."

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:295
msgid "No domains configured. Users must be invited individually."
msgstr "Aucun domaine configuré. Les utilisateurs doivent être invités individuellement."

#: packages/admin/src/components/settings/EmailSettings.tsx:178
msgid "No email provider configured"
msgstr "Aucun fournisseur de messagerie configuré"

#: packages/admin/src/components/users/InviteUserModal.tsx:83
msgid "No email provider configured. Share this link manually."
msgstr "Aucun fournisseur de messagerie configuré. Partagez ce lien manuellement."

#: packages/admin/src/components/WordPressImport.tsx:2322
msgid "No EmDash users found"
msgstr "Aucun utilisateur EmDash trouvé"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:31
msgid "No expiry"
msgstr "Sans expiration"

#: packages/admin/src/components/RevisionHistory.tsx:327
msgid "No fields to compare"
msgstr "Aucun champ à comparer"

#: packages/admin/src/components/editor/DocumentOutline.tsx:189
msgid "No headings in document"
msgstr "Aucun titre dans le document"

#: packages/admin/src/components/RegistryPluginDetail.tsx:581
msgid "No installable releases"
msgstr "Aucune version installable"

#: packages/admin/src/components/InviteAcceptPage.tsx:159
msgid "No invite token provided"
msgstr "Aucun jeton d'invitation fourni"

#: packages/admin/src/components/PortableTextEditor.tsx:1742
#: packages/admin/src/components/RepeaterField.tsx:165
msgid "No items yet"
msgstr "Aucun élément pour l'instant"

#: packages/admin/src/components/FieldEditor.tsx:631
msgid "No limit"
msgstr "Aucune limite"

#: packages/admin/src/routes/bylines.tsx:518
msgid "No linked user"
msgstr "Aucun utilisateur lié"

#: packages/admin/src/components/editor/CodeBlockNode.tsx:171
msgid "No matches"
msgstr "Aucun résultat"

#: packages/admin/src/components/ContentEditor.tsx:1923
msgid "No matching bylines."
msgstr "Aucun auteur correspondant."

#: packages/admin/src/components/auth/PasskeyLogin.tsx:266
msgid "No matching passkey found for this account."
msgstr "Aucune clé d'accès correspondante trouvée pour ce compte."

#: packages/admin/src/components/FieldEditor.tsx:474
#: packages/admin/src/components/FieldEditor.tsx:504
msgid "No maximum"
msgstr "Pas de maximum"

#: packages/admin/src/components/MediaLibrary.tsx:443
#: packages/admin/src/components/MediaPickerModal.tsx:646
msgid "No media available from this provider"
msgstr "Aucun fichier multimédia disponible auprès de ce fournisseur"

#: packages/admin/src/components/MediaLibrary.tsx:437
#: packages/admin/src/components/MediaPickerModal.tsx:640
msgid "No media found"
msgstr "Aucun fichier multimédia trouvé"

#: packages/admin/src/components/MediaLibrary.tsx:426
msgid "No media yet"
msgstr "Pas encore de fichier multimédia"

#: packages/admin/src/components/MenuEditor.tsx:406
msgid "No menu items yet"
msgstr "Aucun élément de menu pour l'instant"

#: packages/admin/src/components/MenuList.tsx:186
msgid "No menus yet"
msgstr "Pas encore de menus"

#: packages/admin/src/components/FieldEditor.tsx:467
#: packages/admin/src/components/FieldEditor.tsx:497
msgid "No minimum"
msgstr "Pas de minimum"

#: packages/admin/src/components/ContentTypeEditor.tsx:65
msgid "No moderation (auto-approve all)"
msgstr "Pas de modération (tout approuver automatiquement)"

#: packages/admin/src/components/users/UserDetail.tsx:248
msgid "No passkeys registered"
msgstr "Aucune clé d'accès enregistrée"

#: packages/admin/src/components/settings/SecuritySettings.tsx:195
msgid "No passkeys registered yet."
msgstr "Aucune clé d'accès enregistrée pour l'instant."

#: packages/admin/src/components/PluginManager.tsx:195
msgid "No plugins configured"
msgstr "Aucun module d'extension configuré"

#: packages/admin/src/components/MarketplaceBrowse.tsx:173
msgid "No plugins found"
msgstr "Aucun module d'extension trouvé"

#: packages/admin/src/components/RegistryBrowse.tsx:117
msgid "No plugins have been published to this registry yet."
msgstr "Aucun module d'extension n'a été publié dans ce registre pour l'instant."

#: packages/admin/src/components/RegistryBrowse.tsx:116
msgid "No plugins match \"{debouncedQuery}\"."
msgstr "Aucun module d'extension ne correspond à « {debouncedQuery} »."

#: packages/admin/src/components/Sections.tsx:343
msgid "No preview"
msgstr "Aucun aperçu"

#: packages/admin/src/components/Dashboard.tsx:236
msgid "No recent activity"
msgstr "Aucune activité récente"

#: packages/admin/src/components/Redirects.tsx:460
msgid "No redirects yet"
msgstr "Aucune redirection pour l'instant"

#: packages/admin/src/components/PortableTextEditor.tsx:1300
#: packages/admin/src/components/RepeaterField.tsx:374
msgid "No results"
msgstr "Aucun résultat"

#: packages/admin/src/components/ContentList.tsx:363
#: packages/admin/src/components/ContentList.tsx:382
msgid "No results for \"{activeSearch}\""
msgstr "Aucun résultat pour « {activeSearch} »"

#: packages/admin/src/components/MarketplaceBrowse.tsx:176
#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:152
msgid "No results for \"{debouncedQuery}\". Try a different search term."
msgstr "Aucun résultat pour « {debouncedQuery} ». Essayez un autre terme de recherche."

#: packages/admin/src/components/AdminCommandPalette.tsx:452
msgid "No results found"
msgstr "Aucun résultat trouvé"

#: packages/admin/src/components/RevisionHistory.tsx:183
msgid "No revisions yet"
msgstr "Aucune révision pour l'instant"

#: packages/admin/src/components/SectionPickerModal.tsx:107
msgid "No sections available"
msgstr "Aucune section disponible"

#: packages/admin/src/components/SectionPickerModal.tsx:101
#: packages/admin/src/components/Sections.tsx:259
msgid "No sections found"
msgstr "Aucune section trouvée"

#: packages/admin/src/components/Sections.tsx:265
msgid "No sections yet"
msgstr "Aucune section pour l'instant"

#: packages/admin/src/components/comments/CommentInbox.tsx:548
msgid "No spam comments."
msgstr "Aucun commentaire indésirable."

#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:149
msgid "No themes found"
msgstr "Aucun thème trouvé"

#: packages/admin/src/components/users/UserList.tsx:120
msgid "No users found matching your filters."
msgstr "Aucun utilisateur trouvé correspondant à vos filtres."

#: packages/admin/src/components/users/UserList.tsx:134
msgid "No users yet."
msgstr "Aucun utilisateur pour l'instant."

#: packages/admin/src/components/Widgets.tsx:434
msgid "No widget areas yet. Create one to get started."
msgstr "Aucune zone de widget pour l'instant. Créez-en une pour commencer."

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:159
msgid "None"
msgstr ""

#: packages/admin/src/components/TaxonomyManager.tsx:418
#: packages/admin/src/components/TaxonomyManager.tsx:424
msgid "None (top level)"
msgstr "Aucun (niveau supérieur)"

#: packages/admin/src/components/RegistryPluginDetail.tsx:616
msgid "Not compatible with this environment"
msgstr "Non compatible avec cet environnement"

#: packages/admin/src/components/FieldEditor.tsx:162
#: packages/admin/src/components/FieldEditor.tsx:581
msgid "Number"
msgstr "Nombre"

#: packages/admin/src/components/settings/GeneralSettings.tsx:301
msgid "Number of posts to show per page on list views"
msgstr "Nombre d'articles à afficher par page dans les vues de liste"

#: packages/admin/src/components/editor/BlockMenu.tsx:110
#: packages/admin/src/components/PortableTextEditor.tsx:1050
#: packages/admin/src/components/PortableTextEditor.tsx:3090
msgid "Numbered List"
msgstr "Liste numérotée"

#: packages/admin/src/components/SeoImageField.tsx:41
msgid "OG Image"
msgstr "Image OG"

#: packages/admin/src/components/auth/PasskeyLogin.tsx:314
#: packages/admin/src/components/auth/PasskeyRegistration.tsx:311
msgid "on a custom hostname is not treated as secure, even on loopback."
msgstr "sur un nom d'hôte personnalisé n'est pas traité comme sécurisé, même en cas de bouclage."

#: packages/admin/src/components/DeviceAuthorizePage.tsx:278
msgid "Only authorize codes you recognize."
msgstr "Autorisez uniquement les codes que vous reconnaissez."

#: packages/admin/src/components/SignupPage.tsx:96
msgid "Only email addresses from allowed domains can sign up."
msgstr "Seules les adresses e-mail des domaines autorisés peuvent s'inscrire."

#: packages/admin/src/components/MenuList.tsx:159
msgid "Only lowercase letters, numbers, and hyphens"
msgstr "Uniquement les lettres minuscules, les chiffres et les traits d'union"

#: packages/admin/src/components/AllowedTypesEditor.tsx:106
msgid "Only the listed MIME types will be accepted for this field."
msgstr "Seuls les types MIME répertoriés seront acceptés pour ce champ."

#: packages/admin/src/components/SignupPage.tsx:402
msgid "Oops!"
msgstr "Oups !"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:379
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:380
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:568
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:569
#: packages/admin/src/components/editor/PluginBlockNode.tsx:333
#: packages/admin/src/components/editor/PluginBlockNode.tsx:334
msgid "Open in new tab"
msgstr "Ouvrir dans un nouvel onglet"

#: packages/admin/src/components/WordPressImport.tsx:1373
msgid "Open WordPress Profile"
msgstr "Ouvrir le profil WordPress"

#: packages/admin/src/components/FieldEditor.tsx:515
msgid ""
"Option 1\n"
"Option 2\n"
"Option 3"
msgstr ""
"Option 1\n"
"Option 2\n"
"Option 3"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:355
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:544
msgid "Optional caption displayed below the image"
msgstr "Légende facultative affichée sous l'image"

#: packages/admin/src/components/MediaDetailPanel.tsx:227
msgid "Optional caption for display"
msgstr "Légende facultative à afficher"

#: packages/admin/src/components/TaxonomyManager.tsx:437
msgid "Optional description"
msgstr "Description facultative"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:364
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:553
msgid "Optional tooltip on hover"
msgstr "Info-bulle facultative au survol"

#: packages/admin/src/components/BylineFieldEditor.tsx:302
#: packages/admin/src/components/FieldEditor.tsx:512
msgid "Options (one per line)"
msgstr "Options (une par ligne)"

#: packages/admin/src/components/MediaPickerModal.tsx:532
msgid "or choose from library"
msgstr "ou choisissez dans la bibliothèque"

#: packages/admin/src/components/WordPressImport.tsx:1429
msgid "Or click to browse. Accepts .xml files exported from WordPress."
msgstr "Ou cliquez pour parcourir. Accepte les fichiers .xml exportés depuis WordPress."

#: packages/admin/src/components/LoginPage.tsx:261
#: packages/admin/src/components/SetupWizard.tsx:310
msgid "Or continue with"
msgstr "Ou se connecter avec"

#: packages/admin/src/components/WordPressImport.tsx:1230
msgid "Or upload an export file"
msgstr "Ou importer un fichier d'exportation"

#: packages/admin/src/components/WordPressImport.tsx:949
msgid "or upload directly"
msgstr "ou importer directement"

#: packages/admin/src/components/MenuEditor.tsx:173
msgid "Order saved"
msgstr "Ordre enregistré"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:257
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:446
msgid "Original:"
msgstr "Original :"

#: packages/admin/src/components/editor/DocumentOutline.tsx:181
msgid "Outline"
msgstr "Plan"

#: packages/admin/src/components/SeoPanel.tsx:160
msgid "Overrides the page title in search engine results"
msgstr "Remplace le titre de la page dans les résultats des moteurs de recherche"

#: packages/admin/src/components/ContentEditor.tsx:981
msgid "Ownership"
msgstr "Propriété"

#: packages/admin/src/components/PluginManager.tsx:509
msgid "Package"
msgstr "Paquet"

#: packages/admin/src/router.tsx:1962
msgid "Page Not Found"
msgstr "Page introuvable"

#: packages/admin/src/components/PluginManager.tsx:373
#: packages/admin/src/components/WordPressImport.tsx:1167
msgid "Pages"
msgstr "Pages"

#: packages/admin/src/components/editor/BlockMenu.tsx:54
msgid "Paragraph"
msgstr "Paragraphe"

#: packages/admin/src/components/TaxonomyManager.tsx:414
msgid "Parent"
msgstr "Parent"

#: packages/admin/src/components/Redirects.tsx:509
#: packages/admin/src/components/Redirects.tsx:515
msgid "Part of a redirect loop"
msgstr "Partie d'une boucle de redirection"

#: packages/admin/src/components/MarketplaceBrowse.tsx:322
msgid "Pass"
msgstr "Passer"

#: packages/admin/src/components/settings/SecuritySettings.tsx:98
msgid "Passkey added successfully"
msgstr "Clé d'accès ajoutée avec succès"

#: packages/admin/src/components/settings/PasskeyItem.tsx:129
msgid "Passkey name"
msgstr "Nom de la clé d'accès"

#: packages/admin/src/components/auth/PasskeyRegistration.tsx:329
msgid "Passkey Name (optional)"
msgstr "Nom de la clé d'accès (facultatif)"

#: packages/admin/src/components/auth/PasskeyRegistration.tsx:352
msgid "Passkey registered successfully!"
msgstr "Mot de passe enregistré avec succès !"

#: packages/admin/src/components/settings/SecuritySettings.tsx:76
msgid "Passkey removed"
msgstr "Clé d'accès supprimée"

#: packages/admin/src/components/settings/SecuritySettings.tsx:60
msgid "Passkey renamed"
msgstr "Clé d'accès renommée"

#: packages/admin/src/components/settings/SecuritySettings.tsx:177
#: packages/admin/src/components/users/UserList.tsx:110
msgid "Passkeys"
msgstr "Clés d'accès"

#. placeholder {0}: user.credentials.length
#: packages/admin/src/components/users/UserDetail.tsx:245
msgid "Passkeys ({0})"
msgstr "Clés d'accès ({0})"

#: packages/admin/src/components/settings/SecuritySettings.tsx:181
msgid "Passkeys are a secure, passwordless way to sign in to your account. You can register multiple passkeys for different devices."
msgstr "Les clés d'accès sont un moyen sécurisé et sans mot de passe de vous connecter à votre compte. Vous pouvez enregistrer plusieurs clés d'accès pour différents appareils."

#: packages/admin/src/components/InviteAcceptPage.tsx:74
#: packages/admin/src/components/SignupPage.tsx:213
msgid "Passkeys are a secure, passwordless way to sign in using your device's biometrics, PIN, or security key."
msgstr "Les clés d'accès constituent un moyen sécurisé et sans mot de passe de vous connecter à l'aide des données biométriques, du code PIN ou de la clé de sécurité de votre appareil."

#: packages/admin/src/components/auth/PasskeyLogin.tsx:303
#: packages/admin/src/components/auth/PasskeyRegistration.tsx:300
msgid "Passkeys Not Available Here"
msgstr "Clés d'accès non disponibles ici"

#: packages/admin/src/components/auth/PasskeyLogin.tsx:307
#: packages/admin/src/components/auth/PasskeyRegistration.tsx:304
msgid "Passkeys require a"
msgstr "Les clés d'accès nécessitent un"

#: packages/admin/src/components/auth/PasskeyLogin.tsx:158
msgid "Passkeys require HTTPS or http://localhost (with your port); this hostname is not a secure browser context."
msgstr "Les clés d'accès nécessitent HTTPS ou http://localhost (avec votre port) ; ce nom d'hôte n'est pas un contexte de navigateur sécurisé."

#: packages/admin/src/components/Redirects.tsx:224
msgid "Path"
msgstr "Chemin"

#: packages/admin/src/components/FieldEditor.tsx:479
msgid "Pattern (Regex)"
msgstr "Modèle (expression régulière)"

#. placeholder {0}: "{slug}"
#: packages/admin/src/components/ContentTypeEditor.tsx:437
msgid "Pattern for generating URLs, e.g. /blog/{0}"
msgstr "Modèle pour générer des URL, par ex. /blog/{0}"

#. placeholder {0}: "{slug}"
#: packages/admin/src/components/ContentTypeEditor.tsx:433
msgid "Pattern must include a {0} placeholder"
msgstr "Le modèle doit inclure un élément substituable {0}"

#: packages/admin/src/components/AllowedTypesEditor.tsx:62
msgid "PDF"
msgstr "PDF"

#: packages/admin/src/components/comments/CommentDetail.tsx:196
#: packages/admin/src/components/ContentList.tsx:982
msgid "pending"
msgstr "en attente"

#: packages/admin/src/components/comments/CommentInbox.tsx:197
msgid "Pending"
msgstr "En attente"

#: packages/admin/src/components/ContentEditor.tsx:856
msgid "Pending changes"
msgstr "Modifications en attente"

#: packages/admin/src/components/ContentList.tsx:916
msgid "Permanently delete \"{title}\"? This cannot be undone."
msgstr "Supprimer définitivement « {title} » ? Cela ne peut pas être annulé."

#: packages/admin/src/components/ContentList.tsx:905
msgid "Permanently delete {title}"
msgstr "Supprimer définitivement {title}"

#: packages/admin/src/components/MarketplacePluginDetail.tsx:273
msgid "Permissions"
msgstr "Autorisations"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:46
msgid "PHP"
msgstr ""

#: packages/admin/src/components/SetupWizard.tsx:290
msgid "Pick any method to create your admin account."
msgstr "Choisissez n’importe quelle méthode pour créer votre compte administrateur."

#: packages/admin/src/components/auth/PasskeyLogin.tsx:313
#: packages/admin/src/components/auth/PasskeyRegistration.tsx:310
msgid "Plain"
msgstr "Un simple"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:27
#: packages/admin/src/components/editor/codeBlockLanguages.ts:120
msgid "Plain text"
msgstr ""

#: packages/admin/src/components/InviteAcceptPage.tsx:133
msgid "Please ask your administrator to send a new invite."
msgstr "Veuillez demander à votre administrateur d'envoyer une nouvelle invitation."

#: packages/admin/src/components/SetupWizard.tsx:181
msgid "Please enter a valid email"
msgstr "Veuillez saisir un email valide"

#: packages/admin/src/components/SignupPage.tsx:54
msgid "Please enter a valid email address"
msgstr "Veuillez saisir une adresse email valide"

#: packages/admin/src/components/MediaPickerModal.tsx:399
msgid "Please enter a valid URL"
msgstr "Veuillez saisir une URL valide"

#: packages/admin/src/components/WordPressImport.tsx:1024
msgid "Plugin"
msgstr "Module d'extension"

#: packages/admin/src/lib/api/plugins.ts:57
msgid "Plugin \"{pluginId}\" not found"
msgstr ""

#: packages/admin/src/components/RegistryPluginDetail.tsx:749
msgid "Plugin details"
msgstr "Détails du module d'extension"

#: packages/admin/src/components/PluginManager.tsx:110
msgid "Plugin disabled"
msgstr "Module d'extension désactivé"

#: packages/admin/src/components/PluginManager.tsx:91
msgid "Plugin enabled"
msgstr "Module d'extension activé"

#: packages/admin/src/components/SandboxedPluginPage.tsx:89
msgid "Plugin Error"
msgstr "Erreur de module d'extension"

#. placeholder {0}: response.status
#: packages/admin/src/components/SandboxedPluginWidget.tsx:37
msgid "Plugin error ({0})"
msgstr "Erreur de module d'extension ({0})"

#: packages/admin/src/components/MarketplacePluginDetail.tsx:112
msgid "Plugin not found"
msgstr "Module d'extension introuvable"

#: packages/admin/src/components/RegistryPluginDetail.tsx:398
msgid "Plugin not found. The publisher handle or slug may be incorrect."
msgstr "Module d'extension introuvable. L'identifiant ou le slug de l'éditeur est peut-être incorrect."

#: packages/admin/src/components/WordPressImport.tsx:1048
msgid "plugin on your WordPress site."
msgstr "module d'extension sur votre site WordPress."

#: packages/admin/src/components/CapabilityConsentDialog.tsx:75
msgid "Plugin Permissions"
msgstr "Autorisations du module d'extension"

#: packages/admin/src/components/RegistryBrowse.tsx:70
msgid "Plugin Registry"
msgstr "Registre des modules d'extension"

#. placeholder {0}: response.status
#: packages/admin/src/components/SandboxedPluginPage.tsx:40
msgid "Plugin responded with {0}: {text}"
msgstr "Le module d'extension a répondu avec {0} : {text}"

#: packages/admin/src/components/PluginManager.tsx:305
msgid "Plugin uninstalled"
msgstr "Module d'extension désinstallé"

#: packages/admin/src/lib/api/registry.ts:783
msgid "Plugin update requires re-consent"
msgstr "La mise à jour du module d'extension nécessite un nouveau consentement"

#: packages/admin/src/components/PluginManager.tsx:258
msgid "Plugin updated"
msgstr "Module d'extension mis à jour"

#: packages/admin/src/components/PluginFieldErrorBoundary.tsx:34
msgid "Plugin widget error"
msgstr ""

#: packages/admin/src/components/AdminCommandPalette.tsx:219
#: packages/admin/src/components/PluginManager.tsx:135
#: packages/admin/src/components/PluginManager.tsx:144
#: packages/admin/src/components/PluginManager.tsx:153
#: packages/admin/src/components/Sidebar.tsx:349
#: packages/admin/src/components/Sidebar.tsx:477
msgid "Plugins"
msgstr "Modules d'extension"

#: packages/admin/src/components/SeoPanel.tsx:187
msgid "Points search engines to the original version of this page, if it's duplicated from another URL"
msgstr "Dirige les moteurs de recherche vers la version originale de cette page, si elle est dupliquée à partir d'une autre URL"

#: packages/admin/src/components/ContentTypeEditor.tsx:389
msgid "Post"
msgstr ""

#: packages/admin/src/components/ContentTypeEditor.tsx:397
#: packages/admin/src/components/WordPressImport.tsx:1161
msgid "Posts"
msgstr "Articles"

#: packages/admin/src/components/settings/GeneralSettings.tsx:295
msgid "Posts Per Page"
msgstr "Articles par page"

#: packages/admin/src/components/RegistryPluginDetail.tsx:465
msgid "Pre-release"
msgstr "Version préliminaire"

#: packages/admin/src/components/auth/PasskeyRegistration.tsx:170
msgid "Preparing registration..."
msgstr "En cours de préparation de l'inscription..."

#: packages/admin/src/components/WordPressImport.tsx:2020
msgid "Preparing to download files from WordPress..."
msgstr "En cours de préparation du téléchargement de fichiers depuis WordPress..."

#: packages/admin/src/components/auth/PasskeyLogin.tsx:166
#: packages/admin/src/components/SetupWizard.tsx:233
msgid "Preparing..."
msgstr "En cours de préparation..."

#: packages/admin/src/components/ContentEditor.tsx:680
#: packages/admin/src/components/ContentTypeEditor.tsx:81
#: packages/admin/src/components/MediaLibrary.tsx:489
msgid "Preview"
msgstr "Aperçu"

#: packages/admin/src/components/ContentTypeEditor.tsx:82
msgid "Preview content before publishing"
msgstr "Prévisualiser le contenu avant publication"

#: packages/admin/src/components/ContentEditor.tsx:680
msgid "Preview draft"
msgstr "Aperçu du brouillon"

#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:308
msgid "Previous"
msgstr "Précédent"

#: packages/admin/src/components/comments/CommentInbox.tsx:352
#: packages/admin/src/components/ContentList.tsx:420
msgid "Previous page"
msgstr "Page précédente"

#: packages/admin/src/components/MarketplacePluginDetail.tsx:445
msgid "Previous screenshot"
msgstr "Capture d'écran précédente"

#: packages/admin/src/components/MenuList.tsx:166
msgid "Primary Navigation"
msgstr "Navigation principale"

#: packages/admin/src/components/settings/EmailSettings.tsx:202
msgid "Provider:"
msgstr "Fournisseur :"

#: packages/admin/src/components/ContentEditor.tsx:735
#: packages/admin/src/components/ContentEditor.tsx:841
msgid "Publish"
msgstr "Publier"

#: packages/admin/src/components/ContentEditor.tsx:725
msgid "Publish changes"
msgstr "Publier les modifications"

#: packages/admin/src/components/ContentList.tsx:957
msgid "published"
msgstr "publié"

#: packages/admin/src/components/ContentEditor.tsx:854
#: packages/admin/src/components/ContentList.tsx:543
#: packages/admin/src/components/ContentList.tsx:552
#: packages/admin/src/components/ContentPickerModal.tsx:209
#: packages/admin/src/components/Dashboard.tsx:187
#: packages/admin/src/router.tsx:869
msgid "Published"
msgstr "Publié"

#. placeholder {0}: new Date(latest.publishedAt).toLocaleDateString()
#: packages/admin/src/components/MarketplacePluginDetail.tsx:326
msgid "Published {0}"
msgstr "Publié {0}"

#: packages/admin/src/components/ContentTypeEditor.tsx:135
msgid "Published At"
msgstr "Publié le"

#: packages/admin/src/components/RegistryPluginDetail.tsx:459
msgid "Published by"
msgstr "Publié par"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:47
msgid "Python"
msgstr ""

#: packages/admin/src/components/ContentEditor.tsx:1996
msgid "Quick create byline"
msgstr "Création rapide d'un auteur"

#: packages/admin/src/components/editor/ImageNode.tsx:196
#: packages/admin/src/components/editor/ImageNode.tsx:197
msgid "Quick edit alt text"
msgstr "Modification rapide du texte alternatif"

#: packages/admin/src/components/editor/BlockMenu.tsx:86
#: packages/admin/src/components/PortableTextEditor.tsx:1060
#: packages/admin/src/components/PortableTextEditor.tsx:3097
msgid "Quote"
msgstr "Citation"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:66
msgid "Read collection schemas"
msgstr "Lire les schémas de collections"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:46
msgid "Read content entries"
msgstr "Lire les entrées de contenu"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:56
msgid "Read media files"
msgstr "Lire les fichiers multimédias"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:86
msgid "Read site settings"
msgstr "Lire les paramètres du site"

#: packages/admin/src/lib/api/marketplace.ts:226
#: packages/admin/src/lib/api/marketplace.ts:234
msgid "Read user accounts"
msgstr "Lire les comptes d'utilisateurs"

#: packages/admin/src/lib/api/marketplace.ts:222
#: packages/admin/src/lib/api/marketplace.ts:230
msgid "Read your content"
msgstr "Lire votre contenu"

#: packages/admin/src/components/settings/GeneralSettings.tsx:292
msgid "Reading"
msgstr "Lecture"

#: packages/admin/src/components/WordPressImport.tsx:1822
msgid "Ready"
msgstr "Prêt"

#: packages/admin/src/components/Dashboard.tsx:228
msgid "Recent Activity"
msgstr "Activité récente"

#: packages/admin/src/components/MarketplaceBrowse.tsx:43
#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:35
msgid "Recently Updated"
msgstr "Récemment mis à jour"

#: packages/admin/src/components/settings/EmailSettings.tsx:144
msgid "Recipient email"
msgstr "E-mail du destinataire"

#. placeholder {0}: user.email
#: packages/admin/src/components/users/UserDetail.tsx:336
msgid "Recovery link sent to {0}"
msgstr "Lien de récupération envoyé à {0}"

#: packages/admin/src/components/Redirects.tsx:442
msgid "Redirect loop detected"
msgstr "Boucle de redirection détectée"

#: packages/admin/src/components/DeviceAuthorizePage.tsx:163
msgid "Redirecting to login..."
msgstr "En cours de redirection vers le formulaire de connexion..."

#: packages/admin/src/components/Redirects.tsx:358
#: packages/admin/src/components/Redirects.tsx:377
#: packages/admin/src/components/Sidebar.tsx:332
msgid "Redirects"
msgstr "Redirections"

#: packages/admin/src/components/PortableTextEditor.tsx:3245
msgid "Redo"
msgstr "Refaire"

#: packages/admin/src/components/FieldEditor.tsx:216
msgid "Reference"
msgstr "Référence"

#: packages/admin/src/components/settings/GeneralSettings.tsx:251
msgid "Referenced favicon unavailable."
msgstr "Favicon référencée indisponible."

#: packages/admin/src/components/ContentTypeList.tsx:78
msgid "Register"
msgstr "Enregistrer"

#: packages/admin/src/components/auth/PasskeyRegistration.tsx:146
#: packages/admin/src/components/settings/SecuritySettings.tsx:220
msgid "Register Passkey"
msgstr "Enregistrer la clé d'accès"

#: packages/admin/src/components/comments/CommentDetail.tsx:83
msgid "Registered user"
msgstr "Utilisateur enregistré"

#: packages/admin/src/components/auth/PasskeyRegistration.tsx:259
msgid "Registration failed"
msgstr "L'inscription a échoué"

#: packages/admin/src/components/auth/PasskeyRegistration.tsx:266
msgid "Registration was cancelled or timed out. Please try again."
msgstr "L'inscription a été annulée ou a expiré. Veuillez réessayer."

#: packages/admin/src/components/Sidebar.tsx:355
msgid "Registry"
msgstr "Registre"

#: packages/admin/src/components/RegistryPluginDetail.tsx:597
msgid "Release is too new to install"
msgstr "La version est trop récente pour être installée"

#: packages/admin/src/components/BlockKitMediaPickerField.tsx:84
#: packages/admin/src/components/BlockKitMediaPickerField.tsx:115
#: packages/admin/src/components/ContentEditor.tsx:1965
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:199
#: packages/admin/src/components/PortableTextEditor.tsx:3196
#: packages/admin/src/components/settings/GeneralSettings.tsx:217
#: packages/admin/src/components/settings/GeneralSettings.tsx:271
#: packages/admin/src/components/settings/PasskeyItem.tsx:187
#: packages/admin/src/components/settings/PasskeyItem.tsx:209
#: packages/admin/src/components/settings/SeoSettings.tsx:209
msgid "Remove"
msgstr "Supprimer"

#. placeholder {0}: passkey.name
#. placeholder {0}: term.label
#: packages/admin/src/components/settings/PasskeyItem.tsx:188
#: packages/admin/src/components/TaxonomySidebar.tsx:243
msgid "Remove {0}"
msgstr "Supprimer {0}"

#: packages/admin/src/components/AllowedTypesEditor.tsx:145
msgid "Remove {entry}"
msgstr "Supprimer {entry}"

#: packages/admin/src/components/ContentEditor.tsx:1707
msgid "Remove {label}"
msgstr "Supprimer {label}"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:430
msgid "Remove Domain"
msgstr "Supprimer le domaine"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:414
msgid "Remove Domain?"
msgstr "Supprimer le domaine ?"

#: packages/admin/src/components/ImageFieldRenderer.tsx:130
#: packages/admin/src/components/ImageFieldRenderer.tsx:159
#: packages/admin/src/components/SeoImageField.tsx:55
msgid "Remove image"
msgstr "Supprimer l'image"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:392
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:582
msgid "Remove Image"
msgstr "Supprimer l'image"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:197
msgid "Remove Image?"
msgstr "Supprimer l'image ?"

#. placeholder {0}: index + 1
#: packages/admin/src/components/PortableTextEditor.tsx:1858
#: packages/admin/src/components/RepeaterField.tsx:275
msgid "Remove item {0}"
msgstr "Supprimer l'élément {0}"

#: packages/admin/src/components/PortableTextEditor.tsx:2695
#: packages/admin/src/components/PortableTextEditor.tsx:2696
msgid "Remove link"
msgstr "Supprimer le lien"

#: packages/admin/src/components/settings/PasskeyItem.tsx:188
msgid "Remove passkey"
msgstr "Supprimer la clé d'accès"

#: packages/admin/src/components/settings/PasskeyItem.tsx:203
msgid "Remove passkey?"
msgstr "Supprimer la clé d'accès ?"

#: packages/admin/src/components/FieldEditor.tsx:611
msgid "Remove sub-field"
msgstr "Supprimer le sous-champ"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:198
msgid "Remove this image from the document?"
msgstr "Supprimer cette image du document ?"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:200
#: packages/admin/src/components/settings/PasskeyItem.tsx:210
msgid "Removing..."
msgstr "En cours de suppression..."

#: packages/admin/src/components/settings/PasskeyItem.tsx:176
msgid "Rename"
msgstr "Renommer"

#. placeholder {0}: passkey.name
#: packages/admin/src/components/settings/PasskeyItem.tsx:177
msgid "Rename {0}"
msgstr "Renommer {0}"

#: packages/admin/src/components/settings/PasskeyItem.tsx:177
msgid "Rename passkey"
msgstr "Renommer la clé d'accès"

#: packages/admin/src/components/FieldEditor.tsx:240
msgid "Repeater"
msgstr "Répétiteur"

#: packages/admin/src/components/FieldEditor.tsx:241
msgid "Repeating group of fields"
msgstr "Groupe de champs répétitif"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:213
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:248
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:435
msgid "Replace Image"
msgstr "Remplacer l'image"

#: packages/admin/src/components/comments/CommentDetail.tsx:117
msgid "Reply to:"
msgstr "Répondre à :"

#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:220
msgid "Repository"
msgstr "Dépôt"

#: packages/admin/src/components/SignupPage.tsx:273
msgid "Request a new link"
msgstr "Demander un nouveau lien"

#: packages/admin/src/lib/api/client.ts:198
msgid "Request failed"
msgstr ""

#: packages/admin/src/components/BylineFieldEditor.tsx:280
#: packages/admin/src/components/ContentTypeEditor.tsx:721
#: packages/admin/src/components/FieldEditor.tsx:437
#: packages/admin/src/components/FieldEditor.tsx:593
#: packages/admin/src/routes/byline-schema.tsx:246
msgid "Required"
msgstr "Obligatoire"

#: packages/admin/src/components/WordPressImport.tsx:1835
msgid "Required fields:"
msgstr "Champs obligatoires :"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:348
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:537
msgid "Required for accessibility. Describes the image for screen readers."
msgstr "Nécessaire pour l'accessibilité. Décrit l'image pour les lecteurs d'écran."

#. placeholder {0}: latest.minEmDashVersion
#: packages/admin/src/components/MarketplacePluginDetail.tsx:324
msgid "Requires EmDash {0}"
msgstr "Nécessite EmDash {0}"

#: packages/admin/src/components/SignupPage.tsx:154
msgid "Resend email"
msgstr "Renvoyer l'e-mail"

#: packages/admin/src/components/SignupPage.tsx:153
msgid "Resend in {resendCooldown}s"
msgstr "Renvoyer dans {resendCooldown} s"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:277
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:466
msgid "Reset to original"
msgstr "Réinitialiser à la version d'origine"

#: packages/admin/src/components/RevisionHistory.tsx:220
msgid "Restore"
msgstr "Restaurer"

#: packages/admin/src/components/ContentList.tsx:893
msgid "Restore {title}"
msgstr "Restaurer {title}"

#: packages/admin/src/components/RevisionHistory.tsx:136
msgid "Restore failed"
msgstr "La restauration a échoué"

#: packages/admin/src/components/RevisionHistory.tsx:214
msgid "Restore Revision?"
msgstr "Restaurer la révision ?"

#: packages/admin/src/components/RevisionHistory.tsx:281
#: packages/admin/src/components/RevisionHistory.tsx:282
msgid "Restore this version"
msgstr "Restaurer cette version"

#. placeholder {0}: formatFullDate(restoreTarget.createdAt)
#: packages/admin/src/components/RevisionHistory.tsx:217
msgid "Restore this version from {0}? This will update the current content to this revision's data."
msgstr "Restaurer cette version à partir de {0} ? Cela mettra à jour le contenu actuel avec les données de cette révision."

#: packages/admin/src/components/RevisionHistory.tsx:221
msgid "Restoring..."
msgstr "Restauration en cours..."

#: packages/admin/src/components/MarketplaceBrowse.tsx:141
#: packages/admin/src/components/PluginFieldErrorBoundary.tsx:44
#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:122
#: packages/admin/src/router.tsx:1950
#: packages/admin/src/routes/byline-schema.tsx:280
msgid "Retry"
msgstr "Réessayer"

#: packages/admin/src/components/Sections.tsx:136
msgid "Reusable content blocks you can insert into any content"
msgstr "Blocs de contenu réutilisables que vous pouvez insérer dans n'importe quel contenu"

#: packages/admin/src/router.tsx:907
msgid "Reverted to published version"
msgstr "Retour à la version publiée"

#: packages/admin/src/components/WordPressImport.tsx:650
msgid "Review"
msgstr "Examiner"

#: packages/admin/src/components/CapabilityConsentDialog.tsx:75
msgid "Review New Permissions"
msgstr "Examiner les nouvelles autorisations"

#: packages/admin/src/components/RevisionHistory.tsx:130
msgid "Revision restored"
msgstr "Révision restaurée"

#: packages/admin/src/components/ContentTypeEditor.tsx:76
#: packages/admin/src/components/RevisionHistory.tsx:161
msgid "Revisions"
msgstr "Révisions"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:333
msgid "Revoke token"
msgstr "Révoquer le jeton"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:308
msgid "Revoke?"
msgstr "Révoquer ?"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:315
msgid "Revoking..."
msgstr "Révocation en cours..."

#: packages/admin/src/components/FieldEditor.tsx:198
msgid "Rich Text"
msgstr "Texte enrichi"

#: packages/admin/src/components/Widgets.tsx:97
msgid "Rich text content"
msgstr "Texte enrichi"

#: packages/admin/src/components/FieldEditor.tsx:199
msgid "Rich text editor"
msgstr "Éditeur de texte enrichi"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:162
msgid "Right"
msgstr ""

#. placeholder {0}: latest.audit.riskScore
#: packages/admin/src/components/MarketplacePluginDetail.tsx:311
msgid "Risk score: {0}/100"
msgstr "Score de risque : {0}/100"

#: packages/admin/src/components/users/InviteUserModal.tsx:166
#: packages/admin/src/components/users/UserDetail.tsx:169
#: packages/admin/src/components/users/UserDetail.tsx:181
#: packages/admin/src/components/users/UserList.tsx:101
msgid "Role"
msgstr "Rôle"

#: packages/admin/src/components/users/roleDefinitions.ts:61
msgid "Role {role}"
msgstr "Rôle {role}"

#: packages/admin/src/components/ContentEditor.tsx:1970
msgid "Role label"
msgstr "Libellé du rôle"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:48
msgid "Ruby"
msgstr ""

#: packages/admin/src/components/editor/codeBlockLanguages.ts:49
msgid "Rust"
msgstr ""

#: packages/admin/src/components/MenuEditor.tsx:351
#: packages/admin/src/components/MenuEditor.tsx:353
#: packages/admin/src/components/MenuEditor.tsx:522
#: packages/admin/src/components/MenuEditor.tsx:524
msgid "Same window"
msgstr "Même fenêtre"

#: packages/admin/src/components/ContentEditor.tsx:2103
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:395
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:589
#: packages/admin/src/components/editor/ImageNode.tsx:264
#: packages/admin/src/components/editor/PluginBlockNode.tsx:417
#: packages/admin/src/components/MediaDetailPanel.tsx:255
#: packages/admin/src/components/MenuEditor.tsx:533
#: packages/admin/src/components/Redirects.tsx:190
#: packages/admin/src/components/SaveButton.tsx:42
#: packages/admin/src/components/Widgets.tsx:894
#: packages/admin/src/routes/bylines.tsx:580
msgid "Save"
msgstr "Enregistrer"

#: packages/admin/src/components/editor/PluginBlockNode.tsx:416
msgid "Save (Enter)"
msgstr "Enregistrer (Entrée)"

#: packages/admin/src/components/editor/ImageNode.tsx:265
msgid "Save alt text"
msgstr "Enregistrer le texte alternatif"

#: packages/admin/src/components/BylineFieldEditor.tsx:318
msgid "Save changes"
msgstr "Enregistrer les modifications"

#: packages/admin/src/components/ContentTypeEditor.tsx:560
#: packages/admin/src/components/users/UserDetail.tsx:311
msgid "Save Changes"
msgstr "Enregistrer les modifications"

#: packages/admin/src/components/ContentTypeEditor.tsx:72
msgid "Save content as draft before publishing"
msgstr "Enregistrer le contenu en brouillon avant publication"

#: packages/admin/src/components/settings/PasskeyItem.tsx:137
msgid "Save name"
msgstr "Enregistrer le nom"

#: packages/admin/src/components/settings/SeoSettings.tsx:126
#: packages/admin/src/components/settings/SeoSettings.tsx:251
msgid "Save SEO Settings"
msgstr "Enregistrer les paramètres SEO"

#: packages/admin/src/components/settings/GeneralSettings.tsx:125
#: packages/admin/src/components/settings/GeneralSettings.tsx:321
msgid "Save Settings"
msgstr "Enregistrer les paramètres"

#: packages/admin/src/components/settings/SocialSettings.tsx:99
#: packages/admin/src/components/settings/SocialSettings.tsx:173
msgid "Save Social Links"
msgstr "Enregistrer les liens sociaux"

#: packages/admin/src/components/ContentEditor.tsx:655
#: packages/admin/src/components/SaveButton.tsx:42
msgid "Saved"
msgstr "Enregistré"

#. placeholder {0}: field.label
#: packages/admin/src/routes/byline-schema.tsx:116
msgid "Saved \"{0}\"."
msgstr "« {0} » enregistré."

#: packages/admin/src/components/ContentEditor.tsx:650
#: packages/admin/src/components/ContentEditor.tsx:2103
#: packages/admin/src/components/ContentTypeEditor.tsx:560
#: packages/admin/src/components/FieldEditor.tsx:660
#: packages/admin/src/components/MediaDetailPanel.tsx:255
#: packages/admin/src/components/MenuEditor.tsx:533
#: packages/admin/src/components/Redirects.tsx:187
#: packages/admin/src/components/SaveButton.tsx:42
#: packages/admin/src/components/settings/GeneralSettings.tsx:125
#: packages/admin/src/components/settings/GeneralSettings.tsx:321
#: packages/admin/src/components/settings/SeoSettings.tsx:126
#: packages/admin/src/components/settings/SeoSettings.tsx:251
#: packages/admin/src/components/settings/SocialSettings.tsx:99
#: packages/admin/src/components/settings/SocialSettings.tsx:173
#: packages/admin/src/components/TaxonomyManager.tsx:476
#: packages/admin/src/components/users/UserDetail.tsx:311
#: packages/admin/src/components/Widgets.tsx:894
#: packages/admin/src/routes/bylines.tsx:580
msgid "Saving..."
msgstr "En cours d'enregistrement..."

#: packages/admin/src/components/BylineFieldEditor.tsx:318
msgid "Saving…"
msgstr "En cours d'enregistrement…"

#: packages/admin/src/components/RegistryPluginDetail.tsx:469
msgid "SBOM"
msgstr "Nomenclature logicielle (SBOM)"

#. placeholder {0}: sbom.format
#: packages/admin/src/components/RegistryPluginDetail.tsx:467
msgid "SBOM · {0}"
msgstr "Nomenclature logicielle (SBOM) · {0}"

#: packages/admin/src/components/ContentEditor.tsx:896
msgid "Schedule"
msgstr "Programmer"

#: packages/admin/src/components/ContentEditor.tsx:882
msgid "Schedule for"
msgstr "Programmer pour le"

#: packages/admin/src/components/ContentEditor.tsx:919
msgid "Schedule for later"
msgstr "Programmer pour plus tard"

#: packages/admin/src/components/ContentList.tsx:961
msgid "scheduled"
msgstr "programmé"

#: packages/admin/src/components/ContentEditor.tsx:859
#: packages/admin/src/components/ContentList.tsx:545
#: packages/admin/src/router.tsx:927
msgid "Scheduled"
msgstr "Programmé"

#. placeholder {0}: formatScheduledDate(item.scheduledAt)
#: packages/admin/src/components/ContentEditor.tsx:869
msgid "Scheduled for: {0}"
msgstr "Programmé pour le : {0}"

#: packages/admin/src/components/WordPressImport.tsx:2128
msgid "Schema Changes"
msgstr "Modifications du schéma"

#: packages/admin/src/components/WordPressImport.tsx:1538
msgid "Schema preparation failed"
msgstr "Échec de la préparation du schéma"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:65
msgid "Schema Read"
msgstr "Lecture du schéma"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:70
msgid "Schema Write"
msgstr "Écriture du schéma"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:416
msgid "Scopes"
msgstr "Champs d'application"

#. placeholder {0}: token.scopes.join(", ")
#: packages/admin/src/components/settings/ApiTokenSettings.tsx:284
msgid "Scopes: {0}"
msgstr "Champs d'application : {0}"

#. placeholder {0}: i + 1
#. placeholder {0}: index + 1
#: packages/admin/src/components/MarketplacePluginDetail.tsx:243
#: packages/admin/src/components/RegistryPluginDetail.tsx:642
#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:174
#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:293
msgid "Screenshot {0}"
msgstr "Capture d'écran {0}"

#. placeholder {0}: index + 1
#. placeholder {1}: screenshots.length
#: packages/admin/src/components/MarketplacePluginDetail.tsx:453
msgid "Screenshot {0} of {1}"
msgstr "Capture d'écran {0} sur {1}"

#: packages/admin/src/components/MarketplacePluginDetail.tsx:246
msgid "Screenshot blurred due to image audit"
msgstr "Capture d'écran floutée en raison d'un audit d'image"

#: packages/admin/src/components/MarketplacePluginDetail.tsx:431
msgid "Screenshot viewer"
msgstr "Visionneuse de capture d'écran"

#: packages/admin/src/components/MarketplacePluginDetail.tsx:233
#: packages/admin/src/components/RegistryPluginDetail.tsx:636
#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:164
msgid "Screenshots"
msgstr "Captures d'écran"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:50
msgid "SCSS"
msgstr ""

#: packages/admin/src/components/ContentTypeEditor.tsx:86
msgid "Search"
msgstr "Recherche"

#. placeholder {0}: collectionLabel.toLowerCase()
#: packages/admin/src/components/ContentList.tsx:267
msgid "Search {0}"
msgstr "Rechercher {0}"

#. placeholder {0}: collectionLabel.toLowerCase()
#: packages/admin/src/components/ContentList.tsx:266
msgid "Search {0}..."
msgstr "Rechercher {0}..."

#: packages/admin/src/components/MediaLibrary.tsx:383
#: packages/admin/src/components/MediaPickerModal.tsx:578
msgid "Search by filename..."
msgstr "Rechercher par nom de fichier..."

#: packages/admin/src/components/users/UserList.tsx:69
msgid "Search by name or email..."
msgstr "Rechercher par nom ou par email..."

#: packages/admin/src/components/ContentEditor.tsx:1898
#: packages/admin/src/routes/bylines.tsx:402
msgid "Search bylines"
msgstr "Rechercher des auteurs"

#: packages/admin/src/components/ContentEditor.tsx:1897
msgid "Search bylines to add..."
msgstr "Rechercher des auteurs à ajouter..."

#: packages/admin/src/components/comments/CommentInbox.tsx:163
msgid "Search comments"
msgstr "Rechercher des commentaires"

#: packages/admin/src/components/comments/CommentInbox.tsx:162
msgid "Search comments..."
msgstr "Rechercher des commentaires..."

#: packages/admin/src/components/ContentPickerModal.tsx:141
msgid "Search content..."
msgstr "Rechercher du contenu..."

#: packages/admin/src/components/settings/SeoSettings.tsx:155
msgid "Search Engine Optimization"
msgstr "Optimisation des moteurs de recherche"

#: packages/admin/src/components/Settings.tsx:82
msgid "Search engine optimization and verification"
msgstr "Optimisation et vérification pour les moteurs de recherche"

#: packages/admin/src/components/MediaLibrary.tsx:384
#: packages/admin/src/components/MediaPickerModal.tsx:579
msgid "Search media"
msgstr "Rechercher des fichiers multimédias"

#: packages/admin/src/components/AdminCommandPalette.tsx:425
msgid "Search pages and content..."
msgstr "Rechercher des pages et du contenu..."

#: packages/admin/src/components/MarketplaceBrowse.tsx:101
#: packages/admin/src/components/RegistryBrowse.tsx:84
msgid "Search plugins"
msgstr "Rechercher des modules d'extension"

#: packages/admin/src/components/MarketplaceBrowse.tsx:97
#: packages/admin/src/components/RegistryBrowse.tsx:80
msgid "Search plugins..."
msgstr "Rechercher des modules d'extension..."

#: packages/admin/src/components/SectionPickerModal.tsx:81
#: packages/admin/src/components/Sections.tsx:226
msgid "Search sections..."
msgstr "Rechercher des sections..."

#: packages/admin/src/components/Redirects.tsx:409
msgid "Search source or destination..."
msgstr "Rechercher une source ou une destination..."

#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:93
msgid "Search themes"
msgstr "Rechercher des thèmes"

#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:89
msgid "Search themes..."
msgstr "Rechercher des thèmes..."

#: packages/admin/src/components/users/UserList.tsx:73
msgid "Search users"
msgstr "Rechercher des utilisateurs"

#: packages/admin/src/components/MediaLibrary.tsx:383
#: packages/admin/src/components/MediaPickerModal.tsx:578
msgid "Search..."
msgstr "Recherche..."

#: packages/admin/src/components/ContentTypeEditor.tsx:723
#: packages/admin/src/components/FieldEditor.tsx:452
msgid "Searchable"
msgstr "Interrogeable"

#: packages/admin/src/components/ContentEditor.tsx:1901
msgid "Searching..."
msgstr "Recherche en cours..."

#: packages/admin/src/components/PortableTextEditor.tsx:2207
msgid "Section"
msgstr "Section"

#: packages/admin/src/components/SectionEditor.tsx:82
msgid "Section \"{slug}\" could not be found."
msgstr "La section « {slug} » est introuvable."

#: packages/admin/src/components/Sections.tsx:93
msgid "Section created"
msgstr "Section créée"

#: packages/admin/src/components/Sections.tsx:107
msgid "Section deleted"
msgstr "Section supprimée"

#: packages/admin/src/components/SectionEditor.tsx:233
msgid "Section Details"
msgstr "Détails de la section"

#: packages/admin/src/components/SectionEditor.tsx:78
msgid "Section Not Found"
msgstr "Section introuvable"

#: packages/admin/src/components/SectionEditor.tsx:44
msgid "Section saved"
msgstr "Section enregistrée"

#: packages/admin/src/components/SectionEditor.tsx:239
msgid "Section title"
msgstr "Titre de la section"

#: packages/admin/src/components/AdminCommandPalette.tsx:177
#: packages/admin/src/components/Sections.tsx:134
#: packages/admin/src/components/Sidebar.tsx:334
msgid "Sections"
msgstr "Sections"

#: packages/admin/src/components/auth/PasskeyLogin.tsx:308
#: packages/admin/src/components/auth/PasskeyRegistration.tsx:305
msgid "secure context"
msgstr "contexte sécurisé"

#: packages/admin/src/components/SetupWizard.tsx:561
msgid "Secure your account"
msgstr "Sécuriser votre compte"

#: packages/admin/src/components/RegistryPluginDetail.tsx:794
#: packages/admin/src/components/Settings.tsx:92
msgid "Security"
msgstr "Sécurité"

#: packages/admin/src/components/MarketplacePluginDetail.tsx:307
msgid "Security Audit"
msgstr "Audit de sécurité"

#: packages/admin/src/components/MarketplaceBrowse.tsx:340
msgid "Security audit failed"
msgstr "Échec de l'audit de sécurité"

#: packages/admin/src/components/MarketplaceBrowse.tsx:330
msgid "Security audit flagged concerns"
msgstr "L'audit de sécurité a signalé des problèmes"

#: packages/admin/src/components/CapabilityConsentDialog.tsx:148
msgid "Security audit flagged potential concerns with this plugin."
msgstr "L'audit de sécurité a signalé des problèmes potentiels avec ce module d'extension."

#: packages/admin/src/components/CapabilityConsentDialog.tsx:149
msgid "Security audit flagged this plugin as potentially unsafe."
msgstr "L'audit de sécurité a signalé ce module d'extension comme potentiellement dangereux."

#: packages/admin/src/components/MarketplaceBrowse.tsx:319
msgid "Security audit passed"
msgstr "Audit de sécurité réussi"

#: packages/admin/src/components/RegistryPluginDetail.tsx:705
msgid "Security contacts"
msgstr "Contacts de sécurité"

#: packages/admin/src/components/auth/PasskeyLogin.tsx:272
#: packages/admin/src/components/auth/PasskeyRegistration.tsx:275
msgid "Security error. Make sure you're on a secure connection."
msgstr "Erreur de sécurité. Assurez-vous que vous êtes sur une connexion sécurisée."

#: packages/admin/src/components/AdminCommandPalette.tsx:243
#: packages/admin/src/components/Header.tsx:85
#: packages/admin/src/components/settings/SecuritySettings.tsx:104
msgid "Security Settings"
msgstr "Paramètres de sécurité"

#: packages/admin/src/components/BylineFieldEditor.tsx:56
#: packages/admin/src/components/FieldEditor.tsx:186
#: packages/admin/src/components/FieldEditor.tsx:585
msgid "Select"
msgstr "Liste déroulante"

#: packages/admin/src/components/BlockKitMediaPickerField.tsx:140
#: packages/admin/src/components/ContentEditor.tsx:1719
#: packages/admin/src/components/ContentEditor.tsx:1735
#: packages/admin/src/components/ImageFieldRenderer.tsx:187
msgid "Select {label}"
msgstr "Sélectionner {label}"

#: packages/admin/src/components/Widgets.tsx:871
msgid "Select a component..."
msgstr "Sélectionnez un composant..."

#: packages/admin/src/components/Widgets.tsx:839
msgid "Select a menu..."
msgstr "Sélectionnez un menu..."

#: packages/admin/src/components/comments/CommentInbox.tsx:283
msgid "Select all"
msgstr "Tout sélectionner"

#. placeholder {0}: comment.authorName
#: packages/admin/src/components/comments/CommentInbox.tsx:456
msgid "Select comment by {0}"
msgstr "Sélectionner le commentaire par {0}"

#: packages/admin/src/components/ContentPickerModal.tsx:117
msgid "Select Content"
msgstr "Sélectionner le contenu"

#: packages/admin/src/components/settings/SeoSettings.tsx:268
msgid "Select Default Social Image"
msgstr "Sélectionner l'image sociale par défaut"

#: packages/admin/src/components/settings/GeneralSettings.tsx:283
#: packages/admin/src/components/settings/GeneralSettings.tsx:344
msgid "Select Favicon"
msgstr "Sélectionner la favicon"

#: packages/admin/src/components/ContentEditor.tsx:1723
msgid "Select file"
msgstr "Sélectionner un fichier"

#: packages/admin/src/components/MediaPickerModal.tsx:145
msgid "Select File"
msgstr "Sélectionnez un fichier"

#: packages/admin/src/components/ImageFieldRenderer.tsx:175
msgid "Select image"
msgstr "Sélectionner une image"

#: packages/admin/src/components/MediaPickerModal.tsx:145
#: packages/admin/src/components/PortableTextEditor.tsx:2583
#: packages/admin/src/components/PortableTextEditor.tsx:3270
#: packages/admin/src/components/settings/SeoSettings.tsx:221
msgid "Select Image"
msgstr "Sélectionner une image"

#: packages/admin/src/components/settings/GeneralSettings.tsx:229
#: packages/admin/src/components/settings/GeneralSettings.tsx:336
msgid "Select Logo"
msgstr "Sélectionner le logo"

#: packages/admin/src/components/BlockKitMediaPickerField.tsx:131
msgid "Select media"
msgstr "Sélectionnez un média"

#: packages/admin/src/components/SeoImageField.tsx:70
msgid "Select OG image"
msgstr "Sélectionner l'image OG"

#: packages/admin/src/components/SeoImageField.tsx:82
msgid "Select OG Image"
msgstr "Sélectionner l'image originale"

#: packages/admin/src/components/WordPressImport.tsx:1571
msgid "Select which content types to import."
msgstr "Sélectionner les types de contenu à importer."

#: packages/admin/src/components/BlockKitFieldWidget.tsx:108
#: packages/admin/src/components/PortableTextEditor.tsx:1953
#: packages/admin/src/components/RepeaterField.tsx:372
msgid "Select..."
msgstr "Sélectionner..."

#: packages/admin/src/components/MediaPickerModal.tsx:734
msgid "Selected:"
msgstr "Sélectionné :"

#: packages/admin/src/components/Settings.tsx:98
#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:167
msgid "Self-Signup Domains"
msgstr "Domaines autorisés pour l'inscription"

#: packages/admin/src/components/settings/EmailSettings.tsx:139
msgid "Send a test email through the full pipeline to verify your email configuration."
msgstr "Envoyer un e-mail de test via le processus complet pour vérifier votre configuration de messagerie."

#: packages/admin/src/components/users/InviteUserModal.tsx:84
msgid "Send an invitation email to a new team member."
msgstr "Envoyer un e-mail d'invitation à un nouveau membre de l'équipe."

#: packages/admin/src/components/users/InviteUserModal.tsx:203
msgid "Send Invite"
msgstr "Envoyer une invitation"

#: packages/admin/src/components/LoginPage.tsx:149
msgid "Send magic link"
msgstr "Envoyer un lien de connexion"

#: packages/admin/src/components/users/UserDetail.tsx:332
msgid "Send Recovery Link"
msgstr "Envoyer le lien de récupération"

#: packages/admin/src/components/settings/EmailSettings.tsx:153
msgid "Send Test"
msgstr "Envoyer le test"

#: packages/admin/src/components/settings/EmailSettings.tsx:136
msgid "Send Test Email"
msgstr "Envoyer un e-mail de test"

#: packages/admin/src/components/LoginPage.tsx:149
#: packages/admin/src/components/settings/EmailSettings.tsx:153
#: packages/admin/src/components/SignupPage.tsx:88
#: packages/admin/src/components/SignupPage.tsx:151
#: packages/admin/src/components/users/InviteUserModal.tsx:203
#: packages/admin/src/components/users/UserDetail.tsx:332
msgid "Sending..."
msgstr "Envoi en cours..."

#: packages/admin/src/components/ContentEditor.tsx:1046
#: packages/admin/src/components/ContentTypeEditor.tsx:474
#: packages/admin/src/components/Settings.tsx:81
msgid "SEO"
msgstr "SEO"

#: packages/admin/src/components/settings/SeoSettings.tsx:105
#: packages/admin/src/components/settings/SeoSettings.tsx:130
msgid "SEO Settings"
msgstr "Paramètres SEO"

#: packages/admin/src/components/WordPressImport.tsx:1679
msgid "SEO settings (Yoast)"
msgstr "Paramètres SEO (Yoast)"

#: packages/admin/src/components/settings/SeoSettings.tsx:57
msgid "SEO settings saved"
msgstr "Paramètres SEO enregistrés"

#: packages/admin/src/components/SeoPanel.tsx:159
msgid "SEO Title"
msgstr "Titre SEO"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:316
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:505
msgid "Set a custom display size for this image instance."
msgstr "Définissez une taille d'affichage personnalisée pour cette instance d'image."

#: packages/admin/src/components/editor/CodeBlockNode.tsx:146
#: packages/admin/src/components/editor/CodeBlockNode.tsx:150
msgid "Set language"
msgstr "Définir la langue"

#: packages/admin/src/components/editor/CodeBlockNode.tsx:147
msgid "Set language (current: {label})"
msgstr "Définir la langue (actuelle : {label})"

#: packages/admin/src/components/ContentTypeEditor.tsx:531
msgid "Set to 0 to never close comments automatically."
msgstr "Définissez sur 0 pour que les commentaires ne soient jamais fermés automatiquement."

#: packages/admin/src/components/SetupWizard.tsx:559
msgid "Set up your site"
msgstr "Configurer votre site"

#: packages/admin/src/components/SetupWizard.tsx:150
msgid "Setting up..."
msgstr "Mise en place en cours..."

#: packages/admin/src/components/AdminCommandPalette.tsx:235
#: packages/admin/src/components/ContentTypeEditor.tsx:383
#: packages/admin/src/components/Header.tsx:93
#: packages/admin/src/components/PluginManager.tsx:437
#: packages/admin/src/components/Settings.tsx:62
#: packages/admin/src/components/Sidebar.tsx:379
#: packages/admin/src/components/WordPressImport.tsx:1647
msgid "Settings"
msgstr "Paramètres"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:90
msgid "Settings Manage"
msgstr "Gestion des paramètres"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:85
msgid "Settings Read"
msgstr "Lecture des paramètres"

#: packages/admin/src/components/settings/GeneralSettings.tsx:53
msgid "Settings saved successfully"
msgstr "Paramètres enregistrés avec succès"

#: packages/admin/src/components/SetupWizard.tsx:468
msgid "Setup failed"
msgstr "Échec de l'installation"

#: packages/admin/src/components/users/InviteUserModal.tsx:109
msgid "Share this link with the invited user"
msgstr "Partager ce lien avec l'utilisateur invité"

#: packages/admin/src/components/BylineFieldEditor.tsx:294
msgid "Shared across all translations of the same byline."
msgstr "Partagé entre toutes les traductions du même auteur."

#: packages/admin/src/components/BylineFieldEditor.tsx:52
msgid "Short text"
msgstr "Texte court"

#: packages/admin/src/components/FieldEditor.tsx:150
#: packages/admin/src/components/FieldEditor.tsx:579
msgid "Short Text"
msgstr "Texte court"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:210
msgid "Show token"
msgstr "Afficher le jeton"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:365
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:554
msgid "Shown when hovering over the image."
msgstr "S'affiche lorsque vous survolez l'image."

#: packages/admin/src/components/SignupPage.tsx:439
msgid "Sign in"
msgstr "Se connecter"

#: packages/admin/src/components/SetupWizard.tsx:355
msgid "Sign In"
msgstr "Se connecter"

#: packages/admin/src/components/InviteAcceptPage.tsx:129
#: packages/admin/src/components/SignupPage.tsx:269
msgid "Sign in instead"
msgstr "Se connecter"

#: packages/admin/src/components/LoginPage.tsx:232
msgid "Sign in to your site"
msgstr "Se connecter à votre site"

#. placeholder {0}: authProviderList.find((p) => p.id === activeProvider)?.label ?? activeProvider
#. placeholder {0}: provider.label
#: packages/admin/src/components/LoginPage.tsx:231
#: packages/admin/src/components/SetupWizard.tsx:264
msgid "Sign in with {0}"
msgstr "Connectez-vous avec {0}"

#: packages/admin/src/components/LoginPage.tsx:229
msgid "Sign in with email"
msgstr "Se connecter avec un e-mail"

#: packages/admin/src/components/LoginPage.tsx:290
msgid "Sign in with email link"
msgstr "Se connecter avec un lien envoyé par e-mail"

#: packages/admin/src/components/auth/PasskeyLogin.tsx:136
#: packages/admin/src/components/LoginPage.tsx:252
msgid "Sign in with Passkey"
msgstr "Se connecter avec une clé d'accès"

#. placeholder {0}: user.email
#: packages/admin/src/components/DeviceAuthorizePage.tsx:190
msgid "Signed in as {0}"
msgstr "Connecté en tant que {0}"

#: packages/admin/src/components/FieldEditor.tsx:187
msgid "Single choice from options"
msgstr "Choix unique parmi les options"

#: packages/admin/src/components/FieldEditor.tsx:151
msgid "Single line text input"
msgstr "Champ de texte sur une seule ligne"

#: packages/admin/src/components/SetupWizard.tsx:353
msgid "Site"
msgstr "Site"

#: packages/admin/src/components/settings/GeneralSettings.tsx:153
msgid "Site Identity"
msgstr "Identité du site"

#: packages/admin/src/components/Settings.tsx:70
msgid "Site identity, logo, favicon, and reading preferences"
msgstr "Identité du site, logo, favicon et préférences de lecture"

#: packages/admin/src/components/SetupWizard.tsx:351
msgid "Site Settings"
msgstr "Paramètres du site"

#: packages/admin/src/components/settings/GeneralSettings.tsx:156
#: packages/admin/src/components/SetupWizard.tsx:116
msgid "Site Title"
msgstr "Titre du site"

#: packages/admin/src/components/WordPressImport.tsx:1659
msgid "Site title & tagline"
msgstr "Titre et slogan du site"

#: packages/admin/src/components/SetupWizard.tsx:100
msgid "Site title is required"
msgstr "Le titre du site est obligatoire"

#: packages/admin/src/components/settings/GeneralSettings.tsx:168
msgid "Site URL"
msgstr "URL du site"

#: packages/admin/src/components/MediaLibrary.tsx:492
msgid "Size"
msgstr "Taille"

#: packages/admin/src/components/MediaDetailPanel.tsx:174
msgid "Size:"
msgstr "Taille :"

#: packages/admin/src/components/WordPressImport.tsx:1940
msgid "Skip Media Import"
msgstr "Ignorer l'importation de fichiers multimédias"

#: packages/admin/src/components/WordPressImport.tsx:1965
msgid "Skipped"
msgstr "Ignoré"

#: packages/admin/src/components/BylineFieldEditor.tsx:239
#: packages/admin/src/components/ContentEditor.tsx:844
#: packages/admin/src/components/ContentEditor.tsx:2012
#: packages/admin/src/components/ContentEditor.tsx:2074
#: packages/admin/src/components/ContentTypeEditor.tsx:111
#: packages/admin/src/components/ContentTypeEditor.tsx:404
#: packages/admin/src/components/ContentTypeList.tsx:97
#: packages/admin/src/components/FieldEditor.tsx:228
#: packages/admin/src/components/FieldEditor.tsx:418
#: packages/admin/src/components/SectionEditor.tsx:244
#: packages/admin/src/components/Sections.tsx:184
#: packages/admin/src/components/TaxonomyManager.tsx:398
#: packages/admin/src/routes/byline-schema.tsx:237
#: packages/admin/src/routes/bylines.tsx:487
msgid "Slug"
msgstr "Slug"

#: packages/admin/src/components/Sections.tsx:124
msgid "Slug copied to clipboard"
msgstr "Slug copié dans le presse-papiers"

#: packages/admin/src/components/BylineFieldEditor.tsx:251
msgid "Slugs cannot be changed after the field is created."
msgstr "Les slugs ne peuvent pas être modifiés après la création du champ."

#: packages/admin/src/components/PortableTextEditor.tsx:1031
msgid "Small section heading"
msgstr "Petit titre"

#: packages/admin/src/components/Settings.tsx:75
#: packages/admin/src/components/settings/SocialSettings.tsx:78
#: packages/admin/src/components/settings/SocialSettings.tsx:103
msgid "Social Links"
msgstr "Liens sociaux"

#: packages/admin/src/components/settings/SocialSettings.tsx:48
msgid "Social links saved"
msgstr "Liens sociaux enregistrés"

#: packages/admin/src/components/Settings.tsx:76
msgid "Social media profile links"
msgstr "Liens vers les profils de réseaux sociaux"

#: packages/admin/src/components/settings/SocialSettings.tsx:126
msgid "Social Profiles"
msgstr "Profils sociaux"

#: packages/admin/src/components/WordPressImport.tsx:1696
msgid "Some content types cannot be imported"
msgstr "Certains types de contenu ne peuvent pas être importés"

#: packages/admin/src/components/InviteAcceptPage.tsx:122
#: packages/admin/src/components/SignupPage.tsx:262
msgid "Something went wrong"
msgstr "Quelque chose s'est mal passé"

#: packages/admin/src/components/MarketplaceBrowse.tsx:123
msgid "Sort plugins"
msgstr "Trier les modules d'extension"

#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:104
msgid "Sort themes"
msgstr "Trier les thèmes"

#: packages/admin/src/components/ContentTypeList.tsx:100
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:371
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:560
#: packages/admin/src/components/MarketplacePluginDetail.tsx:214
#: packages/admin/src/components/PluginManager.tsx:497
#: packages/admin/src/components/Redirects.tsx:466
#: packages/admin/src/components/SectionEditor.tsx:279
msgid "Source"
msgstr "Source"

#: packages/admin/src/components/Redirects.tsx:131
msgid "Source path"
msgstr "Chemin source"

#: packages/admin/src/components/comments/CommentDetail.tsx:197
msgid "spam"
msgstr "indésirable"

#: packages/admin/src/components/comments/CommentDetail.tsx:159
#: packages/admin/src/components/comments/CommentInbox.tsx:207
#: packages/admin/src/components/comments/CommentInbox.tsx:247
msgid "Spam"
msgstr "Indésirable"

#: packages/admin/src/components/PortableTextEditor.tsx:3258
msgid "Spotlight Mode"
msgstr "Mode projecteur"

#: packages/admin/src/components/AllowedTypesEditor.tsx:64
msgid "Spreadsheets"
msgstr "Feuilles de calcul"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:51
msgid "SQL"
msgstr ""

#: packages/admin/src/components/WordPressImport.tsx:1758
msgid "Start Import"
msgstr "Démarrer l'importation"

#: packages/admin/src/components/ContentEditor.tsx:850
#: packages/admin/src/components/ContentList.tsx:328
#: packages/admin/src/components/ContentTypeEditor.tsx:117
#: packages/admin/src/components/Redirects.tsx:471
#: packages/admin/src/components/users/UserList.tsx:104
msgid "Status"
msgstr "Statut"

#: packages/admin/src/components/Redirects.tsx:151
msgid "Status code"
msgstr "Code d'état"

#: packages/admin/src/components/BylineFieldEditor.tsx:293
msgid "Stored per locale — each translation of a byline gets its own value."
msgstr "Groupé par langue — chaque traduction d'un auteur possède sa propre valeur."

#: packages/admin/src/components/PortableTextEditor.tsx:2728
#: packages/admin/src/components/PortableTextEditor.tsx:3036
msgid "Strikethrough"
msgstr "Barré"

#: packages/admin/src/components/WordPressImport.tsx:1591
msgid "Structure"
msgstr "Structure"

#: packages/admin/src/components/FieldEditor.tsx:523
msgid "Sub-Fields"
msgstr "Sous-champs"

#: packages/admin/src/components/users/roleDefinitions.ts:18
#: packages/admin/src/components/WelcomeModal.tsx:29
msgid "Subscriber"
msgstr "Abonné"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:52
msgid "Svelte"
msgstr ""

#: packages/admin/src/components/editor/codeBlockLanguages.ts:53
msgid "Swift"
msgstr ""

#: packages/admin/src/components/users/UserDetail.tsx:256
msgid "Synced"
msgstr "Synchronisé"

#: packages/admin/src/components/settings/PasskeyItem.tsx:104
msgid "Synced passkey"
msgstr "Mot de passe synchronisé"

#: packages/admin/src/components/ContentTypeEditor.tsx:768
msgid "System"
msgstr "Système"

#: packages/admin/src/components/ThemeToggle.tsx:24
msgid "System ({resolvedLabel})"
msgstr "Système ({resolvedLabel})"

#: packages/admin/src/components/ContentTypeEditor.tsx:590
msgid "System Fields"
msgstr "Champs du système"

#: packages/admin/src/components/PortableTextEditor.tsx:1105
msgid "Table"
msgstr "Tableau"

#: packages/admin/src/components/settings/GeneralSettings.tsx:162
#: packages/admin/src/components/SetupWizard.tsx:127
msgid "Tagline"
msgstr "Slogan"

#: packages/admin/src/components/AdminCommandPalette.tsx:202
msgid "Tags"
msgstr "Étiquettes"

#. placeholder {0}: analysis.tags
#: packages/admin/src/components/WordPressImport.tsx:1633
msgid "Tags ({0})"
msgstr "Étiquettes ({0})"

#: packages/admin/src/components/MenuEditor.tsx:348
#: packages/admin/src/components/MenuEditor.tsx:519
msgid "Target"
msgstr "Cible"

#: packages/admin/src/components/TaxonomyManager.tsx:172
msgid "Target locale"
msgstr "Paramètres régionaux cibles"

#: packages/admin/src/components/TaxonomySidebar.tsx:537
msgid "Taxonomies"
msgstr "Taxonomies"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:75
msgid "Taxonomies Manage"
msgstr "Gestion des taxonomies"

#: packages/admin/src/components/TaxonomyManager.tsx:898
msgid "Taxonomy created"
msgstr "Taxonomie créée"

#: packages/admin/src/components/TaxonomyManager.tsx:785
msgid "Taxonomy not found:"
msgstr "Taxonomie introuvable :"

#: packages/admin/src/components/TaxonomyManager.tsx:159
msgid "Taxonomy: {taxonomyName}"
msgstr "Taxonomie : {taxonomyName}"

#: packages/admin/src/components/SetupWizard.tsx:155
msgid "Template:"
msgstr "Modèle :"

#: packages/admin/src/components/TaxonomyManager.tsx:361
#: packages/admin/src/components/TaxonomyManager.tsx:362
#: packages/admin/src/components/TaxonomyManager.tsx:814
msgid "Term"
msgstr "Terme"

#. placeholder {0}: term.label
#. placeholder {1}: term.locale.toUpperCase()
#: packages/admin/src/components/TaxonomyManager.tsx:759
msgid "Term \"{0}\" created in {1}."
msgstr "Terme « {0} » créé en {1}."

#: packages/admin/src/components/TaxonomyManager.tsx:741
msgid "Term deleted"
msgstr "Terme supprimé"

#: packages/admin/src/components/settings/EmailSettings.tsx:148
msgid "test@example.com"
msgstr "test@exemple.com"

#: packages/admin/src/components/PortableTextEditor.tsx:3006
msgid "Text formatting"
msgstr "Formatage du texte"

#: packages/admin/src/components/DeviceAuthorizePage.tsx:198
msgid "The device will not be granted access."
msgstr "L'appareil n'aura pas d'autorisation d'accès."

#: packages/admin/src/components/WordPressImport.tsx:1698
msgid "The existing collection has fields with incompatible types."
msgstr "La collection existante contient des champs avec des types incompatibles."

#: packages/admin/src/components/ContentTypeList.tsx:58
msgid "The following tables contain content but aren't registered as collections. Register them to manage this content in the admin."
msgstr "Les tableaux suivants contiennent du contenu mais ne sont pas enregistrés en tant que collections. Enregistrez-les pour gérer ce contenu dans l'administration."

#: packages/admin/src/components/users/InviteUserModal.tsx:181
msgid "The invited user will have this role once they complete registration."
msgstr "L'utilisateur invité aura ce rôle une fois son inscription terminée."

#: packages/admin/src/components/LoginPage.tsx:113
#: packages/admin/src/components/SignupPage.tsx:139
msgid "The link will expire in 15 minutes."
msgstr "Le lien expirera dans 15 minutes."

#: packages/admin/src/components/MarketplaceBrowse.tsx:177
msgid "The marketplace is empty. Check back later for new plugins."
msgstr "La place de marché est vide. Revenez plus tard pour de nouveaux modules d'extension."

#: packages/admin/src/components/MenuList.tsx:75
msgid "The menu has been deleted."
msgstr "Le menu a été supprimé."

#: packages/admin/src/components/settings/GeneralSettings.tsx:159
msgid "The name of your site, used in the header and metadata"
msgstr "Le nom de votre site, utilisé dans l'en-tête et les métadonnées"

#: packages/admin/src/router.tsx:1964
msgid "The page you're looking for doesn't exist."
msgstr "La page que vous recherchez n'existe pas."

#: packages/admin/src/components/PluginFieldErrorBoundary.tsx:37
msgid "The plugin field widget failed to render."
msgstr ""

#: packages/admin/src/components/settings/GeneralSettings.tsx:172
msgid "The public URL of your site (used for canonical links and sitemaps)"
msgstr "L'URL publique de votre site (utilisée pour les liens canoniques et les plans de site)"

#: packages/admin/src/components/settings/SeoSettings.tsx:189
msgid "The referenced image is no longer available. Pick a new one or remove the reference."
msgstr "L'image référencée n'est plus disponible. Choisissez-en une nouvelle ou supprimez la référence."

#: packages/admin/src/components/settings/GeneralSettings.tsx:197
msgid "The referenced logo is no longer available. Pick a new one or remove the reference."
msgstr "Le logo référencé n'est plus disponible. Choisissez-en un nouveau ou supprimez la référence."

#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:153
msgid "The theme marketplace is empty. Check back later."
msgstr "La place de marché des thèmes est vide. Revenez plus tard."

#: packages/admin/src/components/Sections.tsx:45
msgid "Theme"
msgstr "Thème"

#. placeholder {0}: section.themeId
#: packages/admin/src/components/SectionEditor.tsx:292
msgid "Theme ID: {0}"
msgstr "ID du thème : {0}"

#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:91
msgid "Theme not found"
msgstr "Thème introuvable"

#: packages/admin/src/components/SectionEditor.tsx:184
msgid "Theme Section"
msgstr "Section du thème"

#: packages/admin/src/components/Sections.tsx:300
msgid "Theme-provided sections cannot be deleted. Edit the section to create a custom copy, then delete that."
msgstr "Les sections fournies par un thème ne peuvent pas être supprimées. Modifiez la section pour créer une copie personnalisée, puis supprimez-la."

#: packages/admin/src/components/ThemeToggle.tsx:32
msgid "Theme: {label}"
msgstr "Thème : {label}"

#: packages/admin/src/components/Sidebar.tsx:371
#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:77
msgid "Themes"
msgstr "Thèmes"

#: packages/admin/src/components/ContentTypeEditor.tsx:372
msgid "This collection is defined in code. Some settings cannot be changed here. Edit your live.config.ts file to modify the schema."
msgstr "Cette collection est définie dans le code. Certains paramètres ne peuvent pas être modifiés ici. Éditez votre fichier live.config.ts pour modifier le schéma."

#: packages/admin/src/components/MediaPickerModal.tsx:418
msgid "This field does not accept {sniffedMime} files."
msgstr "Ce champ n'accepte pas les fichiers {sniffedMime}."

#: packages/admin/src/components/ContentEditor.tsx:1738
#: packages/admin/src/components/ImageFieldRenderer.tsx:191
msgid "This field is required"
msgstr "Ce champ est obligatoire"

#: packages/admin/src/components/SectionEditor.tsx:286
msgid "This is a custom section."
msgstr "Ceci est une section personnalisée."

#: packages/admin/src/components/WordPressImport.tsx:1147
msgid "This is a WordPress site."
msgstr "Ceci est un site WordPress."

#: packages/admin/src/components/users/InviteUserModal.tsx:112
msgid "This link expires in 7 days and can only be used once."
msgstr "Ce lien expire dans 7 jours et ne peut être utilisé qu'une seule fois."

#: packages/admin/src/components/WordPressImport.tsx:821
msgid "This may take a while for large exports."
msgstr "Cela peut prendre un certain temps pour les grandes exportations."

#: packages/admin/src/components/auth/PasskeyRegistration.tsx:269
msgid "This passkey is already registered on this device."
msgstr "Cette clé d'accès est déjà enregistrée sur cet appareil."

#: packages/admin/src/components/MarketplacePluginDetail.tsx:276
msgid "This plugin requires no special permissions."
msgstr "Ce module d'extension ne nécessite aucune autorisation particulière."

#: packages/admin/src/components/RegistryPluginDetail.tsx:566
msgid "This publisher claims a name they couldn't prove they own — possibly impersonating someone else. Install is disabled. If you know the publisher and trust them, ask them to fix their identity setup before retrying."
msgstr "Cet éditeur revendique un nom dont il ne peut prouver être propriétaire — il pourrait s'agir d'une usurpation d'identité. L'installation est désactivée. Si vous connaissez l'éditeur et lui faites confiance, demandez-lui de corriger la configuration de son identité avant de réessayer."

#: packages/admin/src/components/Redirects.tsx:581
msgid "This redirect rule will be permanently removed."
msgstr "Cette règle de redirection sera définitivement supprimée."

#: packages/admin/src/components/RegistryPluginDetail.tsx:618
msgid "This release requires a newer environment than your site currently runs. Upgrade before installing."
msgstr "Cette version nécessite un environnement plus récent que celui actuellement utilisé par votre site. Mettez à niveau avant l'installation."

#: packages/admin/src/routes/bylines.tsx:624
msgid "This removes the byline profile. Content byline links are removed and lead pointers are cleared."
msgstr "Cela supprime le profil de l'auteur. Les liens vers l'auteur des contenus sont supprimés et les liens vers les pages de destination sont effacés."

#: packages/admin/src/components/SectionEditor.tsx:283
msgid "This section is provided by the theme. Editing will create a custom copy that overrides the theme version."
msgstr "Cette section est fournie par le thème. La modification créera une copie personnalisée qui remplacera la version du thème."

#: packages/admin/src/components/SectionEditor.tsx:288
msgid "This section was imported from another system."
msgstr "Cette section a été importée d'un autre système."

#: packages/admin/src/components/CapabilityConsentDialog.tsx:119
msgid "This update exposes the following routes without authentication:"
msgstr "Cette mise à jour expose les routes suivantes sans authentification :"

#: packages/admin/src/components/Widgets.tsx:635
msgid "This will delete the widget area and all its widgets. This action cannot be undone."
msgstr "Cela supprimera la zone des widgets et tous ses widgets. Cette action ne peut pas être annulée."

#: packages/admin/src/components/DeviceAuthorizePage.tsx:276
msgid "This will grant CLI access with your permissions."
msgstr "Cela accordera l'accès à la CLI avec vos autorisations."

#: packages/admin/src/components/ContentEditor.tsx:953
msgid "This will move the item to trash. You can restore it later from the trash."
msgstr "Cela déplacera l'élément vers la corbeille. Vous pourrez le restaurer plus tard depuis la corbeille."

#. placeholder {0}: deleteTarget?.label
#: packages/admin/src/components/TaxonomyManager.tsx:884
msgid "This will permanently delete \"{0}\" and remove it from all content."
msgstr "Cela supprimera définitivement « {0} » et le supprimera de tout contenu."

#. placeholder {0}: sectionToDelete?.title
#: packages/admin/src/components/Sections.tsx:304
msgid "This will permanently delete \"{0}\". This action cannot be undone."
msgstr "Cela supprimera définitivement « {0} ». Cette action ne peut pas être annulée."

#: packages/admin/src/components/comments/CommentInbox.tsx:406
msgid "This will permanently delete this comment. This action cannot be undone."
msgstr "Cela supprimera définitivement ce commentaire. Cette action ne peut pas être annulée."

#: packages/admin/src/components/PluginManager.tsx:629
msgid "This will remove the plugin and its bundle from your site."
msgstr "Cela supprimera le module d'extension et son paquet de votre site."

#: packages/admin/src/components/ContentEditor.tsx:700
msgid "This will revert to the published version. Your draft changes will be lost."
msgstr "Cela rétablira la version publiée. Vos modifications en cours seront perdues."

#: packages/admin/src/components/SetupWizard.tsx:131
msgid "Thoughts, tutorials, and more"
msgstr "Réflexions, tutoriels et bien plus encore"

#: packages/admin/src/components/settings/GeneralSettings.tsx:310
msgid "Timezone"
msgstr "Fuseau horaire"

#: packages/admin/src/components/settings/GeneralSettings.tsx:313
msgid "Timezone for displaying dates (e.g., America/New_York)"
msgstr "Fuseau horaire pour l'affichage des dates (p. ex. Amérique/New_York)"

#: packages/admin/src/components/ContentList.tsx:322
#: packages/admin/src/components/ContentList.tsx:457
#: packages/admin/src/components/SectionEditor.tsx:236
#: packages/admin/src/components/Sections.tsx:170
#: packages/admin/src/components/Widgets.tsx:811
msgid "Title"
msgstr "Titre"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:361
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:550
msgid "Title (Tooltip)"
msgstr "Titre (info-bulle)"

#: packages/admin/src/components/settings/SeoSettings.tsx:159
msgid "Title Separator"
msgstr "Séparateur de titre"

#: packages/admin/src/components/ContentList.tsx:625
msgid "to"
msgstr ""

#: packages/admin/src/components/AdminCommandPalette.tsx:470
msgid "to close"
msgstr "pour fermer"

#: packages/admin/src/components/ContentList.tsx:629
msgid "To date"
msgstr ""

#: packages/admin/src/components/PluginManager.tsx:203
msgid "to install plugins, or add them to your astro.config.mjs."
msgstr "pour installer des modules d'extension, ou ajoutez-les à votre fichier astro.config.mjs."

#: packages/admin/src/components/AdminCommandPalette.tsx:460
msgid "to select"
msgstr "pour sélectionner"

#: packages/admin/src/components/PortableTextEditor.tsx:2820
msgid "Toggle header row"
msgstr "Basculer la ligne d'en-tête"

#: packages/admin/src/components/ThemeToggle.tsx:30
#: packages/admin/src/components/ThemeToggle.tsx:41
msgid "Toggle theme (current: {label})"
msgstr "Changer de thème (actuel : {label})"

#. placeholder {0}: newToken.info.name
#: packages/admin/src/components/settings/ApiTokenSettings.tsx:197
msgid "Token created: {0}"
msgstr "Jeton créé : {0}"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:407
msgid "Token Name"
msgstr "Nom du jeton"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:54
msgid "TOML"
msgstr ""

#: packages/admin/src/components/WordPressImport.tsx:1116
msgid "Tools → Export"
msgstr "Outils → Exporter"

#: packages/admin/src/components/ContentTypeEditor.tsx:77
msgid "Track content history"
msgstr "Suivre l'historique du contenu"

#: packages/admin/src/components/BylineFieldEditor.tsx:287
#: packages/admin/src/routes/byline-schema.tsx:243
msgid "Translatable"
msgstr "Traduisible"

#: packages/admin/src/components/TaxonomyManager.tsx:83
#: packages/admin/src/components/TaxonomyManager.tsx:194
#: packages/admin/src/components/TranslationsPanel.tsx:99
msgid "Translate"
msgstr "Traduire"

#. placeholder {0}: term.label
#: packages/admin/src/components/TaxonomyManager.tsx:156
msgid "Translate \"{0}\""
msgstr "Traduire « {0} »"

#. placeholder {0}: term.label
#: packages/admin/src/components/TaxonomyManager.tsx:80
msgid "Translate {0}"
msgstr "Traduire « {0} »"

#: packages/admin/src/components/TaxonomyManager.tsx:194
#: packages/admin/src/components/TranslationsPanel.tsx:99
msgid "Translating..."
msgstr "Traduire..."

#: packages/admin/src/components/MenuEditor.tsx:89
#: packages/admin/src/components/TaxonomyManager.tsx:758
#: packages/admin/src/router.tsx:979
msgid "Translation created"
msgstr "Traduction créée"

#: packages/admin/src/components/TranslationsPanel.tsx:56
msgid "Translations"
msgstr "Traductions"

#: packages/admin/src/components/comments/CommentDetail.tsx:198
msgid "trash"
msgstr "corbeille"

#: packages/admin/src/components/comments/CommentDetail.tsx:170
#: packages/admin/src/components/comments/CommentInbox.tsx:216
#: packages/admin/src/components/comments/CommentInbox.tsx:257
#: packages/admin/src/components/comments/CommentInbox.tsx:513
#: packages/admin/src/components/ContentList.tsx:289
msgid "Trash"
msgstr "Corbeille"

#: packages/admin/src/components/ContentList.tsx:480
msgid "Trash is empty"
msgstr "La corbeille est vide"

#: packages/admin/src/components/comments/CommentInbox.tsx:549
msgid "Trash is empty."
msgstr "La corbeille est vide."

#: packages/admin/src/components/FieldEditor.tsx:175
msgid "True/false toggle"
msgstr "Bascule vrai/faux"

#: packages/admin/src/components/MediaLibrary.tsx:440
#: packages/admin/src/components/MediaPickerModal.tsx:643
msgid "Try a different search term"
msgstr "Essayer un autre terme de recherche"

#: packages/admin/src/components/ContentPickerModal.tsx:172
#: packages/admin/src/components/SectionPickerModal.tsx:102
msgid "Try adjusting your search"
msgstr "Essayez d'ajuster votre recherche"

#: packages/admin/src/components/Sections.tsx:260
msgid "Try adjusting your search or filters."
msgstr "Essayez d'ajuster votre recherche ou vos filtres."

#: packages/admin/src/routes/users.tsx:210
msgid "Try again"
msgstr "Essayer à nouveau"

#: packages/admin/src/components/WordPressImport.tsx:1421
msgid "Try Again"
msgstr "Essayer à nouveau"

#: packages/admin/src/components/DeviceAuthorizePage.tsx:207
msgid "Try another code"
msgstr "Essayez un autre code"

#: packages/admin/src/components/WordPressImport.tsx:1125
#: packages/admin/src/components/WordPressImport.tsx:1247
msgid "Try Another URL"
msgstr "Essayez une autre URL"

#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:252
#: packages/admin/src/components/ThemeMarketplaceDetail.tsx:143
msgid "Try with my data"
msgstr "Essayez avec mes données"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:55
msgid "TSX"
msgstr ""

#: packages/admin/src/components/editor/BlockMenu.tsx:282
msgid "Turn into"
msgstr "Convertir en"

#: packages/admin/src/components/settings/SocialSettings.tsx:132
msgid "Twitter"
msgstr "Twitter"

#: packages/admin/src/components/BylineFieldEditor.tsx:260
#: packages/admin/src/components/FieldEditor.tsx:571
#: packages/admin/src/components/MediaLibrary.tsx:491
#: packages/admin/src/routes/byline-schema.tsx:240
msgid "Type"
msgstr "Type"

#. placeholder {0}: status.existingType
#: packages/admin/src/components/WordPressImport.tsx:1854
msgid "Type mismatch ({0})"
msgstr "Incompatibilité de type ({0})"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:56
msgid "TypeScript"
msgstr ""

#: packages/admin/src/components/MarketplaceBrowse.tsx:131
#: packages/admin/src/components/ThemeMarketplaceBrowse.tsx:112
msgid "Unable to reach marketplace"
msgstr "Impossible d'accéder à la place de marché"

#: packages/admin/src/components/ContentEditor.tsx:2117
#: packages/admin/src/components/ContentEditor.tsx:2132
msgid "Unassigned"
msgstr "Non attribué"

#: packages/admin/src/components/PortableTextEditor.tsx:2721
#: packages/admin/src/components/PortableTextEditor.tsx:3029
msgid "Underline"
msgstr "Soulignement"

#: packages/admin/src/components/PortableTextEditor.tsx:3238
msgid "Undo"
msgstr "Annuler"

#: packages/admin/src/components/MarketplacePluginDetail.tsx:180
#: packages/admin/src/components/PluginManager.tsx:547
#: packages/admin/src/components/PluginManager.tsx:643
msgid "Uninstall"
msgstr "Désinstaller"

#: packages/admin/src/components/PluginManager.tsx:627
msgid "Uninstall {pluginName}?"
msgstr "Désinstaller {pluginName} ?"

#: packages/admin/src/components/PluginManager.tsx:622
msgid "Uninstall confirmation"
msgstr "Confirmation de désinstallation"

#: packages/admin/src/components/PluginManager.tsx:643
msgid "Uninstalling..."
msgstr "En cours de désinstallation..."

#: packages/admin/src/components/ContentTypeEditor.tsx:722
#: packages/admin/src/components/FieldEditor.tsx:442
msgid "Unique"
msgstr "Unique"

#: packages/admin/src/components/ContentTypeEditor.tsx:107
msgid "Unique identifier (ULID)"
msgstr "Identifiant unique (ULID)"

#: packages/admin/src/components/users/useRolesConfig.ts:7
msgid "Unknown"
msgstr "Inconnu"

#: packages/admin/src/components/users/roleDefinitions.ts:62
msgid "Unknown role"
msgstr "Rôle inconnu"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:296
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:297
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:485
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:486
msgid "Unlock aspect ratio"
msgstr "Déverrouiller le rapport hauteur/largeur"

#: packages/admin/src/components/settings/PasskeyItem.tsx:152
#: packages/admin/src/components/users/UserDetail.tsx:254
msgid "Unnamed passkey"
msgstr "Clé d'accès sans nom"

#: packages/admin/src/components/ContentEditor.tsx:729
msgid "Unpublish"
msgstr "Annuler la publication"

#: packages/admin/src/router.tsx:887
msgid "Unpublished"
msgstr "Non publié"

#: packages/admin/src/components/ContentTypeList.tsx:55
msgid "Unregistered Content Tables Found"
msgstr "Tables de contenu non enregistrées trouvées"

#: packages/admin/src/components/ContentEditor.tsx:871
msgid "Unschedule"
msgstr "Déprogrammer"

#: packages/admin/src/router.tsx:948
msgid "Unscheduled"
msgstr "Non programmé"

#. placeholder {0}: (element as { type: string }).type
#: packages/admin/src/components/BlockKitFieldWidget.tsx:128
msgid "Unsupported widget element type: {0}"
msgstr "Type d'élément de widget non pris en charge : {0}"

#: packages/admin/src/components/Dashboard.tsx:249
msgid "Untitled"
msgstr "Sans titre"

#: packages/admin/src/components/ContentEditor.tsx:1641
msgid "Untitled file"
msgstr "Fichier sans titre"

#: packages/admin/src/components/Widgets.tsx:466
#: packages/admin/src/components/Widgets.tsx:729
msgid "Untitled Widget"
msgstr "Widget sans titre"

#: packages/admin/src/components/PublisherHandle.tsx:145
msgid "Unverified publisher"
msgstr "Éditeur non vérifié"

#: packages/admin/src/components/ContentEditor.tsx:1944
msgid "Up"
msgstr "En haut"

#: packages/admin/src/components/TaxonomyManager.tsx:478
msgid "Update"
msgstr "Mise à jour"

#: packages/admin/src/components/FieldEditor.tsx:660
msgid "Update Field"
msgstr "Champ de mise à jour"

#. placeholder {0}: editingDomain?.domain
#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:367
msgid "Update settings for {0}"
msgstr "Mettre à jour les paramètres pour {0}"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:91
msgid "Update site settings"
msgstr "Mettre à jour les paramètres du site"

#. placeholder {0}: taxonomyDef.labelSingular?.toLowerCase() || "term"
#: packages/admin/src/components/TaxonomyManager.tsx:366
msgid "Update the {0} details"
msgstr "Mettre à jour les détails de {0}"

#: packages/admin/src/components/Redirects.tsx:109
msgid "Update this redirect rule."
msgstr "Mettez à jour cette règle de redirection."

#. placeholder {0}: updateInfo.latest
#: packages/admin/src/components/PluginManager.tsx:417
msgid "Update to v{0}"
msgstr "Mise à jour vers v{0}"

#: packages/admin/src/components/ContentList.tsx:551
#: packages/admin/src/components/RegistryPluginDetail.tsx:488
msgid "Updated"
msgstr "Mis à jour"

#: packages/admin/src/components/ContentTypeEditor.tsx:129
msgid "Updated At"
msgstr "Modifié le"

#. placeholder {0}: new Date(item.updatedAt).toLocaleString()
#: packages/admin/src/components/ContentEditor.tsx:928
msgid "Updated: {0}"
msgstr "Mise à jour : {0}"

#: packages/admin/src/components/WordPressImport.tsx:844
msgid "Updating content URLs..."
msgstr "En cours de mise à jour des URL de contenu..."

#: packages/admin/src/components/CapabilityConsentDialog.tsx:166
#: packages/admin/src/components/PluginManager.tsx:417
msgid "Updating..."
msgstr "En cours de mise à jour..."

#: packages/admin/src/components/MediaPickerModal.tsx:601
msgid "Upload"
msgstr "Téléverser"

#: packages/admin/src/components/MediaPickerModal.tsx:147
msgid "Upload a file to get started"
msgstr "Téléversez un fichier pour commencer"

#: packages/admin/src/components/WordPressImport.tsx:1230
msgid "Upload an export file"
msgstr "Importer un fichier d'exportation"

#: packages/admin/src/components/MediaPickerModal.tsx:148
msgid "Upload an image to get started"
msgstr "Téléversez une image pour commencer"

#: packages/admin/src/components/settings/ApiTokenSettings.tsx:61
msgid "Upload and delete media"
msgstr "Téléverser et supprimer des fichiers multimédias"

#: packages/admin/src/lib/api/marketplace.ts:225
#: packages/admin/src/lib/api/marketplace.ts:233
msgid "Upload and manage media"
msgstr "Téléverser et gérer des médias"

#: packages/admin/src/components/WordPressImport.tsx:1123
#: packages/admin/src/components/WordPressImport.tsx:1244
msgid "Upload Export File"
msgstr "Importer le fichier d'exportation"

#: packages/admin/src/components/MediaPickerModal.tsx:621
msgid "Upload failed: {uploadError}"
msgstr "Échec du téléversement : {uploadError}"

#: packages/admin/src/components/MediaPickerModal.tsx:613
msgid "Upload file"
msgstr "Téléverser le fichier"

#: packages/admin/src/components/MediaPickerModal.tsx:149
msgid "Upload File"
msgstr "Téléverser le fichier"

#: packages/admin/src/components/MediaLibrary.tsx:368
msgid "Upload files"
msgstr "Téléverser des fichiers"

#: packages/admin/src/components/MediaLibrary.tsx:431
msgid "Upload Files"
msgstr "Téléverser des fichiers"

#: packages/admin/src/components/MediaPickerModal.tsx:149
msgid "Upload Image"
msgstr "Téléverser une image"

#: packages/admin/src/components/MediaLibrary.tsx:428
msgid "Upload images, videos, and documents to get started."
msgstr "Téléverser des images, des vidéos et des documents pour commencer."

#: packages/admin/src/components/Dashboard.tsx:89
msgid "Upload Media"
msgstr "Téléverser des fichiers multimédias"

#: packages/admin/src/components/MediaLibrary.tsx:442
msgid "Upload media to get started"
msgstr "Téléversez des fichiers multimédias pour commencer"

#. placeholder {0}: activeProviderInfo?.name || t`Library`
#: packages/admin/src/components/MediaLibrary.tsx:359
msgid "Upload to {0}"
msgstr "Téléverser vers {0}"

#: packages/admin/src/components/WordPressImport.tsx:960
msgid "Upload WordPress export file"
msgstr "Importez le fichier d'exportation WordPress"

#: packages/admin/src/components/MediaDetailPanel.tsx:188
msgid "Uploaded:"
msgstr "Téléversé :"

#: packages/admin/src/components/WordPressImport.tsx:1963
msgid "Uploading"
msgstr "Importation"

#. placeholder {0}: uploadState.progress.current
#. placeholder {1}: uploadState.progress.total
#: packages/admin/src/components/MediaLibrary.tsx:334
msgid "Uploading {0}/{1}..."
msgstr "En cours de téléversement {0}/{1}..."

#: packages/admin/src/components/MediaLibrary.tsx:335
#: packages/admin/src/components/MediaPickerModal.tsx:601
msgid "Uploading..."
msgstr "En cours de téléversement..."

#: packages/admin/src/components/BylineFieldEditor.tsx:54
#: packages/admin/src/components/FieldEditor.tsx:234
#: packages/admin/src/components/FieldEditor.tsx:586
#: packages/admin/src/components/MenuEditor.tsx:339
#: packages/admin/src/components/MenuEditor.tsx:509
#: packages/admin/src/components/PortableTextEditor.tsx:3162
msgid "URL"
msgstr "URL"

#: packages/admin/src/components/ContentTypeEditor.tsx:425
msgid "URL Pattern"
msgstr "Modèle d'URL"

#: packages/admin/src/components/ContentTypeEditor.tsx:113
#: packages/admin/src/components/FieldEditor.tsx:229
msgid "URL-friendly identifier"
msgstr "Identifiant adapté aux URL"

#: packages/admin/src/components/MenuList.tsx:162
msgid "URL-friendly identifier (e.g., \"primary\", \"footer\")"
msgstr "Identifiant adapté aux URL (p. ex. « principal », « pied-de-page »)"

#: packages/admin/src/components/MediaDetailPanel.tsx:193
msgid "URL:"
msgstr ""

#: packages/admin/src/components/Redirects.tsx:110
msgid "Use [param] or [...rest] in paths for pattern matching."
msgstr "Utilisez [param] ou [...rest] dans les chemins pour la correspondance de modèles."

#: packages/admin/src/components/auth/PasskeyLogin.tsx:366
msgid "Use your device's biometric authentication, security key, or PIN to sign in."
msgstr "Utilisez l'authentification biométrique, la clé de sécurité ou le code PIN de votre appareil pour vous connecter."

#: packages/admin/src/components/LoginPage.tsx:326
msgid "Use your registered passkey to sign in securely."
msgstr "Utilisez votre clé d'accès enregistrée pour vous connecter en toute sécurité."

#: packages/admin/src/components/settings/SeoSettings.tsx:173
msgid "Used as the fallback Open Graph image when a page has none. Recommended size: 1200×630."
msgstr "Utilisé comme image Open Graph de repli lorsqu'une page n'en a pas. Taille recommandée : 1200×630."

#: packages/admin/src/components/TaxonomyManager.tsx:644
msgid "Used as the identifier. Lowercase letters, numbers, and underscores only."
msgstr "Utilisé comme identifiant. Lettres minuscules, chiffres et traits de soulignement uniquement."

#: packages/admin/src/components/ContentEditor.tsx:1328
msgid "Used as the main visual for this post on listing pages and at the top of the post"
msgstr "Utilisé comme visuel principal de cet article sur les pages contenant des listes et en haut de l'article"

#: packages/admin/src/components/MediaDetailPanel.tsx:220
msgid "Used by screen readers and when image fails to load"
msgstr "Utilisé par les lecteurs d'écran et lorsque l'image ne se charge pas"

#: packages/admin/src/components/ContentTypeEditor.tsx:410
msgid "Used in URLs and API endpoints"
msgstr "Utilisé dans les URL et les points de terminaison de l'API"

#: packages/admin/src/components/SectionEditor.tsx:254
#: packages/admin/src/components/Sections.tsx:196
msgid "Used to identify this section. Lowercase letters, numbers, and hyphens only."
msgstr "Utilisé pour identifier cette section. Lettres minuscules, chiffres et traits d'union uniquement."

#: packages/admin/src/components/DeviceAuthorizePage.tsx:223
#: packages/admin/src/components/Header.tsx:37
#: packages/admin/src/components/Header.tsx:75
#: packages/admin/src/components/users/UserList.tsx:98
msgid "User"
msgstr "Utilisateur"

#. placeholder {0}: manifest?.authMode
#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:192
msgid "User access is managed by an external provider ({0}). Self-signup domain settings are not available when using external authentication."
msgstr "L'accès des utilisateurs est géré par un fournisseur externe ({0}). Les paramètres de domaine d'inscription automatique ne sont pas disponibles lors de l'utilisation d'une authentification externe."

#: packages/admin/src/components/users/UserDetail.tsx:116
msgid "User Details"
msgstr "Détails de l'utilisateur"

#: packages/admin/src/components/users/UserDetail.tsx:296
msgid "User not found"
msgstr "Utilisateur introuvable"

#: packages/admin/src/components/AdminCommandPalette.tsx:211
#: packages/admin/src/components/Sidebar.tsx:348
#: packages/admin/src/components/users/UserList.tsx:54
msgid "Users"
msgstr "Utilisateurs"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:416
msgid "Users from"
msgstr "Utilisateurs de"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:244
msgid "Users with email addresses from these domains can sign up without an invite. They will be assigned the specified role automatically."
msgstr "Les utilisateurs disposant d'adresses e-mail utilisant ces domaines peuvent s'inscrire sans invitation. Le rôle spécifié leur sera automatiquement attribué."

#. placeholder {0}: updateInfo.latest
#: packages/admin/src/components/PluginManager.tsx:358
msgid "v{0} available"
msgstr "v{0} disponible"

#: packages/admin/src/components/FieldEditor.tsx:460
#: packages/admin/src/components/FieldEditor.tsx:490
msgid "Validation"
msgstr "Validation"

#: packages/admin/src/components/RegistryBrowse.tsx:186
#: packages/admin/src/components/RegistryPluginDetail.tsx:449
msgid "Verified publisher"
msgstr "Éditeur vérifié"

#: packages/admin/src/components/RegistryPluginDetail.tsx:448
msgid "Verified publisher, confirmed by labeller {verifiedLabeller}"
msgstr "Éditeur vérifié, confirmé par l'étiqueteur {verifiedLabeller}"

#: packages/admin/src/components/RegistryPluginDetail.tsx:439
msgid "Verified publisher. A labeller ({verifiedLabeller}) has confirmed this publisher's identity."
msgstr "Éditeur vérifié. Un étiqueteur ({verifiedLabeller}) a confirmé l'identité de cet éditeur."

#: packages/admin/src/components/RegistryPluginDetail.tsx:440
msgid "Verified publisher. A labeller has confirmed this publisher's identity."
msgstr "Éditeur vérifié. Un étiqueteur a confirmé l'identité de cet éditeur."

#: packages/admin/src/components/InviteAcceptPage.tsx:194
msgid "Verifying your invite..."
msgstr "Vérification de votre invitation en cours..."

#: packages/admin/src/components/SignupPage.tsx:386
msgid "Verifying your link..."
msgstr "Vérification de votre lien en cours..."

#: packages/admin/src/components/auth/PasskeyLogin.tsx:213
#: packages/admin/src/components/auth/PasskeyRegistration.tsx:215
msgid "Verifying..."
msgstr "Vérification en cours..."

#: packages/admin/src/components/MarketplacePluginDetail.tsx:320
#: packages/admin/src/components/RegistryPluginDetail.tsx:502
msgid "Version"
msgstr "Version"

#. placeholder {0}: release.version
#: packages/admin/src/components/RegistryPluginDetail.tsx:464
msgid "Version {0}"
msgstr "Version {0}"

#: packages/admin/src/components/AllowedTypesEditor.tsx:67
#: packages/admin/src/components/MediaLibrary.tsx:402
msgid "Video"
msgstr "Vidéo"

#: packages/admin/src/components/Settings.tsx:116
msgid "View email provider status and send test emails"
msgstr "Consulter l'état du fournisseur d'e-mail et envoyer un e-mail de test"

#: packages/admin/src/components/PluginManager.tsx:429
msgid "View in Marketplace"
msgstr "Afficher dans la place de marché"

#: packages/admin/src/components/MediaLibrary.tsx:272
msgid "View mode"
msgstr "Mode d'affichage"

#: packages/admin/src/components/ContentList.tsx:808
msgid "View published {title}"
msgstr "Voir {title} publié"

#: packages/admin/src/components/Header.tsx:51
msgid "View Site"
msgstr "Voir le site"

#: packages/admin/src/components/RegistryPluginDetail.tsx:663
msgid "View source"
msgstr "Voir la source"

#: packages/admin/src/components/RegistryPluginDetail.tsx:916
msgid "View the {license} license on spdx.org"
msgstr "Voir la licence {license} sur spdx.org"

#: packages/admin/src/components/Redirects.tsx:448
msgid "Visitors hitting these paths will see an error."
msgstr "Les visiteurs qui empruntent ces chemins verront une erreur."

#: packages/admin/src/components/editor/codeBlockLanguages.ts:57
msgid "Vue"
msgstr ""

#: packages/admin/src/components/auth/PasskeyLogin.tsx:180
#: packages/admin/src/components/auth/PasskeyRegistration.tsx:184
msgid "Waiting for passkey..."
msgstr "En attente de la clé d'accès..."

#: packages/admin/src/components/MarketplaceBrowse.tsx:333
msgid "Warn"
msgstr "Avertir"

#. placeholder {0}: result.url
#: packages/admin/src/components/WordPressImport.tsx:1105
msgid "We couldn't connect to a WordPress site at {0}. This could mean the site isn't WordPress, the REST API is disabled, or the site isn't accessible."
msgstr "Nous n'avons pas pu nous connecter à un site WordPress à l'adresse {0}. Cela peut signifier que le site n'est pas WordPress, que l'API REST est désactivée ou que le site n'est pas accessible."

#: packages/admin/src/components/RegistryPluginDetail.tsx:564
msgid "We couldn't verify this publisher's identity"
msgstr "Nous n'avons pas pu vérifier l'identité de cet éditeur"

#: packages/admin/src/components/WordPressImport.tsx:926
msgid "We'll check what import options are available for your site."
msgstr "Nous vérifierons quelles options d'importation sont disponibles pour votre site."

#: packages/admin/src/components/LoginPage.tsx:323
msgid "We'll send you a link to sign in without a password."
msgstr "Nous vous enverrons un lien pour vous connecter sans mot de passe."

#: packages/admin/src/components/SignupPage.tsx:132
msgid "We've sent a verification link to"
msgstr "Nous avons envoyé un lien de vérification à"

#: packages/admin/src/components/FieldEditor.tsx:235
msgid "Web address"
msgstr "Adresse Internet"

#: packages/admin/src/components/auth/PasskeyLogin.tsx:159
#: packages/admin/src/components/auth/PasskeyRegistration.tsx:163
msgid "WebAuthn is not supported in this browser"
msgstr "WebAuthn n'est pas pris en charge dans ce navigateur"

#: packages/admin/src/components/MarketplacePluginDetail.tsx:225
#: packages/admin/src/components/RegistryPluginDetail.tsx:688
msgid "Website"
msgstr "Site web"

#: packages/admin/src/routes/bylines.tsx:492
msgid "Website URL"
msgstr "URL du site web"

#: packages/admin/src/components/WelcomeModal.tsx:96
msgid "Welcome to EmDash, {firstName}!"
msgstr "Bienvenue sur EmDash, {firstName} !"

#: packages/admin/src/components/WelcomeModal.tsx:96
msgid "Welcome to EmDash!"
msgstr "Bienvenue sur EmDash !"

#: packages/admin/src/components/WordPressImport.tsx:1927
msgid "What happens when you import:"
msgstr "Ce qu'il se passe lorsque vous importez :"

#: packages/admin/src/components/WordPressImport.tsx:1710
msgid "What will happen when you import"
msgstr "Ce qu'il se passera lorsque vous importerez"

#: packages/admin/src/components/ContentTypeEditor.tsx:125
msgid "When the entry was created"
msgstr "Date de création de l'entrée"

#: packages/admin/src/components/ContentTypeEditor.tsx:131
msgid "When the entry was last modified"
msgstr "Date de dernière modification de l'entrée"

#: packages/admin/src/components/ContentTypeEditor.tsx:137
msgid "When the entry was published"
msgstr "Date de publication de l'entrée"

#: packages/admin/src/components/TaxonomyManager.tsx:658
msgid "Which content types can use this taxonomy"
msgstr "Quels types de contenu peuvent utiliser cette taxonomie"

#: packages/admin/src/components/FieldEditor.tsx:169
msgid "Whole number"
msgstr "Nombre entier"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:163
msgid "Wide"
msgstr ""

#: packages/admin/src/components/Widgets.tsx:722
#: packages/admin/src/components/Widgets.tsx:737
msgid "widget"
msgstr "widget"

#: packages/admin/src/components/Widgets.tsx:170
msgid "Widget added"
msgstr "Widget ajouté"

#: packages/admin/src/components/Widgets.tsx:158
msgid "Widget area created"
msgstr "Zone de widget créée"

#: packages/admin/src/components/Widgets.tsx:565
msgid "Widget area deleted"
msgstr "Zone de widget supprimée"

#: packages/admin/src/components/Widgets.tsx:685
msgid "Widget deleted"
msgstr "Widget supprimé"

#: packages/admin/src/components/Widgets.tsx:814
msgid "Widget title"
msgstr "Titre du widget"

#: packages/admin/src/components/Widgets.tsx:700
msgid "Widget updated"
msgstr "Widget mis à jour"

#: packages/admin/src/components/AdminCommandPalette.tsx:169
#: packages/admin/src/components/PluginManager.tsx:379
#: packages/admin/src/components/Sidebar.tsx:333
#: packages/admin/src/components/Widgets.tsx:325
msgid "Widgets"
msgstr "Widgets"

#: packages/admin/src/components/editor/ImageDetailPanel.tsx:284
#: packages/admin/src/components/editor/ImageDetailPanel.tsx:473
msgid "Width"
msgstr "Largeur"

#: packages/admin/src/components/WordPressImport.tsx:1850
msgid "Will create"
msgstr "Créera"

#: packages/admin/src/components/settings/AllowedDomainsSettings.tsx:417
msgid "will no longer be able to sign up without an invite. Existing users are not affected."
msgstr "ne pourra plus s'inscrire sans invitation. Les utilisateurs existants ne sont pas concernés."

#: packages/admin/src/components/settings/EmailSettings.tsx:184
msgid "Without an email provider, invite links must be shared manually."
msgstr "Sans fournisseur de messagerie, les liens d'invitation doivent être partagés manuellement."

#: packages/admin/src/components/WordPressImport.tsx:1315
msgid "WordPress Username"
msgstr "Nom d'utilisateur WordPress"

#: packages/admin/src/components/Widgets.tsx:824
msgid "Write widget content..."
msgstr "Écrire le contenu du widget..."

#: packages/admin/src/components/WordPressImport.tsx:1023
msgid "WXR File"
msgstr "Fichier WXR"

#: packages/admin/src/components/editor/codeBlockLanguages.ts:58
msgid "XML"
msgstr ""

#: packages/admin/src/components/editor/codeBlockLanguages.ts:59
msgid "YAML"
msgstr ""

#: packages/admin/src/components/users/UserDetail.tsx:236
#: packages/admin/src/routes/byline-schema.tsx:420
#: packages/admin/src/routes/byline-schema.tsx:422
msgid "Yes"
msgstr "Oui"

#: packages/admin/src/components/DeviceAuthorizePage.tsx:188
msgid "You can close this page and return to your terminal."
msgstr "Vous pouvez fermer cette page et revenir à votre terminal."

#: packages/admin/src/components/WelcomeModal.tsx:43
msgid "You can create and edit your own content."
msgstr "Vous pouvez créer et modifier votre propre contenu."

#: packages/admin/src/components/WelcomeModal.tsx:42
msgid "You can manage content, media, menus, and taxonomies."
msgstr "Vous pouvez gérer le contenu, les fichiers multimédias, les menus et les taxonomies."

#: packages/admin/src/routes/bylines.tsx:550
msgid "You can still edit the fixed fields above. Saving will not touch any stored custom-field values."
msgstr "Vous pouvez toujours modifier les champs fixes ci-dessus. L'enregistrement ne touchera aucune valeur de champ personnalisé enregistrée."

#: packages/admin/src/components/WelcomeModal.tsx:44
msgid "You can view and contribute to the site."
msgstr "Vous pouvez consulter le site et y contribuer."

#: packages/admin/src/components/users/UserDetail.tsx:175
msgid "You cannot change your own role"
msgstr "Vous ne pouvez pas changer votre propre rôle"

#: packages/admin/src/components/WelcomeModal.tsx:41
msgid "You have full access to manage this site, including users, settings, and all content."
msgstr "Vous avez un accès complet pour gérer ce site, y compris les utilisateurs, les paramètres et tout le contenu."

#: packages/admin/src/routes/byline-schema.tsx:175
msgid "You need admin permissions to manage byline schema."
msgstr "Vous avez besoin des permissions d'administration pour gérer le schéma des auteurs."

#: packages/admin/src/router.tsx:1298
msgid "You need Editor permissions to moderate comments."
msgstr "Vous avez besoin des autorisations d'éditeur pour modérer les commentaires."

#. placeholder {0}: passkey.name
#: packages/admin/src/components/settings/PasskeyItem.tsx:206
msgid "You won't be able to use \"{0}\" to sign in anymore. This action cannot be undone."
msgstr "Vous ne pourrez plus utiliser « {0} » pour vous connecter. Cette action ne peut pas être annulée."

#: packages/admin/src/components/settings/PasskeyItem.tsx:207
msgid "You won't be able to use this passkey to sign in anymore. This action cannot be undone."
msgstr "Vous ne pourrez plus utiliser cette clé d'accès pour vous connecter. Cette action ne peut pas être annulée."

#. placeholder {0}: inviteData.roleName
#: packages/admin/src/components/InviteAcceptPage.tsx:52
msgid "You'll be joining as <0>{0}</0>"
msgstr "Vous nous rejoindrez en tant que <0>{0}</0>"

#: packages/admin/src/components/auth/PasskeyRegistration.tsx:369
msgid "You'll be prompted to use your device's biometric authentication, security key, or PIN."
msgstr "Vous serez invité à utiliser l'authentification biométrique, la clé de sécurité ou le code PIN de votre appareil."

#: packages/admin/src/components/WordPressImport.tsx:1208
msgid "You'll be redirected to WordPress to authorize the connection."
msgstr "Vous serez redirigé vers WordPress pour autoriser la connexion."

#: packages/admin/src/components/SignupPage.tsx:191
msgid "You'll be signing up as"
msgstr "Vous serez inscrit en tant que"

#: packages/admin/src/components/SetupWizard.tsx:564
msgid "You're signed in via Cloudflare Access"
msgstr "Vous êtes connecté via Cloudflare Access"

#: packages/admin/src/components/InviteAcceptPage.tsx:50
msgid "You've been invited!"
msgstr "Vous avez été invité !"

#: packages/admin/src/components/SignupPage.tsx:70
msgid "you@company.com"
msgstr "vous@entreprise.com"

#: packages/admin/src/components/auth/PasskeyLogin.tsx:336
#: packages/admin/src/components/SetupWizard.tsx:201
msgid "you@example.com"
msgstr "vous@exemple.com"

#: packages/admin/src/components/WelcomeModal.tsx:39
msgid "Your account has been created successfully."
msgstr "Votre compte a bien été créé."

#: packages/admin/src/components/auth/PasskeyLogin.tsx:318
#: packages/admin/src/components/auth/PasskeyRegistration.tsx:315
msgid "Your browser doesn't support passkeys. Please use a modern browser like Chrome, Safari, Firefox, or Edge."
msgstr "Votre navigateur ne prend pas en charge les mots de passe. Veuillez utiliser un navigateur moderne comme Chrome, Safari, Firefox ou Edge."

#: packages/admin/src/components/auth/PasskeyLogin.tsx:269
#: packages/admin/src/components/auth/PasskeyRegistration.tsx:272
msgid "Your device doesn't support the required security features."
msgstr "Votre appareil ne prend pas en charge les fonctionnalités de sécurité requises."

#: packages/admin/src/components/SetupWizard.tsx:197
msgid "Your Email"
msgstr "Votre e-mail"

#: packages/admin/src/components/settings/SocialSettings.tsx:147
msgid "Your Facebook page or profile username"
msgstr "Le nom d'utilisateur de votre page Facebook ou de votre profil"

#: packages/admin/src/components/settings/SocialSettings.tsx:141
msgid "Your GitHub username"
msgstr "Le nom d'utilisateur de votre compte GitHub"

#: packages/admin/src/components/settings/SocialSettings.tsx:153
msgid "Your Instagram username"
msgstr "Le nom d'utilisateur de votre compte Instagram"

#: packages/admin/src/components/settings/SocialSettings.tsx:159
msgid "Your LinkedIn profile username"
msgstr "Le nom d'utilisateur de votre compte LinkedIn"

#: packages/admin/src/components/SetupWizard.tsx:209
msgid "Your Name"
msgstr "Votre nom"

#: packages/admin/src/components/InviteAcceptPage.tsx:62
#: packages/admin/src/components/SignupPage.tsx:201
msgid "Your name (optional)"
msgstr "Votre nom (facultatif)"

#: packages/admin/src/components/WelcomeModal.tsx:40
msgid "Your Role"
msgstr "Votre rôle"

#. placeholder {0}: formatHoldback(config.policy?.minimumReleaseAgeSeconds ?? 0)
#: packages/admin/src/components/RegistryPluginDetail.tsx:599
msgid "Your site requires releases to be at least {0} old before they can be installed. This release will become installable later."
msgstr "Votre site exige que les versions soient publiées depuis au moins {0} avant de pouvoir être installées. Cette version sera installable plus tard."

#: packages/admin/src/components/settings/SocialSettings.tsx:135
msgid "Your Twitter/X handle (e.g., @username)"
msgstr "Votre identifiant Twitter/X (p. ex. @username)"

#. placeholder {0}: attachments.count
#: packages/admin/src/components/WordPressImport.tsx:1898
msgid "Your WordPress export contains {0} media files."
msgstr "Votre exportation WordPress contient {0} fichiers multimédias."

#: packages/admin/src/components/settings/SocialSettings.tsx:165
msgid "Your YouTube channel ID or handle"
msgstr "Votre identifiant ou l'identifiant de votre chaîne YouTube"

#: packages/admin/src/components/settings/SocialSettings.tsx:162
msgid "YouTube"
msgstr "YouTube"
