diff --git a/gulpfile.ts b/gulpfile.ts index bdc20089c..b394e4f44 100644 --- a/gulpfile.ts +++ b/gulpfile.ts @@ -45,7 +45,7 @@ gulp.task('build:copy:locales', cb => { }); gulp.task('build:client:script', () => { - return gulp.src(['./src/server/web/boot.js']) + return gulp.src(['./src/server/web/boot.js', './src/server/web/bios.js', './src/server/web/cli.js']) .pipe(replace('VERSION', JSON.stringify(meta.version))) .pipe(replace('LANGS', JSON.stringify(Object.keys(locales)))) .pipe(terser({ @@ -55,7 +55,7 @@ gulp.task('build:client:script', () => { }); gulp.task('build:client:style', () => { - return gulp.src(['./src/server/web/style.css']) + return gulp.src(['./src/server/web/style.css', './src/server/web/bios.css', './src/server/web/cli.css']) .pipe(cssnano()) .pipe(gulp.dest('./built/server/web/')); }); diff --git a/locales/fr-FR.yml b/locales/fr-FR.yml index c2b252152..a3cd8a4fa 100644 --- a/locales/fr-FR.yml +++ b/locales/fr-FR.yml @@ -17,7 +17,7 @@ noNotes: "Aucune note" noNotifications: "Aucune notification" instance: "Instance" settings: "Paramètres" -basicSettings: "Paramètres basiques" +basicSettings: "Paramètres généraux" otherSettings: "Autres paramètres" openInWindow: "Ouvrir dans une nouvelle fenêtre" profile: "Profil" @@ -34,7 +34,7 @@ addUser: "Ajouter un·e utilisateur·rice" favorite: "Ajouter aux favoris" favorites: "Favoris" unfavorite: "Retirer des favoris" -favorited: "Ajouter à mes favoris" +favorited: "Ajouté à mes favoris" alreadyFavorited: "Déjà ajouté aux favoris." cantFavorite: "Impossible d'ajouter aux favoris." pin: "Épingler sur le profil" @@ -62,7 +62,7 @@ import: "Importer" export: "Exporter" files: "Fichiers" download: "Télécharger" -driveFileDeleteConfirm: "Êtes-vous sûr·e de vouloir supprimer le fichier \"{name}\" ? Les notes avec ce fichier joint seront aussi supprimées." +driveFileDeleteConfirm: "Êtes-vous sûr·e de vouloir supprimer le fichier \"{name}\" ? Les notes liées à ce fichier seront aussi supprimées." unfollowConfirm: "Désirez-vous vous désabonner de {name} ?" exportRequested: "Vous avez demandé une exportation. L’opération pourrait prendre un peu de temps. Une terminée, le fichier résultant sera ajouté au Drive." importRequested: "Vous avez initié un import. Cela pourrait prendre un peu de temps." @@ -88,12 +88,13 @@ follow: "S’abonner" followRequest: "Demande d’abonnement" followRequests: "Demandes d’abonnement" unfollow: "Se désabonner" -followRequestPending: "En attente d’approbation" -enterEmoji: "ou entrez un émoji" -renote: "Renote" -unrenote: "Annuler Renote" -renoted: "Republier" +followRequestPending: "Demande d'abonnement en attente de confirmation" +enterEmoji: "Insérer un émoji" +renote: "Partager" +unrenote: "Annuler le partage" +renoted: "Republié !" cantRenote: "Ce message ne peut pas être republié." +cantReRenote: "Impossible de repartager un partage." quote: "Citer" pinnedNote: "Note épinglée" pinned: "Épingler sur le profil" @@ -103,13 +104,14 @@ sensitive: "Contenu sensible" add: "Ajouter" reaction: "Réactions" reactionSettingDescription: "Choisissez vos réactions préférées que vous souhaitez épingler dans le sélecteur de réactions." +reactionSettingDescription2: "Déplacer pour réorganiser, cliquer pour effacer, utiliser « + » pour ajouter." rememberNoteVisibility: "Se souvenir de la visibilité des notes" attachCancel: "Supprimer le fichier attaché" markAsSensitive: "Marquer comme sensible" -unmarkAsSensitive: "Enlever le marquage comme sensible" +unmarkAsSensitive: "Supprimer le marquage comme sensible" enterFileName: "Entrer le nom du fichier" mute: "Mettre en sourdine" -unmute: "Enlever la sourdine" +unmute: "Ne plus masquer" block: "Bloquer" unblock: "Débloquer" suspend: "Suspendre" @@ -122,7 +124,7 @@ selectList: "Sélectionner une liste" selectAntenna: "Sélectionner une antenne" selectWidget: "Sélectionner un widget" editWidgets: "Modifier les widgets" -editWidgetsExit: "Fait" +editWidgetsExit: "Valider les modifications" customEmojis: "Émojis personnalisés" emoji: "Émoji" emojiName: "Nom de l’émoji" @@ -132,9 +134,9 @@ settingGuide: "Configuration proposée" cacheRemoteFiles: "Mise en cache des fichiers distants" cacheRemoteFilesDescription: "Lorsque cette option est désactivée, les fichiers distants sont chargés directement depuis l’instance distante. La désactiver diminuera certes l’utilisation de l’espace de stockage local mais augmentera le trafic réseau puisque les miniatures ne seront plus générées." flagAsBot: "Ce compte est un robot" -flagAsBotDescription: "Si ce compte est contrôlé par un programme, définissez cette option. Si elle est activée, elle agira comme un marqueur pour les autres développeurs afin d'éviter des chaînes d'interaction sans fin avec d'autres robots et d'ajuster les systèmes internes de Misskey pour traiter ce compte comme un robot." +flagAsBotDescription: "Si ce compte est géré de manière automatisée , définissez cette option. Si elle est activée, elle agira comme un marqueur pour les autres développeurs afin d'éviter des chaînes d'interaction sans fin avec d'autres robots et d'ajuster les systèmes internes de Misskey pour traiter ce compte comme un robot." flagAsCat: "Ce compte est un chat" -flagAsCatDescription: "Activez cette option pour que ce compte soit marqué comme un chat." +flagAsCatDescription: "Vous pouvez activer l'option \"Je suis un chat \" pour ce compte." autoAcceptFollowed: "Accepter automatiquement les demandes d’abonnement venant d’utilisateur·rice·s que vous suivez" addAcount: "Ajouter un compte" loginFailed: "Échec de la connexion" @@ -150,7 +152,7 @@ proxyAccount: "Compte proxy" proxyAccountDescription: "Un compte proxy se comporte, dans certaines conditions, comme un·e abonné·e distant·e pour les utilisateurs d'autres instances. Par exemple, quand un·e utilisateur·rice ajoute un·e utilisateur·rice distant·e à une liste, ses notes ne seront pas visibles sur l'instance si personne ne suit cet·te utilisateur·rice. Le compte proxy va donc suivre cet·te utilisateur·rice pour que ses notes soient acheminées." host: "Hôte" selectUser: "Sélectionner un·e utilisateur·rice" -recipient: "Correspondant·e" +recipient: "Destinataire" annotation: "Commentaires" federation: "Fédération" instances: "Instance" @@ -169,7 +171,7 @@ software: "Logiciel" version: "Version" metadata: "Métadonnées" withNFiles: "{n} fichier(s)" -monitor: "Écran de contrôle" +monitor: "Contrôle" jobQueue: "File d’attente" cpuAndMemory: "Processeur et mémoire" network: "Réseau" @@ -178,9 +180,9 @@ instanceInfo: "Informations sur l’instance" statistics: "Statistiques" clearQueue: "Vider la file d’attente" clearQueueConfirmTitle: "Êtes-vous sûr·e de vouloir vider la file d’attente ?" -clearQueueConfirmText: "Les notes non distribuées ne seront pas livrées. Normalement, vous n'avez PAS besoin d'effectuer cette opération." +clearQueueConfirmText: "Les notes non distribuées ne seront pas délivrées. Normalement, vous n'avez pas besoin d'effectuer cette opération." clearCachedFiles: "Vider le cache" -clearCachedFilesConfirm: "Êtes-vous sûr·e de vouloir vider le cache de fichiers distants ?" +clearCachedFilesConfirm: "Êtes-vous sûr·e de vouloir vider tout le cache de fichiers distants ?" blockedInstances: "Instances bloquées" blockedInstancesDescription: "Listez les instances que vous désirez bloquer, une par ligne. Ces instances ne seront plus en capacité d'interagir avec votre instance." muteAndBlock: "Masqué·e·s / Bloqué·e·s" @@ -193,7 +195,7 @@ pinLimitExceeded: "Vous ne pouvez plus épingler d’autres notes." intro: "L’installation de Misskey est terminée ! Veuillez créer un compte administrateur." done: "Terminé" processing: "Traitement en cours" -preview: "Prévisualisation" +preview: "Aperçu" default: "Par défaut" noCustomEmojis: "Il n'y a pas d’émoji" noJobs: "Il n’y a aucune tâche planifiée" @@ -204,7 +206,7 @@ all: "Tous" subscribing: "Abonné" publishing: "Publié" notResponding: "Ne répond pas" -instanceFollowing: "Abonnements une instance" +instanceFollowing: "Suivre une instance" instanceFollowers: "Abonné·e·s de l’instance" instanceUsers: "Utilisateur·rice·s de cette l’instance" changePassword: "Modifier votre mot de passe" @@ -217,15 +219,15 @@ attachFile: "Joindre un fichier" more: "Plus !" featured: "Tendances" usernameOrUserId: "Nom d’utilisateur·rice ou ID utilisateur" -noSuchUser: "Utilisateur·rice non trouvé" +noSuchUser: "Utilisateur·rice non trouvé·e" lookup: "Recherche" announcements: "Annonces" imageUrl: "URL de l’image" remove: "Supprimer" removed: "Supprimé" -removeAreYouSure: "Supprimer «{x}» ?" -deleteAreYouSure: "Supprimer «{x}» ?" -resetAreYouSure: "Réinitialiser ?" +removeAreYouSure: "Êtes-vous sûr·e de vouloir supprimer「{x}」?" +deleteAreYouSure: "Êtes-vous sûr·e de vouloir supprimer「{x}」?" +resetAreYouSure: "Voulez-vous réinitialiser ?" saved: "Enregistré" messaging: "Discuter" upload: "Téléverser" @@ -257,28 +259,28 @@ themeForLightMode: "Thème à utiliser en Mode Clair" themeForDarkMode: "Thème à utiliser en Mode Sombre" light: "Clair" dark: "Sombre" -lightThemes: "Thème clair" -darkThemes: "Thème sombre" -syncDeviceDarkMode: "Synchronisez le mode sombre avec les paramètres de votre appareil" +lightThemes: "Thèmes clairs" +darkThemes: "Thèmes sombres" +syncDeviceDarkMode: "Utiliser le mode sombre de votre appareil" drive: "Drive" fileName: "Nom du fichier" selectFile: "Choisir le fichier" selectFiles: "Choisir les fichiers" selectFolder: "Sélectionnez un dossier" selectFolders: "Sélectionnez des dossiers" -renameFile: "Renommer le ficher" +renameFile: "Renommer le fichier" folderName: "Nom du dossier" createFolder: "Créer un dossier" renameFolder: "Renommer le dossier" deleteFolder: "Supprimer le dossier" -addFile: "Ajoutez un fichier" +addFile: "Ajouter un fichier" emptyDrive: "Le Drive est vide" emptyFolder: "Le dossier est vide" -unableToDelete: "Ne peut pas être supprimé" +unableToDelete: "Suppression impossible" inputNewFileName: "Entrez un nouveau nom de fichier" inputNewFolderName: "Entrez un nouveau nom de dossier" circularReferenceFolder: "Le dossier de destination est un sous-dossier du dossier que vous souhaitez déplacer." -hasChildFilesOrFolders: "Ce dossier n'est pas vide, il ne peut donc pas être supprimé" +hasChildFilesOrFolders: "Impossible de supprimer ce dossier car il n'est pas vide." copyUrl: "Copier l’URL" rename: "Renommer" avatar: "Avatar" @@ -288,7 +290,7 @@ whenServerDisconnected: "Lorsque la connexion au serveur est perdue" disconnectedFromServer: "Déconnecté·e du serveur" reload: "Rafraîchir" doNothing: "Ignorer" -reloadConfirm: "Voulez-vous recharger le fil ?" +reloadConfirm: "Voulez-vous recharger?" watch: "Surveiller" unwatch: "Ne plus surveiller" accept: "Autoriser" @@ -325,6 +327,9 @@ bannerUrl: "URL de l’image de la bannière" basicInfo: "Informations basiques" pinnedUsers: "Utilisateur·rice épinglé·e" pinnedUsersDescription: "Listez les utilisateur·rice·s que vous souhaitez voir épinglé·e·s sur la page \"Découvrir\", un·e par ligne." +pinnedPages: "Pages épinglées" +pinnedPagesDescription: "Inscrivez le chemin des pages que vous souhaitez épingler en haut de la page de l'instance. Séparez les pages d'un retour à la ligne." +pinnedClipId: "Identifiant du clip épinglé" pinnedNotes: "Note épinglée" hcaptcha: "hCaptcha" enableHcaptcha: "Activer hCaptcha" @@ -354,7 +359,7 @@ notesAndReplies: "Notes et Réponses" withFiles: "Avec fichiers joints" silence: "Mettre en sourdine" silenceConfirm: "Êtes-vous sûr·e de vouloir mettre l’utilisateur·rice en sourdine ?" -unsilence: "Annuler la mise en sourdine" +unsilence: "Annuler la sourdine" unsilenceConfirm: "Êtes-vous sûr·e de vouloir annuler la mise en sourdine de cette utilisateur·rice ?" popularUsers: "Utilisateur·rice·s populaires" recentlyUpdatedUsers: "Utilisateur·rice·s actif·ve·s récemment" @@ -433,6 +438,7 @@ signinWith: "Connectez-vous avec {x}" signinFailed: "Échec d’authentification. Veuillez vérifier que votre nom d’utilisateur et mot de passe sont corrects." tapSecurityKey: "Appuyez sur votre clé de sécurité" or: "OU" +language: "Langue" uiLanguage: "Langue d’affichage de l’interface" groupInvited: "Invité au groupe" aboutX: "À propos de {x}" @@ -482,6 +488,7 @@ objectStorageUseSSL: "Utiliser SSL" objectStorageUseSSLDesc: "Désactivez-le si vous n'utilisez pas HTTPS pour la connexion API" objectStorageUseProxy: "Se connecter via proxy" objectStorageUseProxyDesc: "Désactivez-le si vous n'utilisez pas Proxy pour la connexion de stockage d'objets" +objectStorageSetPublicRead: "Régler sur « public » lors de l'envoi" serverLogs: "Journaux serveur" deleteAll: "Supprimer tout" showFixedPostForm: "Afficher le formulaire en haut du fil d'actualité" @@ -489,6 +496,7 @@ newNoteRecived: "Vous avez une nouvelle note" sounds: "Sons" listen: "Écouter" none: "Rien" +showInPage: "Afficher dans la page" popout: "Fenêtre contextuelle" volume: "Volume" masterVolume: "Volume" @@ -517,7 +525,7 @@ deleteAllFilesConfirm: "Êtes vous surs de vouloir supprimer tous les fichiers ? removeAllFollowing: "Retenir tous les abonnements" removeAllFollowingDescription: "Se désabonner de tous les comptes de {host}. Veuillez lancer cette action uniquement si l’instance n’existe plus." userSuspended: "Cette utilisateur·trice a été suspendue." -userSilenced: "Cette utilisateur·trice a été masquer." +userSilenced: "Cette utilisateur·trice a été mis·e en sourdine." sidebar: "Barre latérale" divider: "Séparateur" addItem: "Ajouter élément" @@ -545,6 +553,7 @@ plugins: "Extensions" deck: "Deck" undeck: "Quitter le deck" useBlurEffectForModal: "Utiliser un effet de flou pour les modals" +useFullReactionPicker: "Utiliser l'intégralité du panneau de réactions" width: "Largeur" height: "Hauteur" large: "Grand" @@ -591,36 +600,64 @@ useGlobalSetting: "Utiliser paramètre général" useGlobalSettingDesc: "S'il est activé, les paramètres de notification de votre compte seront utilisés. S'il est désactivé, des configurations individuelles peuvent être effectuées." other: "Autre" regenerateLoginToken: "Régénérer le jeton de connexion" +regenerateLoginTokenDescription: "Générer un nouveau jeton d'authentification. Cette opération ne devrait pas être nécessaire ; lors de la génération d'un nouveau jeton, tous les appareils seront déconnectés. " setMultipleBySeparatingWithSpace: "Vous pouvez définir plus d’un, séparés par des espaces." fileIdOrUrl: "ID du fichier ou URL" chatOpenBehavior: "Comportement de la fenêtre de discussion lors de son ouverture" +behavior: "Comportement" abuseReports: "Signalements" reportAbuse: "Signalements" reportAbuseOf: "Signaler {name}" +fillAbuseReportDescription: "Veuillez expliquer les raisons du signalement. S'il s'agit d'une note précise, veuillez en donner le lien." +abuseReported: "Le rapport est envoyé. Merci." send: "Envoyer" abuseMarkAsResolved: "Marquer le signalement comme résolu" openInNewTab: "Ouvrir dans un nouvel onglet" +openInSideView: "Ouvrir en vue latérale" +defaultNavigationBehaviour: "Navigation par défaut" +editTheseSettingsMayBreakAccount: "La modification de ces paramètres peut endommager votre compte." waitingFor: "En attente de {x}" random: "Aléatoire" +system: "Système" +switchUi: "Modifier l'interface utilisateur" +desktop: "Bureau" clip: "Clip" +optional: "Facultatif" createNewClip: "Créer un nouveau clip" public: "Public" +i18nInfo: "Misskey est traduit dans différentes langues par des bénévoles. Vous pouvez contribuer à {link}." manageAccessTokens: "Gérer les jetons d'accès" accountInfo: " Informations du compte " notesCount: "Nombre de notes" repliesCount: "Nombre de réponses envoyées" renotesCount: "Nombre de notes repartagées" repliedCount: "Nombre de réponses reçues" +renotedCount: "Nombre de Renotes" followingCount: "Nombre de comptes suivis" +followersCount: "Nombre d'abonnés" +sentReactionsCount: "Nombre de réactions envoyées" +receivedReactionsCount: "Nombre de réactions reçues" +pollVotesCount: "Nombre de votes envoyés" +pollVotedCount: "Nombre de votes reçus" +yes: "Oui" +no: "Non" driveFilesCount: "Nombre de fichiers dans le Drive" +driveUsage: "Utilisation du Drive" noCrawle: "Refuser l'indexation par les robots" noCrawleDescription: "Demandez aux moteurs de recherche de ne pas indexer votre page de profil, vos notes, vos pages, etc." lockedAccountInfo: "À moins que vous ne définissiez la visibilité de votre note sur \"Abonné-e-s\", vos notes sont visibles par tous, même si vous exigez que les followers soient approuvés manuellement." +alwaysMarkSensitive: "Marquer les médias comme contenu sensible par défaut" loadRawImages: "Affichage complet des images jointes au lieu des vignettes" disableShowingAnimatedImages: "Désactiver l'animation des images" verificationEmailSent: "Un e-mail de vérification a été envoyé. Veuillez accéder au lien pour compléter la vérification." notSet: "Non défini" emailVerified: "Votre adresse e-mail a été vérifiée." +noteFavoritesCount: "Nombre de notes dans les favoris" +pageLikesCount: "Nombre de pages aimées" +pageLikedCount: "Nombre de vos pages aimées" +reversiCount: "Nombre de parties de Reversi" +contact: "Contact" +useSystemFont: "Utiliser la police par défaut du système" clips: "Clip" experimentalFeatures: "Fonctionnalités expérimentales" developer: "Développeur" @@ -631,6 +668,7 @@ left: "Gauche" center: "Centrer" wide: "Large" narrow: "Condensé" +reloadToApplySetting: "Vos paramètres seront appliqués lorsque vous rechargerez la page. Souhaitez-vous recharger ?" showTitlebar: "Afficher la barre de titre" clearCache: "Vider le cache" onlineUsersCount: "{n} utilisateur(s) en ligne" @@ -640,18 +678,43 @@ sendErrorReports: "Envoyer les rapports d’erreur" sendErrorReportsDescription: "Lorsqu'il est activé, des informations détaillées sur les erreurs sont partagées avec Misskey lorsqu'un problème survient, ce qui contribue à améliorer la qualité de Misskey." myTheme: "Mes thèmes" backgroundColor: "Arrière-plan" +accentColor: "Accentuation" textColor: "Texte" saveAs: "Enregistrer sous ..." advanced: "Avancé" value: "Valeur" +updatedAt: "Mis à jour le" saveConfirm: "Voulez-vous sauvegarder les modifications?" +deleteConfirm: "Confirmez-vous la suppression?" +invalidValue: "Cette valeur est invalide." +registry: "Registre" closeAccount: "Fermer le compte" +currentVersion: "Version actuelle" +latestVersion: "Dernière version " +youAreRunningUpToDateClient: "Votre client est à jour." +newVersionOfClientAvailable: "Une nouvelle version de votre client est disponible." usageAmount: "Utilisation" capacity: "Capacité " inUse: "utilisé" +editCode: "Modifier le code" +apply: "Appliquer" +receiveAnnouncementFromInstance: "Recevoir les messages d'information de l'instance" +emailNotification: "Notifications par mail" +inChannelSearch: "Chercher dans le canal" +useReactionPickerForContextMenu: "Clic-droit pour ouvrir le panneau de réactions" +typingUsers: "{users} est en train d'écrire" +jumpToSpecifiedDate: "Se rendre à la date" +showingPastTimeline: "Un fil ancien est affiché" +clear: "Effacer" _email: _follow: title: "Vous suit" + _receiveFollowRequest: + title: "Vous avez reçu une demande de suivi" +_plugin: + install: "Installation de plugin" + installWarn: "N’installez que des extensions provenant de sources de confiance." + manage: "Gestion des plugins" _registry: key: "Clé " keys: "Clé " @@ -667,31 +730,88 @@ _aboutMisskey: morePatrons: "Nous apprécions vraiment le soutien de nombreuses autres personnes non mentionnées ici. Merci à toutes et à tous ! 🥰" patrons: "Contributeurs" _nsfw: - respect: "Cacher les médias sensibles" + respect: "Cacher les médias marqués comme contenu sensible" ignore: "Afficher les médias sensibles" force: "Cacher tous les médias" _mfm: + cheatSheet: "Antisèche MFM" + intro: "MFM est un langage Markdown spécifique utilisable ici et là dans Misskey. Vous pouvez vérifier ici les structures utilisables avec MFM." + dummy: "La Fédiverse s'agrandit avec Misskey" mention: "Mentionner" + mentionDescription: "Vous pouvez afficher un utilisateur spécifique en indiquant une arobase suivie d'un nom d'utilisateur" hashtag: "Hashtags" + hashtagDescription: "Vous pouvez afficher un mot-dièse en utilisant un croisillon et du texte" + url: "URL" + urlDescription: "L'adresse web peut être affichée." link: "Lien" + linkDescription: "Une partie précise d'une phrase peut être liée à l'adresse web." bold: "Gras" + boldDescription: "Il est possible de mettre le texte en exergue en le mettant en gras." + small: "Diminuer l'emphase" + smallDescription: "Le contenu peut être affiché en petit et fin." center: "Centrée" + centerDescription: "Le contenu peut être centré" + inlineCode: "Code (inline)" + blockCode: "Bloc de code" quote: "Citer" quoteDescription: "Affiche le contenu sous forme de citation." emoji: "Émojis personnalisés" search: "Rechercher" flip: "Inverser" + x2: "Grand" + x2Description: "Afficher le contenu en grand." + x3: "Très grand" + x3Description: "Afficher le contenu en très grand." + x4: "Plus grand" + x4Description: "Afficher le contenu en plus grand." + blur: "Flou" + blurDescription: "Le contenu peut être flouté ; il sera visible en le survolant avec le curseur." font: "Police de caractères" + fontDescription: "Il est possible de choisir la police." _reversi: + reversi: "Reversi" + gameSettings: "Réglages de la partie" + chooseBoard: "Choix du plateau" + blackOrWhite: "Pions blancs/Pions noirs" + blackIs: "{name} joue les pions noirs" + rules: "Règles" + botSettings: "Options du bot" + thisGameIsStartedSoon: "La partie commencera dans quelques secondes" + waitingForOther: "En attente que l'adversaire soit prêt" + waitingForMe: "En attente que vous soyez prêt" + waitingBoth: "Préparez-vous" + ready: "Prêt" + cancelReady: "Recommencer la préparation" + opponentTurn: "Tour de l’adversaire" + myTurn: "C’est votre tour" + turnOf: "Tour de {name}" + pastTurnOf: "Tour de {name}" + surrender: "Abandonner" + surrendered: "Par abandon" + drawn: "Match nul" + won: "{name} a gagné" + black: "Noirs" + white: "Blancs" total: "Total" + turnCount: "Tour {count}" + myGames: "Mes parties" + allGames: "Toutes les parties" + ended: "Fin de partie" + playing: "En cours" + isLlotheo: "Celui ou celle qui a le moins de pièces gagne (Llotheo)" + canPutEverywhere: "Les pions peuvent être placés partout " +_instanceTicker: + none: "Cacher " _serverDisconnectedBehavior: reload: "Rechargement automatique" quiet: "Afficher un avertissement discret" _channel: create: "Créer un canal" edit: "Éditer le canal" + setBanner: "Sélectionner la bannière" removeBanner: "Supprimer la bannière" featured: "Tendances" + following: "Abonné·e" usersCount: "{n} Participants" notesCount: "{n} Notes" _sidebar: @@ -699,9 +819,9 @@ _sidebar: icon: "Avatar" hide: "Masquer" _wordMute: - muteWords: "Mot à mettre en sourdine" + muteWords: "Mots à filtrer" muteWordsDescription: "Séparer avec des espaces pour la condition AND. Séparer avec un saut de ligne pour une condition OR." - mutedNotes: "Notes mises en sourdine" + mutedNotes: "Notes filtrées" _theme: explore: "Explorer les thèmes" install: "Installer un thème" @@ -709,6 +829,7 @@ _theme: code: "Code du thème" installed: "{name} a été installé" installedThemes: "Thèmes installés" + builtinThemes: "Thèmes intégrés" alreadyInstalled: "Ce thème est déjà installé" invalid: "Le format du thème n'est pas valide" make: "Créer un thème" @@ -733,16 +854,25 @@ _theme: header: "Entête" navBg: "Fond de la barre latérale" navFg: "Texte de la barre latérale" + navHoverFg: "Texte de la barre latérale (survolé)" + navActive: "Texte de la barre latérale (actif)" + navIndicator: "Indicateur de barre latérale" link: "Lien" hashtag: "Hashtags" mention: "Mentionner" mentionMe: "Mentions (Moi)" - renote: "Renote" + renote: "Partager" divider: "Séparateur" + scrollbarHandle: "Poignée de la barre de navigation" + scrollbarHandleHover: "Poignée de la barre de navigation (survolée)" infoWarnFg: "Texte d’avertissement" cwBg: "Arrière-plan du CW" + buttonBg: "Arrière-plan du bouton" + buttonHoverBg: "Arrière-plan du bouton (survolé)" + inputBorder: "Cadre de la zone de texte" badge: "Badge" messageBg: "Arrière plan de la discussion" + fgHighlighted: "Texte mis en évidence" _sfx: note: "Nouvelle note" noteMy: "Ma note" @@ -811,8 +941,8 @@ _permissions: "write:following": "Abonnements/Se désabonner" "read:messaging": "Cherche à discuter" "write:messaging": "Contrôler le discuter" - "read:mutes": "Voir les comptes muets" - "write:mutes": "Gérer les comptes muets" + "read:mutes": "Voir les comptes masqués" + "write:mutes": "Gérer les comptes masqués" "write:notes": "Créer / supprimer des notes" "read:notifications": "Afficher les notifications" "write:notifications": "Gérer vos notifications" @@ -861,8 +991,12 @@ _widgets: digitalClock: "Horloge numérique" federation: "Fédération" postForm: "Formulaire à publier" + slideshow: "Diaporama" button: "Bouton" + onlineUsers: "Utilisateurs en ligne" jobQueue: "File d’attente" + serverMetric: "Statistiques du serveur" + aiscript: "Console AiScript" _cw: hide: "Masquer" show: "Afficher plus …" @@ -917,12 +1051,17 @@ _profile: username: "Nom d’utilisateur·rice" description: "À propos de moi" youCanIncludeHashtags: "Vous pouvez également inclure des hashtags." + metadata: "Informations supplémentaires" + metadataEdit: "Éditer les informations supplémentaires" + metadataDescription: "Vous pouvez afficher jusqu'à quatre informations supplémentaires dans votre profil." metadataLabel: "Étiquette" metadataContent: "Contenu" + changeAvatar: "Changer l'image de profil" + changeBanner: "Changer de bannière" _exportOrImport: allNotes: "Toutes les notes" followingList: "Abonnements" - muteList: "Mettre en sourdine" + muteList: "Liste des comptes maqués" blockingList: "Bloquer" userLists: "Listes" _charts: @@ -1025,6 +1164,7 @@ _pages: created: "La page a été créée !" updated: "La page a été mise à jour !" deleted: "La page a bien été supprimée" + pageSetting: "Paramètres de la Page" nameAlreadyExists: "La URL de page spécifiée existe déjà" invalidNameTitle: "La URL de la page spécifiée n’est pas valide" invalidNameText: "Assurez-vous qu’il n’est pas vide" @@ -1035,6 +1175,7 @@ _pages: unlike: "Je n’aime pas" my: "Mes pages" liked: "Pages favorites" + featured: "Populaire" inspector: "Inspecteur" contents: "Contenu" content: "Bloc de page" @@ -1090,6 +1231,9 @@ _pages: id: "Toile ID" width: "Largeur" height: "Hauteur" + _note: + id: "Identifiant de la note" + detailed: "Afficher les détails" switch: "Basculer" _switch: name: "Nom de la variable" @@ -1322,19 +1466,28 @@ _notification: follow: "Abonnements" mention: "Mentionner" reply: "Réponses" - renote: "Renote" + renote: "Partager" quote: "Citer" reaction: "Réactions" + receiveFollowRequest: "Demande d'abonnement reçue" + followRequestAccepted: "Demande d'abonnement acceptée" groupInvited: "Invité aux groupes" app: "Notifications provenant des apps" _deck: alwaysShowMainColumn: "Toujours afficher la colonne principale" columnAlign: "Aligner les colonnes" + columnMargin: "Marge entre les colonnes" + columnHeaderHeight: "Taille de l'en-tête de colonne" addColumn: "Ajouter une colonne" swapLeft: "Déplacer à gauche" swapRight: "Déplacer à droite" + swapUp: "Déplacer vers le haut" + swapDown: "Déplacer vers le bas" stackLeft: "Empiler à gauche" + popRight: "Vers la droite" + profile: "Profil" _columns: + main: "Principale" widgets: "Widgets" notifications: "Notifications" tl: "Fil" diff --git a/package.json b/package.json index 21a42f98d..98d856ccc 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "misskey", "author": "syuilo ", - "version": "12.72.0", + "version": "12.73.0", "codename": "indigo", "repository": { "type": "git", @@ -120,7 +120,7 @@ "broadcast-channel": "3.4.1", "bull": "3.20.1", "cafy": "15.2.1", - "cbor": "7.0.1", + "cbor": "7.0.3", "chalk": "4.1.0", "chart.js": "2.9.4", "cli-highlight": "2.1.10", @@ -250,7 +250,7 @@ "vue-json-pretty": "1.7.1", "vue-loader": "16.1.2", "vue-prism-editor": "2.0.0-alpha.2", - "vue-router": "4.0.3", + "vue-router": "4.0.4", "vue-style-loader": "4.1.2", "vuedraggable": "4.0.1", "web-push": "3.4.4", diff --git a/src/client/components/autocomplete.vue b/src/client/components/autocomplete.vue index 1fe74adc6..ae742610f 100644 --- a/src/client/components/autocomplete.vue +++ b/src/client/components/autocomplete.vue @@ -401,8 +401,7 @@ export default defineComponent({ z-index: 65535; max-width: 100%; margin-top: calc(1em + 8px); - overflow: hidden; // overflow: clip; をSafariが対応したら消す - overflow: clip; + overflow: hidden; transition: top 0.1s ease, left 0.1s ease; > ol { @@ -419,8 +418,7 @@ export default defineComponent({ align-items: center; padding: 4px 12px; white-space: nowrap; - overflow: hidden; // overflow: clip; をSafariが対応したら消す - overflow: clip; + overflow: hidden; font-size: 0.9em; cursor: default; @@ -429,8 +427,7 @@ export default defineComponent({ } * { - overflow: hidden; // overflow: clip; をSafariが対応したら消す - overflow: clip; + overflow: hidden; text-overflow: ellipsis; } diff --git a/src/client/components/channel-preview.vue b/src/client/components/channel-preview.vue index 3e24774f5..e222ad7ae 100644 --- a/src/client/components/channel-preview.vue +++ b/src/client/components/channel-preview.vue @@ -66,8 +66,7 @@ export default defineComponent({ diff --git a/src/client/components/ui/button.vue b/src/client/components/ui/button.vue index e98c5efcc..3901e8ae4 100644 --- a/src/client/components/ui/button.vue +++ b/src/client/components/ui/button.vue @@ -124,8 +124,7 @@ export default defineComponent({ text-decoration: none; background: var(--buttonBg); border-radius: 999px; - overflow: hidden; // overflow: clip; をSafariが対応したら消す - overflow: clip; + overflow: hidden; &:not(:disabled):hover { background: var(--buttonHoverBg); @@ -213,8 +212,7 @@ export default defineComponent({ width: 100%; height: 100%; border-radius: 6px; - overflow: hidden; // overflow: clip; をSafariが対応したら消す - overflow: clip; + overflow: hidden; ::v-deep(div) { position: absolute; diff --git a/src/client/components/ui/container.vue b/src/client/components/ui/container.vue index b9360e92f..c3353cca8 100644 --- a/src/client/components/ui/container.vue +++ b/src/client/components/ui/container.vue @@ -116,8 +116,7 @@ export default defineComponent({ .ukygtjoj { position: relative; - overflow: hidden; // overflow: clip; をSafariが対応したら消す - overflow: clip; + overflow: hidden; &.naked { background: transparent !important; diff --git a/src/client/components/ui/input.vue b/src/client/components/ui/input.vue index cea1ec1b7..1c5222f8f 100644 --- a/src/client/components/ui/input.vue +++ b/src/client/components/ui/input.vue @@ -298,8 +298,7 @@ export default defineComponent({ transform: scale(.75); white-space: nowrap; width: 133%; - overflow: hidden; // overflow: clip; をSafariが対応したら消す - overflow: clip; + overflow: hidden; text-overflow: ellipsis; > .warning { @@ -355,8 +354,7 @@ export default defineComponent({ display: inline-block; min-width: 16px; max-width: 150px; - overflow: hidden; // overflow: clip; をSafariが対応したら消す - overflow: clip; + overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } diff --git a/src/client/components/ui/menu.vue b/src/client/components/ui/menu.vue index c9accf7c3..c2033402e 100644 --- a/src/client/components/ui/menu.vue +++ b/src/client/components/ui/menu.vue @@ -155,8 +155,7 @@ export default defineComponent({ font-size: 0.9em; line-height: 20px; text-align: center; - overflow: hidden; // overflow: clip; をSafariが対応したら消す - overflow: clip; + overflow: hidden; text-overflow: ellipsis; &.danger { diff --git a/src/client/components/ui/modal-window.vue b/src/client/components/ui/modal-window.vue index 3965b537e..2cdf96137 100644 --- a/src/client/components/ui/modal-window.vue +++ b/src/client/components/ui/modal-window.vue @@ -89,8 +89,7 @@ export default defineComponent({