chore: lots of i18n
This commit is contained in:
@@ -69,46 +69,46 @@
|
||||
"settings.data.title": "Maintenance de la base de données",
|
||||
"settings.data.fileSystemTitle": "Système de fichiers",
|
||||
"settings.search.placeholder": "Rechercher des paramètres...",
|
||||
"settings.search.noResults": "No paramètres found matching \"{query}\"",
|
||||
"settings.search.noResults": "Aucun paramètre correspondant à \"{query}\"",
|
||||
"settings.search.clear": "Effacer la recherche",
|
||||
"settings.toast.publishingSaved": "Identifiants de publication enregistrés",
|
||||
"settings.toast.saveCredentialsFailed": "Échec de save credentials",
|
||||
"settings.toast.saveCredentialsFailed": "Impossible d’enregistrer les identifiants",
|
||||
"settings.toast.credentialsCleared": "Identifiants {type} effacés",
|
||||
"settings.toast.projectSaved": "Project paramètres saved",
|
||||
"settings.toast.projectSaveFailed": "Échec de save project paramètres",
|
||||
"settings.toast.projectSaved": "Paramètres du projet enregistrés",
|
||||
"settings.toast.projectSaveFailed": "Impossible d’enregistrer les paramètres du projet",
|
||||
"settings.toast.categoryAdded": "Catégorie \"{category}\" ajoutée",
|
||||
"settings.toast.categoryAddFailed": "Échec de add category",
|
||||
"settings.toast.categoryAddFailed": "Impossible d’ajouter la catégorie",
|
||||
"settings.toast.categoryExists": "La catégorie existe déjà",
|
||||
"settings.toast.categoryProtected": "Impossible de supprimer la catégorie standard \"{category}\"",
|
||||
"settings.toast.categoryAtLeastOne": "Au moins une catégorie est requise",
|
||||
"settings.toast.categoryRemoved": "Catégorie \"{category}\" supprimée",
|
||||
"settings.toast.categoryRemoveFailed": "Échec de remove category",
|
||||
"settings.toast.categoryRemoveFailed": "Impossible de supprimer la catégorie",
|
||||
"settings.toast.categoriesReset": "Catégories réinitialisées aux valeurs par défaut",
|
||||
"settings.toast.categoriesResetFailed": "Échec de reset categories",
|
||||
"settings.toast.categorySettingsUpdateFailed": "Échec de update category paramètres",
|
||||
"settings.toast.categoriesResetFailed": "Impossible de réinitialiser les catégories",
|
||||
"settings.toast.categorySettingsUpdateFailed": "Impossible de mettre à jour les paramètres de catégorie",
|
||||
"settings.toast.systemPromptSaved": "Prompt système enregistré",
|
||||
"settings.toast.systemPromptSaveFailed": "Échec de save system prompt",
|
||||
"settings.toast.systemPromptSaveFailed": "Impossible d’enregistrer le prompt système",
|
||||
"settings.toast.systemPromptReset": "Prompt système réinitialisé par défaut",
|
||||
"settings.toast.systemPromptResetFailed": "Échec de reset system prompt",
|
||||
"settings.toast.systemPromptResetFailed": "Impossible de réinitialiser le prompt système",
|
||||
"settings.toast.apiKeySaved": "Clé API enregistrée et validée",
|
||||
"settings.toast.apiKeyInvalid": "Clé API invalide",
|
||||
"settings.toast.apiKeySaveFailed": "Échec de save API key",
|
||||
"settings.toast.apiKeySaveFailed": "Impossible d’enregistrer la clé API",
|
||||
"settings.toast.defaultModelUpdated": "Modèle par défaut mis à jour",
|
||||
"settings.toast.defaultModelUpdateFailed": "Échec de set default model",
|
||||
"settings.toast.rebuildPostsLoading": "Rebuilding articles database...",
|
||||
"settings.toast.defaultModelUpdateFailed": "Impossible de définir le modèle par défaut",
|
||||
"settings.toast.rebuildPostsLoading": "Reconstruction de la base des articles...",
|
||||
"settings.toast.rebuildPostsSuccess": "Base des articles reconstruite",
|
||||
"settings.toast.rebuildPostsFailed": "Échec de rebuild articles database",
|
||||
"settings.toast.rebuildMediaLoading": "Rebuilding médias database...",
|
||||
"settings.toast.rebuildPostsFailed": "Impossible de reconstruire la base des articles",
|
||||
"settings.toast.rebuildMediaLoading": "Reconstruction de la base des médias...",
|
||||
"settings.toast.rebuildMediaSuccess": "Base médias reconstruite",
|
||||
"settings.toast.rebuildMediaFailed": "Échec de rebuild médias database",
|
||||
"settings.toast.rebuildLinksLoading": "Rebuilding article links...",
|
||||
"settings.toast.rebuildMediaFailed": "Impossible de reconstruire la base des médias",
|
||||
"settings.toast.rebuildLinksLoading": "Reconstruction des liens d’articles...",
|
||||
"settings.toast.rebuildLinksSuccess": "Liens d’articles reconstruits",
|
||||
"settings.toast.rebuildLinksFailed": "Échec de rebuild article links",
|
||||
"settings.toast.rebuildLinksFailed": "Impossible de reconstruire les liens d’articles",
|
||||
"settings.toast.thumbnailsLoading": "Génération des miniatures...",
|
||||
"settings.toast.thumbnailsGenerated": "{count} miniatures générées",
|
||||
"settings.toast.thumbnailsAlreadyExist": "Toutes les miniatures existent déjà",
|
||||
"settings.toast.thumbnailsComplete": "Génération des miniatures terminée",
|
||||
"settings.toast.thumbnailsFailed": "Échec de generate thumbnails",
|
||||
"settings.toast.thumbnailsFailed": "Impossible de générer les miniatures",
|
||||
"chat.setupTitle": "Configuration du chat IA",
|
||||
"chat.apiKeyRequiredTitle": "Clé API OpenCode Zen requise",
|
||||
"chat.apiKeyRequiredDescription": "Saisissez votre clé API OpenCode pour activer le chat IA.",
|
||||
@@ -116,21 +116,21 @@
|
||||
"chat.apiKeySave": "Enregistrer la clé",
|
||||
"chat.apiKeyValidating": "Validation...",
|
||||
"chat.apiKeyInvalid": "Clé API invalide. Veuillez vérifier et réessayer.",
|
||||
"chat.apiKeyValidationFailed": "Échec de validate API key.",
|
||||
"chat.apiKeyValidationFailed": "Impossible de valider la clé API.",
|
||||
"chat.newChat": "Nouveau chat",
|
||||
"chat.welcomeTitle": "Bienvenue dans l’assistant IA",
|
||||
"chat.welcomeDescription": "I can help you manage your articles and médias. Try asking me to:",
|
||||
"chat.welcomeTipSearch": "Recherche for articles about a specific topic",
|
||||
"chat.welcomeTipDetails": "Get details about a specific article",
|
||||
"chat.welcomeDescription": "Je peux vous aider à gérer vos articles et médias. Essayez par exemple :",
|
||||
"chat.welcomeTipSearch": "Rechercher des articles sur un sujet précis",
|
||||
"chat.welcomeTipDetails": "Afficher les détails d’un article précis",
|
||||
"chat.welcomeTipTags": "Lister toutes les étiquettes ou catégories de votre blog",
|
||||
"chat.welcomeTipMetadata": "Update metadata for articles or médias",
|
||||
"chat.welcomeTipImages": "List all images in your médias library",
|
||||
"chat.welcomeTipMetadata": "Mettre à jour les métadonnées des articles ou médias",
|
||||
"chat.welcomeTipImages": "Lister toutes les images de votre bibliothèque média",
|
||||
"chat.role.you": "Vous",
|
||||
"chat.role.assistant": "Assistant IA",
|
||||
"chat.stop": "Arrêter",
|
||||
"chat.inputPlaceholder": "Saisissez un message...",
|
||||
"chat.errorPrefix": "Erreur : {error}",
|
||||
"chat.errorNoResponse": "Échec de get a response. Please try again.",
|
||||
"chat.errorNoResponse": "Impossible d’obtenir une réponse. Veuillez réessayer.",
|
||||
"chat.errorEmptyResponse": "Le modèle a renvoyé une réponse vide. Essayez un autre modèle ou reformulez votre question.",
|
||||
"chat.errorGeneric": "Désolé, une erreur est survenue lors du traitement de votre message.",
|
||||
"chat.cancelledSuffix": "(annulé)",
|
||||
@@ -152,8 +152,8 @@
|
||||
"insert.tab.imageInternal": "Bibliothèque média",
|
||||
"insert.tab.linkExternal": "URL externe",
|
||||
"insert.tab.imageExternal": "Image externe",
|
||||
"insert.searchPlaceholder.link": "Recherche articles by title or content...",
|
||||
"insert.searchPlaceholder.image": "Recherche médias by name, title, or alt text...",
|
||||
"insert.searchPlaceholder.link": "Rechercher des articles par titre ou contenu...",
|
||||
"insert.searchPlaceholder.image": "Rechercher des médias par nom, titre ou texte alternatif...",
|
||||
"insert.status.searching": "Recherche...",
|
||||
"insert.status.typeMore": "Saisissez au moins 2 caractères pour rechercher",
|
||||
"insert.status.noResults": "Aucun(e) {kind} trouvé(e) pour \"{query}\"",
|
||||
@@ -169,7 +169,7 @@
|
||||
"insert.hint.internal": "Utilisez ↑↓ pour naviguer, Entrée pour sélectionner, Esc pour fermer",
|
||||
"insert.hint.external": "Entrez l’URL et appuyez sur Entrée ou cliquez sur le bouton, Esc pour fermer",
|
||||
"insert.hint.canonicalPost": "Canonique : /YYYY/MM/DD/slug",
|
||||
"insert.hint.canonicalMedia": "Canonical: /médias/YYYY/MM/file.ext",
|
||||
"insert.hint.canonicalMedia": "Canonique : /media/YYYY/MM/fichier.ext",
|
||||
"postLinks.loading": "Chargement des liens...",
|
||||
"postLinks.link": "lien",
|
||||
"postLinks.links": "liens",
|
||||
@@ -181,7 +181,7 @@
|
||||
"gitDiff.header": "Diff : {target}",
|
||||
"gitDiff.noProject": "Aucun projet actif sélectionné.",
|
||||
"gitDiff.noProjectPath": "Impossible de résoudre le chemin du projet.",
|
||||
"gitDiff.loadFailed": "Échec de load diff.",
|
||||
"gitDiff.loadFailed": "Impossible de charger le diff.",
|
||||
"gitDiff.loading": "Chargement du diff...",
|
||||
"gitDiff.changedFiles": "Fichiers modifiés",
|
||||
"gitDiff.previousFile": "Fichier précédent",
|
||||
@@ -192,8 +192,8 @@
|
||||
"errorModal.copy": "Copier",
|
||||
"errorModal.noStack": "Aucune trace de pile disponible",
|
||||
"confirmDelete.title": "Confirmer la suppression",
|
||||
"confirmDelete.promptPost": "Are you sure you want to delete the article",
|
||||
"confirmDelete.promptMedia": "Are you sure you want to delete the médias file",
|
||||
"confirmDelete.promptPost": "Voulez-vous vraiment supprimer l’article",
|
||||
"confirmDelete.promptMedia": "Voulez-vous vraiment supprimer le fichier média",
|
||||
"confirmDelete.warning": "Avertissement :",
|
||||
"confirmDelete.referencedBy": "Ce/cette {itemType} est référencé(e) par les éléments suivants :",
|
||||
"confirmDelete.note": "La suppression de ce/cette {itemType} supprimera toutes ces références.",
|
||||
@@ -205,12 +205,12 @@
|
||||
"lightbox.close": "Fermer (Esc)",
|
||||
"lightbox.previous": "Précédent (←)",
|
||||
"lightbox.next": "Suivant (→)",
|
||||
"credentials.error.load": "Échec de load credentials:",
|
||||
"credentials.error.save": "Échec de save credentials:",
|
||||
"credentials.error.load": "Impossible de charger les identifiants :",
|
||||
"credentials.error.save": "Impossible d’enregistrer les identifiants :",
|
||||
"credentials.toast.saved": "Identifiants enregistrés",
|
||||
"credentials.toast.saveFailed": "Échec de save credentials",
|
||||
"credentials.toast.saveFailed": "Impossible d’enregistrer les identifiants",
|
||||
"credentials.toast.testing": "Test de la connexion {type}...",
|
||||
"credentials.toast.connectionFailed": "Connection échoué - check credentials",
|
||||
"credentials.toast.connectionFailed": "Échec de la connexion - vérifiez les identifiants",
|
||||
"credentials.tab.ftp": "Accès FTP",
|
||||
"credentials.tab.ssh": "Accès SSH",
|
||||
"credentials.ftp.title": "Publication FTP",
|
||||
@@ -230,14 +230,14 @@
|
||||
"credentials.ssh.placeholder.keyPath": "~/.ssh/ma_cle",
|
||||
"gitSidebar.header": "CONTRÔLE DE SOURCE",
|
||||
"gitSidebar.loading": "Chargement...",
|
||||
"gitSidebar.error.fetchRemoteUpdates": "Échec de fetch remote updates.",
|
||||
"gitSidebar.error.fetchRemoteUpdates": "Impossible de récupérer les mises à jour distantes.",
|
||||
"gitSidebar.error.refreshRemoteState": "Impossible d’actualiser l’état de suivi distant.",
|
||||
"gitSidebar.error.gitMissing": "Exécutable Git introuvable. Veuillez installer Git et redémarrer l’application.",
|
||||
"gitSidebar.error.noActiveProject": "Aucun projet actif sélectionné.",
|
||||
"gitSidebar.error.loadRepoStatus": "Impossible de charger l’état du dépôt.",
|
||||
"gitSidebar.error.initFailed": "Échec de initialize git repository.",
|
||||
"gitSidebar.error.initFailed": "Impossible d’initialiser le dépôt Git.",
|
||||
"gitSidebar.error.actionFailed": "Échec de {action}.",
|
||||
"gitSidebar.error.commitFailed": "Échec de commit changes.",
|
||||
"gitSidebar.error.commitFailed": "Impossible de valider les modifications.",
|
||||
"gitSidebar.progress.preparingInit": "Préparation de l’initialisation du dépôt...",
|
||||
"gitSidebar.progress.pushingRemote": "Envoi des commits vers le distant... cela peut prendre un moment pour les gros envois.",
|
||||
"gitSidebar.progress.fetching": "Récupération des mises à jour distantes...",
|
||||
@@ -265,7 +265,7 @@
|
||||
"gitSidebar.action.committing": "Commit en cours...",
|
||||
"gitSidebar.action.initializeGit": "Initialiser Git",
|
||||
"gitSidebar.action.initializing": "Initialisation...",
|
||||
"gitSidebar.openChanges": "Ouvrir Changes ({count})",
|
||||
"gitSidebar.openChanges": "Modifications ouvertes ({count})",
|
||||
"gitSidebar.versionHistory": "Historique des versions ({count})",
|
||||
"gitSidebar.loadingChanges": "Chargement des modifications...",
|
||||
"gitSidebar.noChanges": "Aucune modification",
|
||||
@@ -286,16 +286,16 @@
|
||||
"tabBar.scrollLeft": "Faire défiler les onglets vers la gauche",
|
||||
"tabBar.scrollRight": "Faire défiler les onglets vers la droite",
|
||||
"tabBar.commitTitle": "Validation {hash}",
|
||||
"tabBar.error.fetchPostTitle": "Échec de fetch article title:",
|
||||
"tabBar.error.fetchChatTitle": "Échec de fetch chat title:",
|
||||
"tabBar.error.fetchImportTitle": "Échec de fetch import definition title:",
|
||||
"tabBar.error.fetchCommitTitle": "Échec de fetch commit titles:",
|
||||
"tabBar.error.fetchPostTitle": "Impossible de charger le titre de l’article :",
|
||||
"tabBar.error.fetchChatTitle": "Impossible de charger le titre du chat :",
|
||||
"tabBar.error.fetchImportTitle": "Impossible de charger le titre de la définition d’import :",
|
||||
"tabBar.error.fetchCommitTitle": "Impossible de charger les titres des commits :",
|
||||
"metadataDiff.title": "Outil de diff des métadonnées",
|
||||
"metadataDiff.description": "Compare article metadata between database and markdown files. Fix inconsistencies caused by bugs or manual edits.",
|
||||
"metadataDiff.error.loadStats": "Échec de load database statistics",
|
||||
"metadataDiff.error.scan": "Échec de scan for differences",
|
||||
"metadataDiff.description": "Compare les métadonnées des articles entre la base de données et les fichiers Markdown. Corrige les incohérences causées par des bugs ou des modifications manuelles.",
|
||||
"metadataDiff.error.loadStats": "Impossible de charger les statistiques de la base de données",
|
||||
"metadataDiff.error.scan": "Impossible d’analyser les différences",
|
||||
"metadataDiff.progress.starting": "Démarrage de l’analyse...",
|
||||
"metadataDiff.progress.scanningPublished": "Scanning published articles...",
|
||||
"metadataDiff.progress.scanningPublished": "Analyse des articles publiés...",
|
||||
"metadataDiff.progress.scanning": "Analyse en cours...",
|
||||
"metadataDiff.action.scan": "Analyser les différences",
|
||||
"metadataDiff.action.rescan": "Relancer l’analyse",
|
||||
@@ -303,112 +303,238 @@
|
||||
"metadataDiff.stats.published": "Publiés",
|
||||
"metadataDiff.stats.drafts": "Brouillons",
|
||||
"metadataDiff.stats.mediaFiles": "Fichiers média",
|
||||
"metadataDiff.summary.noDiffs": "✅ No differences found! All {total} published articles are in sync.",
|
||||
"metadataDiff.summary.withDiffs": "⚠️ Found {count} articles with differences out of {total} published articles.",
|
||||
"metadataDiff.summary.noDiffs": "✅ Aucune différence trouvée ! Les {total} articles publiés sont synchronisés.",
|
||||
"metadataDiff.summary.withDiffs": "⚠️ {count} articles présentent des différences sur {total} articles publiés.",
|
||||
"metadataDiff.group.differences": "Différences de {label}",
|
||||
"metadataDiff.group.postsCount": "{count} articles",
|
||||
"metadataDiff.sync.failed": "échoué",
|
||||
"metadataDiff.sync.dbToFile.title": "Mettre à jour les fichiers avec les valeurs de la base",
|
||||
"metadataDiff.sync.dbToFile.success": "Synced {success} articles to files{échoué}",
|
||||
"metadataDiff.sync.dbToFile.error": "Échec de sync to files",
|
||||
"metadataDiff.sync.dbToFile.success": "{success} articles synchronisés vers les fichiers{échoué}",
|
||||
"metadataDiff.sync.dbToFile.error": "Échec de la synchronisation vers les fichiers",
|
||||
"metadataDiff.sync.fileToDb.title": "Mettre à jour la base avec les valeurs des fichiers",
|
||||
"metadataDiff.sync.fileToDb.success": "Synced {success} files to database{échoué}",
|
||||
"metadataDiff.sync.fileToDb.error": "Échec de sync to database",
|
||||
"metadataDiff.sync.fileToDb.success": "{success} fichiers synchronisés vers la base de données{échoué}",
|
||||
"metadataDiff.sync.fileToDb.error": "Échec de la synchronisation vers la base de données",
|
||||
"metadataDiff.value.database": "Base de données",
|
||||
"metadataDiff.value.file": "Fichier",
|
||||
"metadataDiff.empty": "Cliquez sur « Rechercher les différences » pour comparer les métadonnées de la base et celles des fichiers.",
|
||||
"sidebar.archive": "Archive",
|
||||
"sidebar.clearFilter": "Clear filter",
|
||||
"sidebar.tags": "Tags",
|
||||
"sidebar.categories": "Categories",
|
||||
"sidebar.clearTags": "Clear tags",
|
||||
"sidebar.clearCategories": "Clear categories",
|
||||
"sidebar.noPostsYet": "No posts yet",
|
||||
"sidebar.noPagesYet": "No pages yet",
|
||||
"sidebar.noMediaYet": "No media yet",
|
||||
"sidebar.search": "Search",
|
||||
"sidebar.searchPostsPlaceholder": "Search posts...",
|
||||
"sidebar.searchPagesPlaceholder": "Search pages...",
|
||||
"sidebar.searchMediaPlaceholder": "Search media...",
|
||||
"sidebar.toggleFilters": "Toggle Filters",
|
||||
"sidebar.newPost": "New Post",
|
||||
"sidebar.importMedia": "Import media",
|
||||
"sidebar.results": "{count} results",
|
||||
"sidebar.resultsFor": "{count} results for \"{query}\"",
|
||||
"sidebar.clearFilters": "Clear filters",
|
||||
"sidebar.drafts": "Drafts",
|
||||
"sidebar.published": "Published",
|
||||
"sidebar.archived": "Archived",
|
||||
"sidebar.untitled": "Untitled",
|
||||
"sidebar.noMatchingPosts": "No matching posts",
|
||||
"sidebar.createFirstPost": "Create your first post",
|
||||
"sidebar.loadMore": "Load more ({loaded} of {total})",
|
||||
"sidebar.loading": "Loading...",
|
||||
"sidebar.noMediaFiles": "No media files",
|
||||
"sidebar.settingsHeader": "Settings",
|
||||
"sidebar.tagsHeader": "Tags",
|
||||
"sidebar.nav.project": "Project",
|
||||
"sidebar.nav.editor": "Editor",
|
||||
"sidebar.nav.content": "Content",
|
||||
"sidebar.nav.ai": "AI Assistant",
|
||||
"sidebar.nav.publishing": "Publishing",
|
||||
"sidebar.nav.data": "Data",
|
||||
"sidebar.clearFilter": "Effacer le filtre",
|
||||
"sidebar.tags": "Étiquettes",
|
||||
"sidebar.categories": "Catégories",
|
||||
"sidebar.clearTags": "Effacer les étiquettes",
|
||||
"sidebar.clearCategories": "Effacer les catégories",
|
||||
"sidebar.noPostsYet": "Aucun article pour le moment",
|
||||
"sidebar.noPagesYet": "Aucune page pour le moment",
|
||||
"sidebar.noMediaYet": "Aucun média pour le moment",
|
||||
"sidebar.search": "Rechercher",
|
||||
"sidebar.searchPostsPlaceholder": "Rechercher des articles...",
|
||||
"sidebar.searchPagesPlaceholder": "Rechercher des pages...",
|
||||
"sidebar.searchMediaPlaceholder": "Rechercher des médias...",
|
||||
"sidebar.toggleFilters": "Afficher/masquer les filtres",
|
||||
"sidebar.newPost": "Nouvel article",
|
||||
"sidebar.importMedia": "Importer des médias",
|
||||
"sidebar.results": "{count} résultats",
|
||||
"sidebar.resultsFor": "{count} résultats pour \"{query}\"",
|
||||
"sidebar.clearFilters": "Effacer les filtres",
|
||||
"sidebar.drafts": "Brouillons",
|
||||
"sidebar.published": "Publiés",
|
||||
"sidebar.archived": "Archivés",
|
||||
"sidebar.untitled": "Sans titre",
|
||||
"sidebar.noMatchingPosts": "Aucun article correspondant",
|
||||
"sidebar.createFirstPost": "Créer votre premier article",
|
||||
"sidebar.loadMore": "Charger plus ({loaded} sur {total})",
|
||||
"sidebar.loading": "Chargement...",
|
||||
"sidebar.noMediaFiles": "Aucun fichier média",
|
||||
"sidebar.settingsHeader": "Paramètres",
|
||||
"sidebar.tagsHeader": "Étiquettes",
|
||||
"sidebar.nav.project": "Projet",
|
||||
"sidebar.nav.editor": "Éditeur",
|
||||
"sidebar.nav.content": "Contenu",
|
||||
"sidebar.nav.ai": "Assistant IA",
|
||||
"sidebar.nav.publishing": "Publication",
|
||||
"sidebar.nav.data": "Données",
|
||||
"sidebar.nav.style": "Style",
|
||||
"sidebar.tagCloud": "Tag Cloud",
|
||||
"sidebar.createEdit": "Create & Edit",
|
||||
"sidebar.mergeTags": "Merge Tags",
|
||||
"settings.project.descriptionGeneral": "General settings for the active blog project.",
|
||||
"settings.project.nameLabel": "Project Name",
|
||||
"settings.project.nameDescription": "The display name of your blog project.",
|
||||
"settings.project.namePlaceholder": "My Blog",
|
||||
"sidebar.tagCloud": "Nuage d’étiquettes",
|
||||
"sidebar.createEdit": "Créer & modifier",
|
||||
"sidebar.mergeTags": "Fusionner les étiquettes",
|
||||
"settings.project.descriptionGeneral": "Paramètres généraux du projet de blog actif.",
|
||||
"settings.project.nameLabel": "Nom du projet",
|
||||
"settings.project.nameDescription": "Nom d’affichage de votre projet de blog.",
|
||||
"settings.project.namePlaceholder": "Mon blog",
|
||||
"settings.project.descriptionLabel": "Description",
|
||||
"settings.project.descriptionDescription": "A short description of your blog. This can be used in templates and metadata.",
|
||||
"settings.project.descriptionPlaceholder": "A blog about...",
|
||||
"settings.project.dataPathLabel": "Project Data Path",
|
||||
"settings.project.dataPathDescription": "Custom folder for storing posts, media, and metadata. Leave empty to use the default location: {path}",
|
||||
"settings.project.defaultLocation": "Default location",
|
||||
"settings.project.publicUrlLabel": "Public URL",
|
||||
"settings.project.publicUrlDescription": "The public base URL of your published blog (used for sitemap generation).",
|
||||
"settings.project.descriptionDescription": "Courte description de votre blog. Elle peut être utilisée dans les modèles et métadonnées.",
|
||||
"settings.project.descriptionPlaceholder": "Un blog sur...",
|
||||
"settings.project.dataPathLabel": "Chemin des données du projet",
|
||||
"settings.project.dataPathDescription": "Dossier personnalisé pour stocker les articles, médias et métadonnées. Laissez vide pour utiliser l’emplacement par défaut : {path}",
|
||||
"settings.project.defaultLocation": "Emplacement par défaut",
|
||||
"settings.project.publicUrlLabel": "URL publique",
|
||||
"settings.project.publicUrlDescription": "URL de base publique de votre blog publié (utilisée pour générer le sitemap).",
|
||||
"settings.project.publicUrlPlaceholder": "https://example.com",
|
||||
"settings.project.mainLanguageLabel": "Main Language",
|
||||
"settings.project.mainLanguageDescription": "The primary language for your blog content. AI-generated titles, alt text, and captions will use this language.",
|
||||
"settings.project.defaultAuthorLabel": "Default Author",
|
||||
"settings.project.defaultAuthorDescription": "The default author name for new posts and media. Can be overridden per item.",
|
||||
"settings.project.defaultAuthorPlaceholder": "Author Name",
|
||||
"settings.project.maxPostsPerPageLabel": "Max Posts Per Page",
|
||||
"settings.project.maxPostsPerPageDescription": "Maximum number of posts shown per preview route page.",
|
||||
"settings.project.saveButton": "Save Project Settings",
|
||||
"editor.loadingPost": "Loading post...",
|
||||
"editor.unsavedChanges": "Unsaved changes (auto-saves on switch)",
|
||||
"editor.saving": "Saving...",
|
||||
"editor.publish": "Publish",
|
||||
"editor.publishTitle": "Save and make this post public",
|
||||
"editor.discardChanges": "Discard Changes",
|
||||
"editor.discardDraft": "Discard Draft",
|
||||
"editor.discardChangesTitle": "Revert to last published version",
|
||||
"editor.discardDraftTitle": "Delete this draft permanently",
|
||||
"editor.delete": "Delete",
|
||||
"editor.deleteTitle": "Delete this post permanently",
|
||||
"editor.field.title": "Title",
|
||||
"editor.field.tags": "Tags",
|
||||
"editor.field.author": "Author",
|
||||
"settings.project.mainLanguageLabel": "Langue principale",
|
||||
"settings.project.mainLanguageDescription": "Langue principale de votre contenu. Les titres, textes alternatifs et légendes générés par l’IA utiliseront cette langue.",
|
||||
"settings.project.defaultAuthorLabel": "Auteur par défaut",
|
||||
"settings.project.defaultAuthorDescription": "Nom d’auteur par défaut pour les nouveaux articles et médias. Peut être remplacé par élément.",
|
||||
"settings.project.defaultAuthorPlaceholder": "Nom de l’auteur",
|
||||
"settings.project.maxPostsPerPageLabel": "Nombre max d’articles par page",
|
||||
"settings.project.maxPostsPerPageDescription": "Nombre maximum d’articles affichés par page de route d’aperçu.",
|
||||
"settings.project.saveButton": "Enregistrer les paramètres du projet",
|
||||
"editor.loadingPost": "Chargement de l’article...",
|
||||
"editor.unsavedChanges": "Modifications non enregistrées (enregistrement auto au changement)",
|
||||
"editor.saving": "Enregistrement...",
|
||||
"editor.publish": "Publier",
|
||||
"editor.publishTitle": "Enregistrer et publier cet article",
|
||||
"editor.discardChanges": "Annuler les modifications",
|
||||
"editor.discardDraft": "Supprimer le brouillon",
|
||||
"editor.discardChangesTitle": "Revenir à la dernière version publiée",
|
||||
"editor.discardDraftTitle": "Supprimer définitivement ce brouillon",
|
||||
"editor.delete": "Supprimer",
|
||||
"editor.deleteTitle": "Supprimer définitivement cet article",
|
||||
"editor.field.title": "Titre",
|
||||
"editor.field.tags": "Étiquettes",
|
||||
"editor.field.author": "Auteur",
|
||||
"editor.field.slug": "Slug",
|
||||
"editor.field.categories": "Categories",
|
||||
"editor.field.content": "Content",
|
||||
"editor.placeholder.tags": "Add tags...",
|
||||
"editor.placeholder.author": "Author name",
|
||||
"editor.placeholder.categories": "Add categories...",
|
||||
"editor.placeholder.startWriting": "Start writing...",
|
||||
"editor.mode.visual": "Visual",
|
||||
"editor.mode.visualTitle": "Visual editor",
|
||||
"editor.mode.markdownTitle": "Markdown source",
|
||||
"editor.mode.previewTitle": "Read-only preview",
|
||||
"editor.galleryTitle": "View {count} image(s)",
|
||||
"editor.insertPostLinkTitle": "Link to post (Ctrl+K)",
|
||||
"editor.insertMediaTitle": "Insert image from media library",
|
||||
"editor.previewFrameTitle": "Post preview",
|
||||
"editor.previewLoading": "Loading preview...",
|
||||
"editor.footer.created": "Created",
|
||||
"editor.footer.updated": "Updated",
|
||||
"editor.footer.published": "Published"
|
||||
"editor.field.categories": "Catégories",
|
||||
"editor.field.content": "Contenu",
|
||||
"editor.placeholder.tags": "Ajouter des étiquettes...",
|
||||
"editor.placeholder.author": "Nom de l’auteur",
|
||||
"editor.placeholder.categories": "Ajouter des catégories...",
|
||||
"editor.placeholder.startWriting": "Commencez à écrire...",
|
||||
"editor.mode.visual": "Visuel",
|
||||
"editor.mode.visualTitle": "Éditeur visuel",
|
||||
"editor.mode.markdownTitle": "Source Markdown",
|
||||
"editor.mode.previewTitle": "Aperçu en lecture seule",
|
||||
"editor.galleryTitle": "Voir {count} image(s)",
|
||||
"editor.insertPostLinkTitle": "Lier à un article (Ctrl+K)",
|
||||
"editor.insertMediaTitle": "Insérer une image depuis la bibliothèque média",
|
||||
"editor.previewFrameTitle": "Aperçu de l’article",
|
||||
"editor.previewLoading": "Chargement de l’aperçu...",
|
||||
"editor.footer.created": "Créé",
|
||||
"editor.footer.updated": "Mis à jour",
|
||||
"editor.footer.published": "Publié",
|
||||
"projectSelector.switchProject": "Changer de projet",
|
||||
"projectSelector.selectProject": "Sélectionner un projet",
|
||||
"projectSelector.projectsHeader": "Projets",
|
||||
"projectSelector.noProjectsYet": "Aucun projet pour le moment",
|
||||
"projectSelector.newProject": "Nouveau projet",
|
||||
"projectSelector.createNewProject": "Créer un nouveau projet",
|
||||
"projectSelector.projectName": "Nom du projet",
|
||||
"projectSelector.projectNamePlaceholder": "Mon blog",
|
||||
"projectSelector.descriptionOptional": "Description (facultative)",
|
||||
"projectSelector.descriptionPlaceholder": "Brève description du projet...",
|
||||
"projectSelector.projectLocation": "Emplacement du projet",
|
||||
"projectSelector.useDefaultLocation": "Utiliser l'emplacement par défaut",
|
||||
"projectSelector.defaultInternalStorage": "Par défaut (stockage interne)",
|
||||
"projectSelector.chooseFolder": "Choisir un dossier...",
|
||||
"projectSelector.projectLocationHint": "Choisissez un dossier personnalisé pour la sauvegarde cloud, ou utilisez l'emplacement interne par défaut.",
|
||||
"projectSelector.createProject": "Créer le projet",
|
||||
"projectSelector.deleteProject": "Supprimer le projet",
|
||||
"projectSelector.deleteWarning": "Cela supprimera définitivement le projet \"{name}\" et toutes ses données, y compris :",
|
||||
"projectSelector.deleteItemPosts": "Tous les articles",
|
||||
"projectSelector.deleteItemMedia": "Tous les médias",
|
||||
"projectSelector.deleteItemSettings": "Tous les paramètres du projet",
|
||||
"projectSelector.typeToConfirm": "Saisissez {name} pour confirmer la suppression :",
|
||||
"projectSelector.selectProjectLocation": "Sélectionner l'emplacement du projet",
|
||||
"projectSelector.deleteProjectTitle": "Supprimer {name}",
|
||||
"projectSelector.toast.switched": "Projet actif : {name}",
|
||||
"projectSelector.toast.switchFailed": "Échec du changement de projet",
|
||||
"projectSelector.toast.created": "Projet \"{name}\" créé",
|
||||
"projectSelector.toast.createFailed": "Impossible de créer le projet",
|
||||
"projectSelector.toast.existingSettingsFound": "Paramètres de projet existants détectés",
|
||||
"projectSelector.toast.selectFolderFailed": "Échec de la sélection du dossier",
|
||||
"projectSelector.toast.deletedWithData": "Projet \"{name}\" et toutes ses données supprimés",
|
||||
"projectSelector.toast.deleteFailed": "Impossible de supprimer le projet",
|
||||
"tagsView.title": "Gestion des tags",
|
||||
"tagsView.subtitle": "Gérez les tags du blog, attribuez des couleurs et lancez des actions groupées.",
|
||||
"tagsView.loadingTags": "Chargement des tags...",
|
||||
"tagsView.noTagsFound": "Aucun tag trouvé",
|
||||
"tagsView.discoverFromPosts": "Découvrir les tags à partir des articles",
|
||||
"tagsView.selectedCount": "{count} tag(s) sélectionné(s)",
|
||||
"tagsView.clearSelection": "Effacer la sélection",
|
||||
"tagsView.cloud.title": "Nuage de tags",
|
||||
"tagsView.cloud.description": "Cliquez sur les tags pour les sélectionner. Survolez-les pour voir le nombre d'articles.",
|
||||
"tagsView.manage.title": "Créer et modifier des tags",
|
||||
"tagsView.manage.description": "Créez de nouveaux tags ou modifiez les existants. Attribuez des couleurs pour mieux les distinguer.",
|
||||
"tagsView.create.title": "Créer un tag",
|
||||
"tagsView.create.action": "Créer",
|
||||
"tagsView.tagNamePlaceholder": "Nom du tag",
|
||||
"tagsView.chooseColor": "Choisir une couleur",
|
||||
"tagsView.removeColor": "Supprimer la couleur",
|
||||
"tagsView.edit.title": "Modifier le tag : {name}",
|
||||
"tagsView.edit.action": "Modifier",
|
||||
"tagsView.deleteAction": "Supprimer",
|
||||
"tagsView.merge.title": "Fusionner des tags",
|
||||
"tagsView.merge.description": "Sélectionnez plusieurs tags ci-dessus puis fusionnez-les en un seul. Tous les articles seront mis à jour.",
|
||||
"tagsView.merge.selectAtLeastTwo": "Sélectionnez au moins 2 tags dans le nuage pour les fusionner.",
|
||||
"tagsView.merge.countInto": "Fusionner {count} tags vers :",
|
||||
"tagsView.merge.selectTarget": "Sélectionner le tag cible...",
|
||||
"tagsView.merge.action": "Fusionner les tags",
|
||||
"tagsView.merge.tagsToDelete": "Tags à supprimer : {tags}",
|
||||
"tagsView.sync.title": "Synchroniser les tags",
|
||||
"tagsView.sync.description": "Découvrir les tags présents dans les articles mais absents de la base de tags.",
|
||||
"tagsView.sync.action": "Synchroniser les tags depuis les articles",
|
||||
"tagsView.confirmDelete.title": "Supprimer le tag",
|
||||
"tagsView.confirmDelete.message": "Voulez-vous vraiment supprimer le tag \"{tagName}\" ? Il sera retiré de tous les articles. Cette action s'exécute en tâche de fond.",
|
||||
"tagsView.confirmDelete.action": "Supprimer le tag",
|
||||
"tagsView.confirmMerge.title": "Fusionner des tags",
|
||||
"tagsView.confirmMerge.message": "Voulez-vous vraiment fusionner {count} tag(s) vers \"{target}\" ? Les tags source seront supprimés et tous les articles seront mis à jour. Cette action s'exécute en tâche de fond.",
|
||||
"tagsView.confirmMerge.action": "Fusionner les tags",
|
||||
"tagsView.none": "(aucun)",
|
||||
"tagsView.tagCountTitle": "{count} {item}",
|
||||
"tagsView.postsSingular": "article",
|
||||
"tagsView.postsPlural": "articles",
|
||||
"tagsView.toast.tagNameRequired": "Le nom du tag est requis",
|
||||
"tagsView.toast.tagCreated": "Tag créé",
|
||||
"tagsView.toast.tagDeleted": "Tag supprimé. {postsUpdated} article(s) mis à jour.",
|
||||
"tagsView.toast.tagUpdated": "Tag mis à jour",
|
||||
"tagsView.toast.targetTagNotFound": "Tag cible introuvable",
|
||||
"tagsView.toast.noSourceTagsToMerge": "Aucun tag source à fusionner",
|
||||
"tagsView.toast.tagsMerged": "{tagsDeleted} tag(s) fusionné(s) vers \"{targetTag}\". {postsUpdated} article(s) mis à jour.",
|
||||
"tagsView.toast.discoveredTags": "{count} nouveau(x) tag(s) découvert(s)",
|
||||
"tagsView.toast.alreadySynced": "Tous les tags sont déjà synchronisés",
|
||||
"tagsView.error.deleteFailedTitle": "Échec de la suppression",
|
||||
"tagsView.error.mergeFailedTitle": "Échec de la fusion",
|
||||
"linkedMediaPanel.title": "📷 Médias liés",
|
||||
"linkedMediaPanel.collapsedTitle": "📷 Médias ({count})",
|
||||
"linkedMediaPanel.importAndLink": "Importer et lier des médias",
|
||||
"linkedMediaPanel.linkExisting": "Lier un média existant",
|
||||
"linkedMediaPanel.selectMediaToLink": "Sélectionner les médias à lier",
|
||||
"linkedMediaPanel.searchPlaceholder": "Rechercher des médias...",
|
||||
"linkedMediaPanel.noUnlinkedMedia": "Aucun média non lié disponible",
|
||||
"linkedMediaPanel.noMediaLinked": "Aucun média lié à cet article",
|
||||
"linkedMediaPanel.importMedia": "Importer des médias",
|
||||
"linkedMediaPanel.unlinkFromPost": "Délier de l'article",
|
||||
"linkedMediaPanel.toast.importedLinked": "{count} fichier(s) importé(s) et lié(s)",
|
||||
"linkedMediaPanel.toast.importFailed": "Échec de l'import des médias",
|
||||
"linkedMediaPanel.toast.unlinked": "Média délié de l'article",
|
||||
"linkedMediaPanel.toast.unlinkFailed": "Échec du déliage du média",
|
||||
"linkedMediaPanel.toast.linked": "Média lié à l'article",
|
||||
"linkedMediaPanel.toast.linkFailed": "Échec de la liaison du média",
|
||||
"styleView.title": "Style",
|
||||
"styleView.subtitle": "Sélectionnez un thème Pico CSS et prévisualisez les principaux articles avant application.",
|
||||
"styleView.themePickerAria": "Sélecteur de thème Pico",
|
||||
"styleView.previewMode": "Mode d'aperçu",
|
||||
"styleView.mode.auto": "Auto",
|
||||
"styleView.mode.light": "Clair",
|
||||
"styleView.mode.dark": "Sombre",
|
||||
"styleView.applyTheme": "Appliquer le thème",
|
||||
"styleView.themePreviewTitle": "Aperçu du thème",
|
||||
"styleView.toast.appliedTheme": "Thème appliqué : {theme}",
|
||||
"styleView.toast.applyThemeFailed": "Échec de l'application du thème",
|
||||
"panel.tabsAria": "Onglets du panneau",
|
||||
"panel.output": "Sortie",
|
||||
"panel.postLinks": "Liens d'articles",
|
||||
"panel.gitLog": "Journal Git",
|
||||
"panel.closeTitle": "Fermer le panneau",
|
||||
"panel.noRecentTasks": "Aucune tâche récente",
|
||||
"panel.noOutput": "Aucune sortie",
|
||||
"panel.openPostEditor": "Ouvrez un éditeur d'article pour voir les liens",
|
||||
"panel.loadingPostLinks": "Chargement des liens d'articles...",
|
||||
"panel.noPostLinks": "Aucun lien pour cet article",
|
||||
"panel.openPostOrMediaEditor": "Ouvrez un éditeur d'article ou de média pour voir le journal Git",
|
||||
"panel.loadingGitLog": "Chargement du journal Git...",
|
||||
"panel.noCommits": "Aucun commit trouvé pour cet élément",
|
||||
"panel.error.loadPostLinks": "Impossible de charger les liens d'articles.",
|
||||
"panel.error.loadGitLog": "Impossible de charger le journal Git.",
|
||||
"panel.direction.from": "depuis",
|
||||
"panel.direction.to": "vers"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user