diff --git a/ui/src/i18n/en.js b/ui/src/i18n/en.js index 3271723..6fdf49d 100644 --- a/ui/src/i18n/en.js +++ b/ui/src/i18n/en.js @@ -188,15 +188,15 @@ export default { // Projects 'project.title': 'Projects', - 'project.new': 'New Project', - 'project.edit': 'Edit Project', + 'project.new': 'New project', + 'project.edit': 'Edit project', 'project.detail': 'Project', 'project.name': 'Name', - 'project.pkey': 'Project Key', - 'project.pkeyHint': 'Unique identifier, cannot be changed after creation', + 'project.pkey': 'Project key', + 'project.pkeyHint': 'Lowercase letters, digits and dashes', 'project.description': 'Description', - 'project.teamLeader': 'Team Leader', - 'project.teamLeaderHint': 'User login ID (e.g. admin)', + 'project.teamLeader': 'Team leader', + 'project.teamLeaderHint': 'User managing this project', 'project.created': 'Created', 'project.subscriptions': 'Subs', 'project.subscriptionsTooltip': 'Number of subscriptions attached to this project', @@ -206,13 +206,13 @@ export default { 'project.empty': 'No projects yet. Create a project to start managing subscriptions.', // Project → detail view - 'project.detail.addSubscription': 'Add subscription', + 'project.detail.addSubscription': 'Subscribe to a tool', 'project.detail.edit': 'Edit', 'project.detail.manager': 'Manager:', 'project.detail.created': 'Created:', 'project.detail.updated': 'Updated:', 'project.detail.subscriptions': 'Subscriptions', - 'project.detail.noSubscriptions': 'No subscriptions attached to this project.', + 'project.detail.noSubscriptions': 'No subscription on this project yet.', 'project.detail.editTitle': 'Edit project', 'project.detail.fieldName': 'Name', 'project.detail.fieldPkey': 'Project key (pkey)', @@ -224,21 +224,21 @@ export default { 'project.detail.remove': 'Remove', // Subscribe / node wizard - 'wizard.title': 'Add subscription', + 'wizard.title': 'Subscribe to a tool', 'wizard.contextBefore': 'Adding a subscription to', 'wizard.contextAfter': 'Subscribing is not an idempotent operation — removing a subscription later may not clean up remote data automatically.', 'wizard.loadingProject': 'Loading project…', - 'wizard.step.service': '1. Service', - 'wizard.step.tool': '2. Tool', - 'wizard.step.instance': '3. Instance', - 'wizard.step.mode': '4. Mode', - 'wizard.step.parameters': '5. Parameters', + 'wizard.step.service': 'Service', + 'wizard.step.tool': 'Tool', + 'wizard.step.instance': 'Instance', + 'wizard.step.mode': 'Mode', + 'wizard.step.parameters': 'Parameters', 'wizard.hint.service': 'A service groups features implemented by one or more tools.', 'wizard.hint.tool': 'A tool is one implementation of the service; several instances may be deployed.', 'wizard.hint.instance': 'An instance is a running node of the tool. Pick an existing one or declare a new one.', - 'wizard.label.service': 'Service', - 'wizard.label.tool': 'Tool', - 'wizard.label.instance': 'Instance', + 'wizard.label.service': 'Pick a service', + 'wizard.label.tool': 'Pick a tool', + 'wizard.label.instance': 'Pick an instance', 'wizard.label.name': 'Name', 'wizard.label.id': 'ID', 'wizard.newInstance': 'New instance', @@ -249,8 +249,8 @@ export default { 'wizard.createInstance': 'Create instance', 'wizard.modeLink': 'Link', 'wizard.modeCreate': 'Create', - 'wizard.modeHintLink': 'attaches this project to an existing instance.', - 'wizard.modeHintCreate': 'additionally provisions a new instance inside the tool.', + 'wizard.modeHintLink': 'Attaches this project to an existing instance.', + 'wizard.modeHintCreate': 'Additionally provisions a new instance inside the tool.', 'wizard.modeDescLink': 'attach this project to an existing object', 'wizard.modeDescCreate': 'provision a new object inside the instance', 'wizard.params.createNode': 'Initial values for {id}. You can edit them later from System → Nodes.', @@ -268,10 +268,138 @@ export default { 'wizard.error.subscriptionFailed': 'Subscription creation failed — please review the highlighted parameters.', 'wizard.error.nodeCreationFailed': 'Node creation failed — please review the highlighted fields.', 'wizard.error.saveFailed': 'Save failed — please review the highlighted parameters.', - 'wizard.error.newNodeRejected': 'Backend rejected the new node — see the notification for details.', + 'wizard.error.newNodeRejected': 'Backend rejected the new instance — see the notification for details.', 'wizard.success.nodeCreated': 'Node "{name}" created', 'wizard.success.nodeUpdated': 'Node "{name}" updated', 'wizard.success.subscriptionCreated': 'Subscription created', 'wizard.rule.required': 'Required', 'wizard.rule.nodeId': 'Use the colon-separated form, e.g. service:scm:git:internal', + + // --- 2026 redesign additions (chantier ui-2026) --- + 'project.pkeyRule': 'Use lowercase letters, digits and dashes', + 'project.pkeyLocked': 'Locked — the project already has subscriptions', + 'project.countLabel': 'projects', + 'project.searchPlaceholder': 'Search a project…', + 'project.subsShort': 'subs.', + 'project.open': 'Open project', + 'project.noTool': 'No tool', + 'project.createSoon': 'Project creation — coming soon', + 'project.detailSoon': '“{name}” details — coming soon', + 'project.detail.activeShort': 'active', + 'project.detail.configure': 'Configure', + 'project.detail.more': 'more', + 'project.detail.demoSubscribe': 'Subscriptions need a real project (this is a preview).', + 'subscription.deleteConfirm': 'Delete this subscription?', + 'subscription.status.ok': 'up', + 'subscription.status.warn': 'unstable', + 'subscription.status.err': 'down', + 'subscription.status.idle': 'idle', + 'system.plugin.countLabel': 'installed plug-ins', + 'system.plugin.headerType': 'Type', + 'system.plugin.active': 'Active', + 'system.plugin.type.service': 'Service', + 'system.plugin.type.tool': 'Tool', + 'system.plugin.type.feature': 'Feature', + 'system.plugin.statTotal': 'Plug-ins', + 'system.plugin.statServices': 'Services', + 'system.plugin.statTools': 'Tools', + 'system.plugin.statFeatures': 'Features', + 'system.plugin.headerKey': 'Key', + 'system.plugin.headerStatus': 'Status', + 'system.plugin.headerEnabled': 'Enabled', + 'system.plugin.status.ok': 'Active', + 'system.plugin.status.idle': 'Inactive', + 'system.plugin.status.warn': 'Removal scheduled', + 'system.plugin.toggleHint': 'Enable / disable this tool', + 'system.plugin.disable': 'Disable', + 'system.plugin.confirmDisableTitle': 'Disable the tool', + 'system.plugin.confirmDisableText': 'Disable {name}? Its nodes and subscriptions stay configured but become unavailable until re-enabled.', + 'system.node.countLabel': 'declared nodes', + 'system.node.filtered': 'shown', + 'system.node.filterAll': 'All types', + 'system.node.instanceStep': 'Identity', + 'system.node.statTotal': 'Nodes', + 'system.node.deleteConfirmBefore': 'Delete the node ', + 'system.node.deleteConfirmAfter': ' and its parameters?', + 'system.config.countLabel': 'configuration keys', + 'system.config.filtered': 'shown', + 'system.config.searchPlaceholder': 'Search a key, value or source…', + 'system.config.filterAll': 'All keys', + 'system.config.statTotal': 'Keys', + 'system.config.statSecured': 'Secured', + 'system.config.statOverridden': 'Overridden', + 'system.config.statDatabase': 'Database', + 'system.config.encryptToggle': 'Encryption tool', + 'system.config.encryptHint': 'Encrypt a value to store it secured at rest.', + 'system.config.copied': 'Copied to clipboard', + 'system.config.deleteConfirmBefore': 'Remove the key ', + 'system.config.deleteConfirmAfter': '?', + 'system.role.new': 'New role', + 'system.role.countLabel': 'roles defined', + 'system.role.filtered': 'shown', + 'system.role.searchPlaceholder': 'Search a role or pattern…', + 'system.role.filterAll': 'All roles', + 'system.role.statTotal': 'Roles', + 'system.role.statApi': 'With API', + 'system.role.statUi': 'With UI', + 'system.role.statAdmin': 'Unrestricted', + 'system.role.noAuth': 'No restriction', + 'system.role.deleteConfirmBefore': 'Delete the role ', + 'system.role.deleteConfirmAfter': '?', + 'system.user.countLabel': 'system accounts', + 'system.user.filtered': 'shown', + 'system.user.searchPlaceholder': 'Search a login…', + 'system.user.new': 'New account', + 'system.user.newTitle': 'New system user', + 'system.user.editTitle': 'Edit system user', + 'system.user.fieldLogin': 'Login', + 'system.user.fieldRoles': 'Roles', + 'system.user.rolesHint': 'Pick at least one role', + 'system.user.statTotal': 'Accounts', + 'system.user.statRoles': 'Defined roles', + 'system.user.noRoles': 'No role', + 'system.user.headerLogin': 'Login', + 'system.user.headerRoles': 'Roles', + 'system.user.deleteTitle': 'Delete system user', + 'system.user.deleteConfirmBefore': 'Remove ', + 'system.user.deleteConfirmAfter': ' from system accounts?', + 'system.cache.countLabel': 'active caches', + 'system.cache.statCaches': 'Caches', + 'system.cache.statEntries': 'Entries', + 'system.cache.statHitRate': 'Hit rate', + 'system.cache.statAvgGet': 'Avg get', + 'system.cache.invalidateAll': 'Flush all', + 'system.cache.searchPlaceholder': 'Search a cache…', + 'system.cache.subActive': 'active', + 'system.cache.subInCaches': 'in {n} caches', + 'system.cache.subRequests': 'requests', + 'system.cache.subAcrossActive': 'across active caches', + 'api.subtitle': 'Interactive REST API explorer', + 'api.downloadOpenapi': 'Download OpenAPI', + 'api.endpoints': 'Endpoints', + 'api.groups': 'Groups', + 'api.searchPlaceholder': 'Search an endpoint, path or summary…', + 'api.noResults': 'No endpoint matches your search.', + 'api.allMethods': 'All', + 'api.params': 'Parameters', + 'api.noParams': 'No parameter', + 'api.requestBody': 'Request body', + 'api.responses': 'Responses', + 'api.required': 'required', + 'api.deprecated': 'deprecated', + 'api.expandAll': 'Expand all', + 'api.collapseAll': 'Collapse all', + 'system.apiToken.subtitle': 'Password-less access keys for the REST API', + 'system.apiToken.countLabel': 'API tokens', + 'system.apiToken.statTokens': 'Tokens', + 'system.apiToken.searchPlaceholder': 'Search a token…', + 'system.apiToken.deleteConfirmBefore': 'Revoke the token ', + 'system.apiToken.deleteConfirmAfter': '?', + 'system.apiToken.empty': 'No API token yet', + 'system.bench.subtitle': 'Database persistence benchmark', + 'system.bench.total': 'Total', + 'system.bench.idle': 'Run the bench to measure each step.', + 'system.bench.ms': 'ms', + 'system.info.subtitle': 'Runtime, memory, time zone, session and build', + 'system.info.copy': 'Copy', } diff --git a/ui/src/i18n/fr.js b/ui/src/i18n/fr.js index b434194..96af54f 100644 --- a/ui/src/i18n/fr.js +++ b/ui/src/i18n/fr.js @@ -192,10 +192,10 @@ export default { 'project.detail': 'Projet', 'project.name': 'Nom', 'project.pkey': 'Clé du projet', - 'project.pkeyHint': 'Identifiant unique, non modifiable après la création', + 'project.pkeyHint': 'Minuscules, chiffres et tirets', 'project.description': 'Description', - 'project.teamLeader': 'Chef d\'équipe', - 'project.teamLeaderHint': 'Identifiant utilisateur (ex: admin)', + 'project.teamLeader': 'Responsable', + 'project.teamLeaderHint': 'Utilisateur gérant ce projet', 'project.created': 'Créé le', 'project.subscriptions': 'Sub.', 'project.subscriptionsTooltip': 'Nombre de souscriptions rattachées à ce projet', @@ -205,13 +205,13 @@ export default { 'project.empty': 'Aucun projet. Créez un projet pour commencer à gérer les souscriptions.', // Projet → vue détail - 'project.detail.addSubscription': 'Ajouter une souscription', + 'project.detail.addSubscription': 'Souscrire à un outil', 'project.detail.edit': 'Modifier', 'project.detail.manager': 'Chef d\'équipe :', 'project.detail.created': 'Créé le :', 'project.detail.updated': 'Mis à jour le :', 'project.detail.subscriptions': 'Souscriptions', - 'project.detail.noSubscriptions': 'Aucune souscription rattachée à ce projet.', + 'project.detail.noSubscriptions': 'Aucune souscription sur ce projet.', 'project.detail.editTitle': 'Modifier le projet', 'project.detail.fieldName': 'Nom', 'project.detail.fieldPkey': 'Clé du projet (pkey)', @@ -223,21 +223,21 @@ export default { 'project.detail.remove': 'Supprimer', // Assistant de souscription / nœud - 'wizard.title': 'Ajouter une souscription', - 'wizard.contextBefore': 'Ajout d\'une souscription au projet', + 'wizard.title': 'Souscrire à un outil', + 'wizard.contextBefore': 'Ajout d’une souscription à', 'wizard.contextAfter': 'La souscription n\'est pas une opération idempotente — la suppression ultérieure d\'une souscription peut ne pas nettoyer automatiquement les données distantes.', 'wizard.loadingProject': 'Chargement du projet…', - 'wizard.step.service': '1. Service', - 'wizard.step.tool': '2. Outil', - 'wizard.step.instance': '3. Instance', - 'wizard.step.mode': '4. Mode', - 'wizard.step.parameters': '5. Paramètres', + 'wizard.step.service': 'Service', + 'wizard.step.tool': 'Outil', + 'wizard.step.instance': 'Instance', + 'wizard.step.mode': 'Mode', + 'wizard.step.parameters': 'Paramètres', 'wizard.hint.service': 'Un service regroupe des fonctionnalités mises en œuvre par un ou plusieurs outils.', 'wizard.hint.tool': 'Un outil est une implémentation du service ; plusieurs instances peuvent être déployées.', 'wizard.hint.instance': 'Une instance est un nœud actif de l\'outil. Choisissez-en une existante ou déclarez-en une nouvelle.', - 'wizard.label.service': 'Service', - 'wizard.label.tool': 'Outil', - 'wizard.label.instance': 'Instance', + 'wizard.label.service': 'Choisir un service', + 'wizard.label.tool': 'Choisir un outil', + 'wizard.label.instance': 'Choisir une instance', 'wizard.label.name': 'Nom', 'wizard.label.id': 'Identifiant', 'wizard.newInstance': 'Nouvelle instance', @@ -245,11 +245,11 @@ export default { 'wizard.newNodeHint': 'Suggéré : {prefix}', 'wizard.newNodeBlurb': 'Déclare un nœud sous {parent}. Les paramètres propres à l\'outil pourront être ajoutés ultérieurement en éditant la nouvelle instance.', 'wizard.newNodeBlurbNoParent': 'Déclare un nœud sous l\'outil sélectionné. Les paramètres propres à l\'outil pourront être ajoutés ultérieurement en éditant la nouvelle instance.', - 'wizard.createInstance': 'Créer l\'instance', - 'wizard.modeLink': 'Lier', - 'wizard.modeCreate': 'Créer', - 'wizard.modeHintLink': 'rattache ce projet à une instance existante.', - 'wizard.modeHintCreate': 'provisionne en plus un nouvel objet dans l\'outil.', + 'wizard.createInstance': 'Créer l’instance', + 'wizard.modeLink': 'Lien', + 'wizard.modeCreate': 'Création', + 'wizard.modeHintLink': 'Rattache ce projet à une instance existante.', + 'wizard.modeHintCreate': 'Provisionne en plus une nouvelle instance dans l’outil.', 'wizard.modeDescLink': 'rattacher ce projet à un objet existant', 'wizard.modeDescCreate': 'provisionner un nouvel objet dans l\'instance', 'wizard.params.createNode': 'Valeurs initiales pour {id}. Vous pourrez les modifier plus tard depuis Système → Nœuds.', @@ -259,18 +259,146 @@ export default { 'wizard.params.edit': 'Valeurs de configuration liées à {id}.', 'wizard.params.emptyEdit': 'Aucun paramètre configuré pour ce nœud.', 'wizard.params.emptyCreateNode': 'Ce nœud n\'a pas de paramètre additionnel.', - 'wizard.params.emptySubscribe': 'Cette souscription ne nécessite aucun paramètre additionnel.', + 'wizard.params.emptySubscribe': 'Cette souscription ne requiert aucun paramètre supplémentaire.', 'wizard.action.cancel': 'Annuler', 'wizard.action.save': 'Enregistrer', 'wizard.action.createNode': 'Créer le nœud', 'wizard.action.createSubscription': 'Créer la souscription', - 'wizard.error.subscriptionFailed': 'Échec de la création de la souscription — veuillez vérifier les paramètres mis en évidence.', + 'wizard.error.subscriptionFailed': 'Échec de la création — vérifiez les paramètres en surbrillance.', 'wizard.error.nodeCreationFailed': 'Échec de la création du nœud — veuillez vérifier les champs mis en évidence.', 'wizard.error.saveFailed': 'Échec de l\'enregistrement — veuillez vérifier les paramètres mis en évidence.', - 'wizard.error.newNodeRejected': 'Le serveur a rejeté le nouveau nœud — voir la notification pour plus de détails.', + 'wizard.error.newNodeRejected': 'Instance refusée par le backend — voir la notification.', 'wizard.success.nodeCreated': 'Nœud « {name} » créé', 'wizard.success.nodeUpdated': 'Nœud « {name} » mis à jour', 'wizard.success.subscriptionCreated': 'Souscription créée', 'wizard.rule.required': 'Requis', 'wizard.rule.nodeId': 'Utilisez la forme séparée par des deux-points, ex. service:scm:git:internal', + + // --- 2026 redesign additions (chantier ui-2026) --- + 'project.pkeyRule': 'Utilisez minuscules, chiffres et tirets', + 'project.pkeyLocked': 'Verrouillée — le projet a déjà des souscriptions', + 'project.countLabel': 'projets', + 'project.searchPlaceholder': 'Rechercher un projet…', + 'project.subsShort': 'souscr.', + 'project.open': 'Ouvrir le projet', + 'project.noTool': 'Aucun outil', + 'project.createSoon': 'Création de projet — bientôt', + 'project.detailSoon': 'Détail de « {name} » — bientôt', + 'project.detail.activeShort': 'actifs', + 'project.detail.configure': 'Configurer', + 'project.detail.more': 'de plus', + 'project.detail.demoSubscribe': 'La souscription nécessite un vrai projet (ceci est un aperçu).', + 'subscription.deleteConfirm': 'Supprimer cette souscription ?', + 'subscription.status.ok': 'actif', + 'subscription.status.warn': 'instable', + 'subscription.status.err': 'hors-ligne', + 'subscription.status.idle': 'inactif', + 'system.plugin.countLabel': 'plugins installés', + 'system.plugin.headerType': 'Type', + 'system.plugin.active': 'Actif', + 'system.plugin.type.service': 'Service', + 'system.plugin.type.tool': 'Outil', + 'system.plugin.type.feature': 'Fonction', + 'system.plugin.statTotal': 'Plugins', + 'system.plugin.statServices': 'Services', + 'system.plugin.statTools': 'Outils', + 'system.plugin.statFeatures': 'Fonctions', + 'system.plugin.headerKey': 'Clé', + 'system.plugin.headerStatus': 'Statut', + 'system.plugin.headerEnabled': 'Activé', + 'system.plugin.status.ok': 'Actif', + 'system.plugin.status.idle': 'Inactif', + 'system.plugin.status.warn': 'Suppression planifiée', + 'system.plugin.toggleHint': 'Activer / désactiver cet outil', + 'system.plugin.disable': 'Désactiver', + 'system.plugin.confirmDisableTitle': 'Désactiver l’outil', + 'system.plugin.confirmDisableText': 'Désactiver {name} ? Ses nœuds et souscriptions restent configurés mais deviennent indisponibles jusqu’à réactivation.', + 'system.node.countLabel': 'nœuds déclarés', + 'system.node.filtered': 'affichés', + 'system.node.filterAll': 'Tous les types', + 'system.node.instanceStep': 'Identité', + 'system.node.statTotal': 'Nœuds', + 'system.node.deleteConfirmBefore': 'Supprimer le nœud ', + 'system.node.deleteConfirmAfter': ' et ses paramètres ?', + 'system.config.countLabel': 'clés de configuration', + 'system.config.filtered': 'affichées', + 'system.config.searchPlaceholder': 'Rechercher une clé, valeur ou source…', + 'system.config.filterAll': 'Toutes les clés', + 'system.config.statTotal': 'Clés', + 'system.config.statSecured': 'Sécurisées', + 'system.config.statOverridden': 'Surchargées', + 'system.config.statDatabase': 'En base', + 'system.config.encryptToggle': 'Outil de chiffrement', + 'system.config.encryptHint': 'Chiffrez une valeur pour la stocker sécurisée au repos.', + 'system.config.copied': 'Copié dans le presse-papiers', + 'system.config.deleteConfirmBefore': 'Supprimer la clé ', + 'system.config.deleteConfirmAfter': ' ?', + 'system.role.new': 'Nouveau rôle', + 'system.role.countLabel': 'rôles définis', + 'system.role.filtered': 'affichés', + 'system.role.searchPlaceholder': 'Rechercher un rôle ou un pattern…', + 'system.role.filterAll': 'Tous les rôles', + 'system.role.statTotal': 'Rôles', + 'system.role.statApi': 'Avec API', + 'system.role.statUi': 'Avec UI', + 'system.role.statAdmin': 'Sans restriction', + 'system.role.noAuth': 'Aucune restriction', + 'system.role.deleteConfirmBefore': 'Supprimer le rôle ', + 'system.role.deleteConfirmAfter': ' ?', + 'system.user.countLabel': 'comptes système', + 'system.user.filtered': 'affichés', + 'system.user.searchPlaceholder': 'Rechercher un identifiant…', + 'system.user.new': 'Nouveau compte', + 'system.user.newTitle': 'Nouvel utilisateur système', + 'system.user.editTitle': 'Modifier l\'utilisateur système', + 'system.user.fieldLogin': 'Identifiant', + 'system.user.fieldRoles': 'Rôles', + 'system.user.rolesHint': 'Choisir au moins un rôle', + 'system.user.statTotal': 'Comptes', + 'system.user.statRoles': 'Rôles définis', + 'system.user.noRoles': 'Aucun rôle', + 'system.user.headerLogin': 'Identifiant', + 'system.user.headerRoles': 'Rôles', + 'system.user.deleteTitle': 'Supprimer l\'utilisateur système', + 'system.user.deleteConfirmBefore': 'Retirer ', + 'system.user.deleteConfirmAfter': ' des comptes système ?', + 'system.cache.countLabel': 'caches actifs', + 'system.cache.statCaches': 'Caches', + 'system.cache.statEntries': 'Entrées', + 'system.cache.statHitRate': 'Taux de hits', + 'system.cache.statAvgGet': 'Get moyen', + 'system.cache.invalidateAll': 'Tout vider', + 'system.cache.searchPlaceholder': 'Rechercher un cache…', + 'system.cache.subActive': 'actifs', + 'system.cache.subInCaches': 'dans {n} caches', + 'system.cache.subRequests': 'requêtes', + 'system.cache.subAcrossActive': 'sur les caches actifs', + 'api.subtitle': 'Explorateur interactif de l\'API REST', + 'api.downloadOpenapi': 'Télécharger OpenAPI', + 'api.endpoints': 'Points de terminaison', + 'api.groups': 'Groupes', + 'api.searchPlaceholder': 'Rechercher un endpoint, chemin ou résumé…', + 'api.noResults': 'Aucun endpoint ne correspond à votre recherche.', + 'api.allMethods': 'Toutes', + 'api.params': 'Paramètres', + 'api.noParams': 'Aucun paramètre', + 'api.requestBody': 'Corps de requête', + 'api.responses': 'Réponses', + 'api.required': 'requis', + 'api.deprecated': 'déprécié', + 'api.expandAll': 'Tout déplier', + 'api.collapseAll': 'Tout replier', + 'system.apiToken.subtitle': 'Clés d\'accès sans mot de passe pour l\'API REST', + 'system.apiToken.countLabel': 'jetons d\'API', + 'system.apiToken.statTokens': 'Jetons', + 'system.apiToken.searchPlaceholder': 'Rechercher un jeton…', + 'system.apiToken.deleteConfirmBefore': 'Révoquer le jeton ', + 'system.apiToken.deleteConfirmAfter': ' ?', + 'system.apiToken.empty': 'Aucun jeton d\'API', + 'system.bench.subtitle': 'Benchmark de persistance base de données', + 'system.bench.total': 'Total', + 'system.bench.idle': 'Lancez le bench pour mesurer chaque étape.', + 'system.bench.ms': 'ms', + 'system.info.subtitle': 'Runtime, mémoire, fuseau horaire, session et build', + 'system.info.copy': 'Copier', } diff --git a/ui/src/views/ApiHomeView.vue b/ui/src/views/ApiHomeView.vue index 92664f6..2d4e0e4 100644 --- a/ui/src/views/ApiHomeView.vue +++ b/ui/src/views/ApiHomeView.vue @@ -1,150 +1,365 @@ + diff --git a/ui/src/views/ApiTokenView.vue b/ui/src/views/ApiTokenView.vue index 52b5acc..b448f64 100644 --- a/ui/src/views/ApiTokenView.vue +++ b/ui/src/views/ApiTokenView.vue @@ -1,128 +1,148 @@ +