@stacksjs/defaults 0.75.360 → 0.75.362

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/ai/skills/stacks-ai/SKILL.md +22 -0
  2. package/ai/skills/stacks-native/CATALOG.md +4 -4
  3. package/ai/skills/stacks-payments/SKILL.md +28 -0
  4. package/ai/skills/stacks-technical-diagrams/LICENSE +202 -22
  5. package/ai/skills/stacks-technical-diagrams/LICENSE-MIT +22 -0
  6. package/ai/skills/stacks-technical-diagrams/NOTICE +26 -0
  7. package/ai/skills/stacks-technical-diagrams/SKILL.md +106 -266
  8. package/ai/skills/stacks-technical-diagrams/THIRD_PARTY_NOTICES.md +11 -2
  9. package/ai/skills/stacks-technical-diagrams/UPSTREAM.json +12 -0
  10. package/ai/skills/stacks-technical-diagrams/agents/openai.yaml +2 -2
  11. package/ai/skills/stacks-technical-diagrams/assets/template.html +3655 -3798
  12. package/ai/skills/stacks-technical-diagrams/bin/archify.mjs +7290 -0
  13. package/ai/skills/stacks-technical-diagrams/bin/delivery-update.mjs +7 -0
  14. package/ai/skills/stacks-technical-diagrams/bin/diagrams +1 -0
  15. package/ai/skills/stacks-technical-diagrams/bin/finalize.mjs +1056 -0
  16. package/ai/skills/stacks-technical-diagrams/bin/open-artifact.mjs +72 -12
  17. package/ai/skills/stacks-technical-diagrams/bin/preview.mjs +348 -31
  18. package/ai/skills/stacks-technical-diagrams/bin/recover-output.mjs +41 -0
  19. package/ai/skills/stacks-technical-diagrams/bin/technical-diagrams.mjs +3 -2097
  20. package/ai/skills/stacks-technical-diagrams/bin/visual-check.mjs +2142 -157
  21. package/ai/skills/stacks-technical-diagrams/brand-marks/README.md +3 -3
  22. package/ai/skills/stacks-technical-diagrams/delta/architecture-delta.mjs +130 -33
  23. package/ai/skills/stacks-technical-diagrams/examples/agent-run.lifecycle.json +25 -30
  24. package/ai/skills/stacks-technical-diagrams/examples/agent-tool-call.workflow.json +0 -20
  25. package/ai/skills/stacks-technical-diagrams/examples/archify-dev-activity.timeline.json +176 -0
  26. package/ai/skills/stacks-technical-diagrams/examples/archify-repository.tree.json +197 -0
  27. package/ai/skills/stacks-technical-diagrams/examples/async-job-roundtrip.sequence.json +1 -6
  28. package/ai/skills/stacks-technical-diagrams/examples/brand-aware-delivery.architecture.json +3 -16
  29. package/ai/skills/stacks-technical-diagrams/examples/cache-miss-request.sequence.json +2 -7
  30. package/ai/skills/stacks-technical-diagrams/examples/checkout-platform.base.architecture.json +2 -1
  31. package/ai/skills/stacks-technical-diagrams/examples/checkout-platform.head.architecture.json +2 -1
  32. package/ai/skills/stacks-technical-diagrams/examples/checkout-request.waterfall.json +20 -0
  33. package/ai/skills/stacks-technical-diagrams/examples/class-payment-processors-rendered.html +14987 -0
  34. package/ai/skills/stacks-technical-diagrams/examples/class-payments-rendered.html +14787 -0
  35. package/ai/skills/stacks-technical-diagrams/examples/dataflow-product-analytics.html +14880 -0
  36. package/ai/skills/stacks-technical-diagrams/examples/delivery.explainer.json +155 -0
  37. package/ai/skills/stacks-technical-diagrams/examples/deployment-release.lifecycle.json +57 -34
  38. package/ai/skills/stacks-technical-diagrams/examples/erd-orders-rendered.html +15112 -0
  39. package/ai/skills/stacks-technical-diagrams/examples/event-stream.dataflow.json +1 -6
  40. package/ai/skills/stacks-technical-diagrams/examples/example-rebuild.waterfall.json +212 -0
  41. package/ai/skills/stacks-technical-diagrams/examples/holiday-planning.workflow.json +143 -0
  42. package/ai/skills/stacks-technical-diagrams/examples/incident-response.workflow.json +1 -6
  43. package/ai/skills/stacks-technical-diagrams/examples/lifecycle-agent-run.html +14892 -0
  44. package/ai/skills/stacks-technical-diagrams/examples/locales/de.json +463 -0
  45. package/ai/skills/stacks-technical-diagrams/examples/locales/fr.json +463 -0
  46. package/ai/skills/stacks-technical-diagrams/examples/locales/fr.partial.json +22 -0
  47. package/ai/skills/stacks-technical-diagrams/examples/locales/it.json +463 -0
  48. package/ai/skills/stacks-technical-diagrams/examples/locales/ja.json +463 -0
  49. package/ai/skills/stacks-technical-diagrams/examples/locales/pt.json +463 -0
  50. package/ai/skills/stacks-technical-diagrams/examples/locales/ru.json +463 -0
  51. package/ai/skills/stacks-technical-diagrams/examples/orders.erd.json +337 -0
  52. package/ai/skills/stacks-technical-diagrams/examples/payment-incident.timeline.json +24 -0
  53. package/ai/skills/stacks-technical-diagrams/examples/payment-platform.tree.json +22 -0
  54. package/ai/skills/stacks-technical-diagrams/examples/payment-processors.class.json +177 -0
  55. package/ai/skills/stacks-technical-diagrams/examples/payments.class.json +85 -0
  56. package/ai/skills/stacks-technical-diagrams/examples/product-analytics.dataflow.json +1 -6
  57. package/ai/skills/stacks-technical-diagrams/examples/production-deployment.architecture.json +3 -23
  58. package/ai/skills/stacks-technical-diagrams/examples/release-delivery.workflow.json +1 -6
  59. package/ai/skills/stacks-technical-diagrams/examples/sequence-cache-miss-request.html +14895 -0
  60. package/ai/skills/stacks-technical-diagrams/examples/subscription-billing-rendered.html +15369 -0
  61. package/ai/skills/stacks-technical-diagrams/examples/subscription-billing.erd.json +548 -0
  62. package/ai/skills/stacks-technical-diagrams/examples/timeline-archify-dev-activity-rendered.html +15002 -0
  63. package/ai/skills/stacks-technical-diagrams/examples/timeline-payment-incident-rendered.html +14772 -0
  64. package/ai/skills/stacks-technical-diagrams/examples/tree-archify-repository-rendered.html +15071 -0
  65. package/ai/skills/stacks-technical-diagrams/examples/tree-payment-platform-rendered.html +14810 -0
  66. package/ai/skills/stacks-technical-diagrams/examples/waterfall-checkout-request-rendered.html +14754 -0
  67. package/ai/skills/stacks-technical-diagrams/examples/waterfall-example-rebuild-rendered.html +14940 -0
  68. package/ai/skills/stacks-technical-diagrams/examples/web-app-rendered.html +14889 -0
  69. package/ai/skills/stacks-technical-diagrams/examples/web-app.architecture.json +1 -6
  70. package/ai/skills/stacks-technical-diagrams/examples/workflow-agent-tool-call-rendered.html +14907 -0
  71. package/ai/skills/stacks-technical-diagrams/explainer/browser-check.mjs +208 -0
  72. package/ai/skills/stacks-technical-diagrams/explainer/charts.mjs +70 -0
  73. package/ai/skills/stacks-technical-diagrams/explainer/check.mjs +168 -0
  74. package/ai/skills/stacks-technical-diagrams/explainer/diagrams.mjs +518 -0
  75. package/ai/skills/stacks-technical-diagrams/explainer/diff.mjs +124 -0
  76. package/ai/skills/stacks-technical-diagrams/explainer/inline.mjs +155 -0
  77. package/ai/skills/stacks-technical-diagrams/explainer/layout.mjs +35 -0
  78. package/ai/skills/stacks-technical-diagrams/explainer/page-bundle.mjs +16 -0
  79. package/ai/skills/stacks-technical-diagrams/explainer/parse.mjs +300 -0
  80. package/ai/skills/stacks-technical-diagrams/explainer/patch.mjs +117 -0
  81. package/ai/skills/stacks-technical-diagrams/explainer/prepare.mjs +131 -0
  82. package/ai/skills/stacks-technical-diagrams/explainer/reader.css +472 -0
  83. package/ai/skills/stacks-technical-diagrams/explainer/reader.js +667 -0
  84. package/ai/skills/stacks-technical-diagrams/explainer/render.mjs +224 -0
  85. package/ai/skills/stacks-technical-diagrams/explainer/revision.mjs +20 -0
  86. package/ai/skills/stacks-technical-diagrams/explainer/sources.mjs +318 -0
  87. package/ai/skills/stacks-technical-diagrams/explainer/validate.mjs +138 -0
  88. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/LICENSE +40 -0
  89. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/README.md +5 -0
  90. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/3DKXF73K.js +4 -0
  91. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/42UTT654.js +3 -0
  92. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/DKTLEL5E.js +1 -0
  93. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/EEIX5ZYH.js +2 -0
  94. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/EJ5KOXYD.js +25 -0
  95. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/GUJTEFZK.js +1 -0
  96. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/IZOKQ2GT.js +4 -0
  97. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/L4LY553T.js +3 -0
  98. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/MSKIJHB2.js +2 -0
  99. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/RVARI57O.js +1 -0
  100. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/UKSIWDDN.js +2 -0
  101. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/UPTXNAXN.js +2 -0
  102. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/XTDUIGUI.js +9 -0
  103. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/YAYTP6L5.js +9 -0
  104. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/core.js +1 -0
  105. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/diagrams/pie.js +1 -0
  106. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/diagrams/quadrantChart.js +1 -0
  107. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/diagrams/radar.js +1 -0
  108. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/diagrams/sankey.js +1 -0
  109. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/diagrams/venn.js +1 -0
  110. package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/diagrams/xychart.js +1 -0
  111. package/ai/skills/stacks-technical-diagrams/explainer/writing.mjs +139 -0
  112. package/ai/skills/stacks-technical-diagrams/locales/README.md +40 -0
  113. package/ai/skills/stacks-technical-diagrams/locales/ar.json +488 -0
  114. package/ai/skills/stacks-technical-diagrams/locales/en.json +488 -0
  115. package/ai/skills/stacks-technical-diagrams/locales/es.json +488 -0
  116. package/ai/skills/stacks-technical-diagrams/locales/ko.json +488 -0
  117. package/ai/skills/stacks-technical-diagrams/locales/manifest.json +10 -0
  118. package/ai/skills/stacks-technical-diagrams/locales/zh-CN.json +488 -0
  119. package/ai/skills/stacks-technical-diagrams/locales/zh-TW.json +488 -0
  120. package/ai/skills/stacks-technical-diagrams/migrations/workflow-v2.mjs +1 -0
  121. package/ai/skills/stacks-technical-diagrams/recipes/scenarios.mjs +115 -51
  122. package/ai/skills/stacks-technical-diagrams/references/architecture-layout-repair.md +18 -0
  123. package/ai/skills/stacks-technical-diagrams/references/authoring-contract.md +453 -51
  124. package/ai/skills/stacks-technical-diagrams/references/authoring-defaults.md +57 -0
  125. package/ai/skills/stacks-technical-diagrams/references/brand-marks.md +57 -3
  126. package/ai/skills/stacks-technical-diagrams/references/delivery-contract.md +603 -58
  127. package/ai/skills/stacks-technical-diagrams/references/explainer-authoring.md +274 -0
  128. package/ai/skills/stacks-technical-diagrams/references/repository-authoring.md +126 -0
  129. package/ai/skills/stacks-technical-diagrams/references/update-awareness.md +13 -0
  130. package/ai/skills/stacks-technical-diagrams/references/viewer-runtime.md +18 -11
  131. package/ai/skills/stacks-technical-diagrams/renderers/architecture/grid.mjs +1 -1
  132. package/ai/skills/stacks-technical-diagrams/renderers/architecture/labels.mjs +2 -0
  133. package/ai/skills/stacks-technical-diagrams/renderers/architecture/render-architecture.mjs +550 -424
  134. package/ai/skills/stacks-technical-diagrams/renderers/architecture/routing.mjs +1469 -0
  135. package/ai/skills/stacks-technical-diagrams/renderers/class/README.md +129 -0
  136. package/ai/skills/stacks-technical-diagrams/renderers/class/render-class.mjs +1095 -0
  137. package/ai/skills/stacks-technical-diagrams/renderers/dataflow/README.md +89 -17
  138. package/ai/skills/stacks-technical-diagrams/renderers/dataflow/dataflow-compiler.mjs +1605 -0
  139. package/ai/skills/stacks-technical-diagrams/renderers/dataflow/joint-label-routing.mjs +165 -0
  140. package/ai/skills/stacks-technical-diagrams/renderers/dataflow/label-capacity.mjs +81 -0
  141. package/ai/skills/stacks-technical-diagrams/renderers/dataflow/render-dataflow.mjs +14 -474
  142. package/ai/skills/stacks-technical-diagrams/renderers/erd/README.md +246 -0
  143. package/ai/skills/stacks-technical-diagrams/renderers/erd/grid.mjs +150 -0
  144. package/ai/skills/stacks-technical-diagrams/renderers/erd/render-erd.mjs +1588 -0
  145. package/ai/skills/stacks-technical-diagrams/renderers/explainer/render-explainer.mjs +42 -0
  146. package/ai/skills/stacks-technical-diagrams/renderers/lifecycle/README.md +83 -94
  147. package/ai/skills/stacks-technical-diagrams/renderers/lifecycle/render-lifecycle.mjs +990 -417
  148. package/ai/skills/stacks-technical-diagrams/renderers/sequence/README.md +49 -17
  149. package/ai/skills/stacks-technical-diagrams/renderers/sequence/render-sequence.mjs +735 -94
  150. package/ai/skills/stacks-technical-diagrams/renderers/shared/atomic-output.mjs +1982 -0
  151. package/ai/skills/stacks-technical-diagrams/renderers/shared/automatic-labels.mjs +290 -0
  152. package/ai/skills/stacks-technical-diagrams/renderers/shared/brand-marks.mjs +169 -26
  153. package/ai/skills/stacks-technical-diagrams/renderers/shared/cli.mjs +266 -54
  154. package/ai/skills/stacks-technical-diagrams/renderers/shared/desktop-readability.mjs +106 -0
  155. package/ai/skills/stacks-technical-diagrams/renderers/shared/diagnostics.mjs +0 -0
  156. package/ai/skills/stacks-technical-diagrams/renderers/shared/generated-validators.mjs +268 -2
  157. package/ai/skills/stacks-technical-diagrams/renderers/shared/geometry.mjs +774 -124
  158. package/ai/skills/stacks-technical-diagrams/renderers/shared/i18n.mjs +289 -556
  159. package/ai/skills/stacks-technical-diagrams/renderers/shared/layout-report.mjs +18 -1
  160. package/ai/skills/stacks-technical-diagrams/renderers/shared/legend.mjs +16 -6
  161. package/ai/skills/stacks-technical-diagrams/renderers/shared/node-card-style.mjs +32 -0
  162. package/ai/skills/stacks-technical-diagrams/renderers/shared/output-path.mjs +329 -229
  163. package/ai/skills/stacks-technical-diagrams/renderers/shared/owned-temp-directory.mjs +82 -0
  164. package/ai/skills/stacks-technical-diagrams/renderers/shared/path-semantics.mjs +1017 -0
  165. package/ai/skills/stacks-technical-diagrams/renderers/shared/portable-path.mjs +408 -0
  166. package/ai/skills/stacks-technical-diagrams/renderers/shared/repository-evidence.mjs +235 -79
  167. package/ai/skills/stacks-technical-diagrams/renderers/shared/repository-location.mjs +17 -4
  168. package/ai/skills/stacks-technical-diagrams/renderers/shared/route-quality.mjs +670 -0
  169. package/ai/skills/stacks-technical-diagrams/renderers/shared/sidecar-path.mjs +38 -0
  170. package/ai/skills/stacks-technical-diagrams/renderers/shared/software-notices.mjs +6 -0
  171. package/ai/skills/stacks-technical-diagrams/renderers/shared/spatial-grid.mjs +66 -0
  172. package/ai/skills/stacks-technical-diagrams/renderers/shared/svg-path-analysis.mjs +135 -0
  173. package/ai/skills/stacks-technical-diagrams/renderers/shared/text-fit.mjs +59 -3
  174. package/ai/skills/stacks-technical-diagrams/renderers/shared/utils.mjs +63 -35
  175. package/ai/skills/stacks-technical-diagrams/renderers/shared/validator.mjs +2 -5
  176. package/ai/skills/stacks-technical-diagrams/renderers/timeline/README.md +76 -0
  177. package/ai/skills/stacks-technical-diagrams/renderers/timeline/render-timeline.mjs +576 -0
  178. package/ai/skills/stacks-technical-diagrams/renderers/tree/README.md +96 -0
  179. package/ai/skills/stacks-technical-diagrams/renderers/tree/render-tree.mjs +573 -0
  180. package/ai/skills/stacks-technical-diagrams/renderers/waterfall/README.md +73 -0
  181. package/ai/skills/stacks-technical-diagrams/renderers/waterfall/render-waterfall.mjs +413 -0
  182. package/ai/skills/stacks-technical-diagrams/renderers/workflow/README.md +137 -23
  183. package/ai/skills/stacks-technical-diagrams/renderers/workflow/render-workflow.mjs +18 -6
  184. package/ai/skills/stacks-technical-diagrams/renderers/workflow/workflow-compiler.mjs +2230 -710
  185. package/ai/skills/stacks-technical-diagrams/renderers/workflow/workflow-migration-geometry.mjs +17 -0
  186. package/ai/skills/stacks-technical-diagrams/renderers/workflow/workflow-placement-repair.mjs +94 -0
  187. package/ai/skills/stacks-technical-diagrams/schemas/README.md +87 -40
  188. package/ai/skills/stacks-technical-diagrams/schemas/architecture.schema.json +7 -33
  189. package/ai/skills/stacks-technical-diagrams/schemas/class.schema.json +345 -0
  190. package/ai/skills/stacks-technical-diagrams/schemas/common.schema.json +68 -2
  191. package/ai/skills/stacks-technical-diagrams/schemas/dataflow.schema.json +14 -3
  192. package/ai/skills/stacks-technical-diagrams/schemas/erd.schema.json +381 -0
  193. package/ai/skills/stacks-technical-diagrams/schemas/explainer.schema.json +927 -0
  194. package/ai/skills/stacks-technical-diagrams/schemas/lifecycle.schema.json +23 -110
  195. package/ai/skills/stacks-technical-diagrams/schemas/sequence.schema.json +15 -4
  196. package/ai/skills/stacks-technical-diagrams/schemas/timeline.schema.json +160 -0
  197. package/ai/skills/stacks-technical-diagrams/schemas/tree.schema.json +141 -0
  198. package/ai/skills/stacks-technical-diagrams/schemas/waterfall.schema.json +147 -0
  199. package/ai/skills/stacks-technical-diagrams/schemas/workflow.schema.json +14 -3
  200. package/ai/skills/stacks-technical-diagrams/scripts/check-render-output.mjs +876 -243
  201. package/ai/skills/stacks-technical-diagrams/scripts/check-update.mjs +1717 -0
  202. package/ai/skills/stacks-technical-diagrams/scripts/delivery-update-child.mjs +26 -0
  203. package/ai/skills/stacks-technical-diagrams/scripts/generate-brand-marks.mjs +141 -0
  204. package/ai/skills/stacks-technical-diagrams/scripts/generate-validators.mjs +105 -0
  205. package/ai/skills/stacks-technical-diagrams/scripts/render-examples.mjs +11 -1
  206. package/ai/skills/stacks-technical-diagrams/scripts/update-contract.mjs +187 -0
  207. package/ai/skills/stacks-technical-diagrams/skill-release.json +10 -0
  208. package/ide/vscode/package.json +1 -1
  209. package/package.json +2 -2
@@ -0,0 +1,463 @@
1
+ {
2
+ "page.title": "Diagramme {title}",
3
+ "diagram.description.architecture": "Un diagramme d'architecture généré par Archify.",
4
+ "diagram.description.workflow": "Un diagramme de workflow généré par Archify.",
5
+ "diagram.description.sequence": "Un diagramme de séquence généré par Archify.",
6
+ "diagram.description.dataflow": "Un diagramme de flux de données généré par Archify.",
7
+ "diagram.description.lifecycle": "Un diagramme de cycle de vie généré par Archify.",
8
+ "node.focus": "Centrer sur {label}",
9
+ "node.focus.detail": "Centrer sur {label}, {detail}",
10
+ "node.context.architecture": "Composant d'architecture",
11
+ "node.context.workflow": "Nœud de workflow",
12
+ "node.context.sequence": "Participant de séquence",
13
+ "node.context.dataflow": "Nœud de flux de données",
14
+ "node.context.lifecycle": "État de cycle de vie",
15
+ "legend.title": "Légende",
16
+ "legend.architecture.frontend": "Frontend",
17
+ "legend.architecture.backend": "Backend",
18
+ "legend.architecture.database": "Base de données",
19
+ "legend.architecture.cloud": "Cloud",
20
+ "legend.architecture.security": "Sécurité",
21
+ "legend.architecture.messagebus": "Bus de messages",
22
+ "legend.architecture.external": "Externe",
23
+ "legend.workflow.frontend": "Interface utilisateur",
24
+ "legend.workflow.backend": "Logique de l'agent",
25
+ "legend.workflow.security": "Politique",
26
+ "legend.workflow.messagebus": "Action d'outil",
27
+ "legend.workflow.database": "Contexte / trace",
28
+ "legend.workflow.cloud": "Service cloud",
29
+ "legend.workflow.external": "Système externe",
30
+ "legend.sequence.emphasis": "requête principale",
31
+ "legend.sequence.return": "retour",
32
+ "legend.sequence.security": "sécurité",
33
+ "legend.sequence.dashed": "trace asynchrone",
34
+ "legend.sequence.default": "message",
35
+ "legend.dataflow.emphasis": "donnée principale",
36
+ "legend.dataflow.security": "politique / PII",
37
+ "legend.dataflow.dashed": "lot asynchrone",
38
+ "legend.dataflow.database": "entrepôt de données",
39
+ "legend.dataflow.default": "flux de données",
40
+ "legend.lifecycle.start": "état initial",
41
+ "legend.lifecycle.active": "actif",
42
+ "legend.lifecycle.waiting": "attente",
43
+ "legend.lifecycle.decision": "décision",
44
+ "legend.lifecycle.success": "succès",
45
+ "legend.lifecycle.failure": "échec / sortie",
46
+ "legend.lifecycle.neutral": "neutre",
47
+ "legend.lifecycle.external": "externe",
48
+ "legend.lifecycle.final": "état final",
49
+ "viewer.kind.frontend": "Frontend",
50
+ "viewer.kind.backend": "Backend",
51
+ "viewer.kind.database": "Base de données",
52
+ "viewer.kind.cloud": "Cloud",
53
+ "viewer.kind.security": "Sécurité",
54
+ "viewer.kind.messagebus": "Bus de messages",
55
+ "viewer.kind.external": "Externe",
56
+ "viewer.kind.neutral": "Neutre",
57
+ "viewer.kind.node": "Nœud",
58
+ "viewer.kind.start": "Début",
59
+ "viewer.kind.active": "Actif",
60
+ "viewer.kind.waiting": "En attente",
61
+ "viewer.kind.decision": "Décision",
62
+ "viewer.kind.success": "Succès",
63
+ "viewer.kind.failure": "Échec",
64
+ "viewer.toolbar.actions": "Actions du diagramme",
65
+ "viewer.theme.toggle.title": "Changer de thème (T)",
66
+ "viewer.theme.toggle": "Changer le thème de couleur",
67
+ "viewer.theme.dark": "Sombre",
68
+ "viewer.theme.light": "Clair",
69
+ "viewer.preset.choose.title": "Choisir le style visuel (S pour changer)",
70
+ "viewer.preset.choose": "Choisir le style visuel",
71
+ "viewer.preset.style": "Style",
72
+ "viewer.preset.menu": "Style visuel",
73
+ "viewer.preset.identity": "Identité visuelle",
74
+ "viewer.preset.cycles": "S pour changer",
75
+ "viewer.preset.classic": "Classic",
76
+ "viewer.preset.classic.short": "Classic",
77
+ "viewer.preset.classic.hint": "Style technique stable par défaut",
78
+ "viewer.preset.flow": "Flux de signal",
79
+ "viewer.preset.flow.short": "Flux",
80
+ "viewer.preset.flow.hint": "Présentation animée et dynamique",
81
+ "viewer.preset.blueprint": "Plan",
82
+ "viewer.preset.blueprint.hint": "Revue technique",
83
+ "viewer.preset.editorial": "Éditorial",
84
+ "viewer.preset.editorial.hint": "Notes de publication et de lancement",
85
+ "viewer.preset.badge.signalFlow": "FLUX DE SIGNAL",
86
+ "viewer.preset.badge.blueprint": "PLAN / RÉV. 01",
87
+ "viewer.preset.badge.editorial": "ÉDITORIAL / NOTE DE TERRAIN",
88
+ "viewer.preset.badge.editorialPlate": "ARCHIFY / PLANCHE 04",
89
+ "viewer.preset.current": "Style visuel : {style}. Choisir le style visuel",
90
+ "viewer.motion.live": "Animé",
91
+ "viewer.motion.still": "Statique",
92
+ "viewer.motion.pause": "Mettre l'animation en pause",
93
+ "viewer.motion.resume": "Reprendre l'animation",
94
+ "viewer.motion.reduced": "Animation suspendue en raison de la préférence de mouvement réduit",
95
+ "viewer.motion.hidden": "Animation suspendue pendant que la page est masquée",
96
+ "viewer.motion.yielding": "Mettre l'animation en pause ; cède actuellement la place à {owner}",
97
+ "viewer.motion.yielding.title": "Aperçu en direct activé · cède la place à {owner}",
98
+ "viewer.owner.route": "Sonde d'itinéraire",
99
+ "viewer.owner.lens": "Lentille sémantique",
100
+ "viewer.owner.relationship": "Aperçu de relation",
101
+ "viewer.owner.intent": "Trace d'intention",
102
+ "viewer.owner.focus": "le focus sémantique",
103
+ "viewer.owner.legend": "l'aperçu de la légende",
104
+ "viewer.owner.reader": "l'interaction du lecteur",
105
+ "viewer.present.enter": "Entrer en mode présentation",
106
+ "viewer.present.enter.title": "Mode présentation (F)",
107
+ "viewer.present.exit": "Quitter le mode présentation",
108
+ "viewer.present.exit.title": "Quitter le mode présentation (F ou Échap)",
109
+ "viewer.present.present": "Présenter",
110
+ "viewer.present.exit.label": "Quitter",
111
+ "viewer.export.button": "Exporter",
112
+ "viewer.export.button.title": "Exporter le diagramme (E)",
113
+ "viewer.export.diagram": "Exporter le diagramme",
114
+ "viewer.export.menu": "Exporter",
115
+ "viewer.export.subtitle": "Des exports portables et soignés",
116
+ "viewer.export.share": "Partager",
117
+ "viewer.export.shareCard": "Carte de partage",
118
+ "viewer.export.routeShareCard": "Carte de partage d'itinéraire",
119
+ "viewer.export.reachShareCard": "Carte de partage de portée",
120
+ "viewer.export.copyDiagram": "Copier le diagramme",
121
+ "viewer.export.clipboardPng": "PNG vers le presse-papiers",
122
+ "viewer.export.raster": "Images matricielles",
123
+ "viewer.export.image": "Image",
124
+ "viewer.export.lossless": "Image sans perte",
125
+ "viewer.export.compact": "Image compacte",
126
+ "viewer.export.modern": "Image au format moderne",
127
+ "viewer.export.vectorMotion": "Vecteur et animation",
128
+ "viewer.export.vectorMotion.heading": "Vecteur et animation",
129
+ "viewer.export.editable": "Vecteur modifiable",
130
+ "viewer.export.motion6s": "Animation de 6 s",
131
+ "viewer.export.unsupported": "Non pris en charge par ce navigateur",
132
+ "viewer.export.clipboardUnsupported": "L'écriture d'image dans le presse-papiers n'est pas prise en charge par ce navigateur",
133
+ "viewer.export.clipboardUnsupported.short": "L'écriture d'image dans le presse-papiers n'est pas prise en charge par ce navigateur.",
134
+ "viewer.export.motionUnavailable": "Capture d'animation indisponible dans ce navigateur",
135
+ "viewer.export.webmUnavailable": "WebM indisponible dans ce navigateur",
136
+ "viewer.export.failed": "Échec de l'export : {message}",
137
+ "viewer.export.unknownVariant": "Variante de carte de partage inconnue : {variant}",
138
+ "viewer.export.routeRequired": "Tracez un itinéraire avant d'exporter une carte de partage d'itinéraire",
139
+ "viewer.export.reachRequired": "Tracez une portée éditée avant d'exporter une carte de partage de portée",
140
+ "viewer.export.unknown": "inconnu",
141
+ "viewer.export.routeFailed": "Échec de l'export de la carte de partage d'itinéraire : {message}",
142
+ "viewer.export.reachFailed": "Échec de l'export de la carte de partage de portée : {message}",
143
+ "viewer.export.copyFailed": "Échec de la copie : {message}",
144
+ "viewer.export.copiedPng": "PNG copié dans le presse-papiers",
145
+ "viewer.export.downloadedRoute": "Carte de partage d'itinéraire téléchargée",
146
+ "viewer.export.downloadedReach": "Carte de partage de portée téléchargée",
147
+ "viewer.export.downloadedWebm": "WebM téléchargé",
148
+ "viewer.export.recording": "Enregistrement de 6 secondes d'animation…",
149
+ "viewer.export.card.routeSummary.one": "Itinéraire : {source} → {target} · {count} saut orienté",
150
+ "viewer.export.card.routeSummary.other": "Itinéraire : {source} → {target} · {count} sauts orientés",
151
+ "viewer.export.card.reachSummary": "Portée {direction} éditée depuis {origin} · {nodes} · {links} · max {hops}",
152
+ "viewer.export.card.node.one": "{count} nœud",
153
+ "viewer.export.card.node.other": "{count} nœuds",
154
+ "viewer.export.card.link.one": "{count} lien",
155
+ "viewer.export.card.link.other": "{count} liens",
156
+ "viewer.export.card.hop.one": "{count} saut",
157
+ "viewer.export.card.hop.other": "{count} sauts",
158
+ "viewer.export.card.routeBadge": "ARCHIFY · ITINÉRAIRE · {hops}",
159
+ "viewer.export.card.reachBadge": "ARCHIFY · PORTÉE {direction}",
160
+ "viewer.export.direction.upstream": "Amont",
161
+ "viewer.export.direction.downstream": "Aval",
162
+ "viewer.export.error.canvasUnavailable": "Canevas indisponible pour {label}",
163
+ "viewer.export.error.contextUnavailable": "Contexte de canevas 2D indisponible pour {label}",
164
+ "viewer.export.error.toBlobUnavailable": "canvas.toBlob indisponible pour {label}",
165
+ "viewer.export.error.toBlobNull": "canvas.toBlob n'a renvoyé aucune donnée pour {label}",
166
+ "viewer.export.error.variantsCombined": "Les variantes de carte de partage ne peuvent pas être combinées",
167
+ "viewer.export.error.viewerState": "L'export de la carte de partage n'a pas pu supprimer l'état temporaire du visualiseur",
168
+ "viewer.export.error.routeState": "L'export de la carte d'itinéraire n'a pas pu préserver l'itinéraire résolu en toute sécurité",
169
+ "viewer.export.error.reachState": "L'export de la carte de portée n'a pas pu préserver la portée éditée en toute sécurité",
170
+ "viewer.export.error.webmRequirements": "L'export d'animation WebM nécessite une animation de trace et la prise en charge de MediaRecorder par le navigateur",
171
+ "viewer.export.error.mediaRecorder": "Échec de MediaRecorder",
172
+ "viewer.export.error.emptyWebm": "MediaRecorder a produit un fichier WebM vide",
173
+ "viewer.export.error.webmBackground": "L'arrière-plan SVG n'a pas pu être chargé pour l'export WebM",
174
+ "viewer.guide.eyebrow": "Guide du diagramme",
175
+ "viewer.guide.close": "Fermer le guide du diagramme",
176
+ "viewer.guide.inspecting": "Inspection de la sémantique compilée",
177
+ "viewer.guide.actions": "Actions d'exploration du diagramme",
178
+ "viewer.guide.find": "Trouver un nœud",
179
+ "viewer.guide.find.hint": "Rechercher par libellés, responsabilités, types et identifiants stables.",
180
+ "viewer.guide.route": "Tracer un itinéraire",
181
+ "viewer.guide.route.aria": "Tracer un itinéraire orienté",
182
+ "viewer.guide.route.hint": "Découvrez comment deux nœuds sémantiques sont reliés dans le sens édité.",
183
+ "viewer.guide.map": "Voir tout le système",
184
+ "viewer.guide.map.hint": "Ouvrir le radar sémantique avec un viewport en direct et des nœuds stables.",
185
+ "viewer.guide.lens": "Comparer les types sémantiques",
186
+ "viewer.guide.lens.hint": "Comptez les rôles, révélez leur trafic et comparez les liens édités directs.",
187
+ "viewer.guide.present": "Entrer en mode présentation",
188
+ "viewer.guide.present.hint": "Donnez tout le viewport au diagramme en direct sans modifier l'export.",
189
+ "viewer.guide.shortcuts": "Raccourcis clavier supplémentaires",
190
+ "viewer.guide.shortcut.export": "Exporter",
191
+ "viewer.guide.shortcut.theme": "Thème",
192
+ "viewer.guide.shortcut.style": "Style",
193
+ "viewer.guide.shortcut.reset": "Réinitialiser",
194
+ "viewer.guide.shortcut.zoomIn": "Zoom avant",
195
+ "viewer.guide.shortcut.zoomOut": "Zoom arrière",
196
+ "viewer.guide.shortcut.close": "Fermer",
197
+ "viewer.guide.facts": "{nodes} · {relationships}",
198
+ "viewer.guide.fact.node.one": "{count} nœud sémantique",
199
+ "viewer.guide.fact.node.other": "{count} nœuds sémantiques",
200
+ "viewer.guide.fact.relationship.one": "{count} relation",
201
+ "viewer.guide.fact.relationship.other": "{count} relations",
202
+ "viewer.guide.open": "Ouvrir le guide du diagramme",
203
+ "viewer.finder.title": "Trouver un nœud",
204
+ "viewer.finder.close": "Fermer le chercheur de nœuds",
205
+ "viewer.finder.placeholder": "Rechercher par libellé ou identifiant",
206
+ "viewer.finder.search": "Rechercher les nœuds du diagramme",
207
+ "viewer.finder.results": "Nœuds du diagramme",
208
+ "viewer.finder.empty": "Aucun nœud correspondant",
209
+ "viewer.finder.result.focus": "Centrer sur {label}",
210
+ "viewer.finder.result.routeStart": "Choisir {label} comme point de départ de l'itinéraire",
211
+ "viewer.finder.result.routeTarget": "Choisir {label} comme destination de l'itinéraire, {links}",
212
+ "viewer.finder.status.empty": "Aucun nœud correspondant",
213
+ "viewer.finder.status.count.one": "{count} nœud correspondant",
214
+ "viewer.finder.status.count.other": "{count} nœuds correspondants",
215
+ "viewer.finder.noun.nodes": "nœuds",
216
+ "viewer.finder.link.one": "{count} lien",
217
+ "viewer.finder.link.other": "{count} liens",
218
+ "viewer.finder.result.focus.one": "Centrer sur {label}, {count} connexion associée",
219
+ "viewer.finder.result.focus.other": "Centrer sur {label}, {count} connexions associées",
220
+ "viewer.finder.status.filtered": "{visible} sur {available} {noun}",
221
+ "viewer.finder.status.all": "{available} {noun}",
222
+ "viewer.passport.eyebrow": "Passeport sémantique",
223
+ "viewer.passport.metadata": "Métadonnées du nœud",
224
+ "viewer.passport.evidence": "Preuve de source vérifiée",
225
+ "viewer.passport.verified": "Source vérifiée",
226
+ "viewer.passport.verificationScope": "Vérifié par rapport au Git local à la révision épinglée. L'accès distant n'a pas été vérifié.",
227
+ "viewer.passport.reach": "Portée éditée",
228
+ "viewer.passport.reach.trace": "Tracer l'accessibilité éditée",
229
+ "viewer.passport.upstream": "Amont",
230
+ "viewer.passport.downstream": "Aval",
231
+ "viewer.passport.upstream.trace": "Tracer l'accessibilité éditée en amont",
232
+ "viewer.passport.downstream.trace": "Tracer l'accessibilité éditée en aval",
233
+ "viewer.passport.close": "Fermer le passeport sémantique",
234
+ "viewer.passport.copy": "Copier le lien",
235
+ "viewer.passport.copy.focus": "Copier le lien du nœud centré",
236
+ "viewer.passport.relations": "Relations",
237
+ "viewer.passport.relations.show": "Afficher les relations connectées",
238
+ "viewer.passport.relations.hide": "Masquer les relations connectées",
239
+ "viewer.passport.relations.list": "Relations connectées",
240
+ "viewer.passport.copyRelation": "Copier la relation",
241
+ "viewer.passport.copyNode": "Copier le nœud",
242
+ "viewer.passport.copyPinned": "Copier le lien de la relation épinglée",
243
+ "viewer.passport.copySource": "Copier le lien du nœud source",
244
+ "viewer.passport.copy.focused.success": "Lien du nœud centré copié",
245
+ "viewer.passport.copy.pinned.success": "Lien de la relation épinglée copié",
246
+ "viewer.passport.copy.focused.failed": "Impossible de copier le lien du nœud centré",
247
+ "viewer.passport.copy.pinned.failed": "Impossible de copier le lien de la relation épinglée",
248
+ "viewer.passport.relationship.none": "Aucune relation connectée",
249
+ "viewer.passport.relationship.count.one": "{count} relation",
250
+ "viewer.passport.relationship.count.other": "{count} relations",
251
+ "viewer.passport.relationship.show.one": "Afficher {count} relation connectée",
252
+ "viewer.passport.relationship.show.other": "Afficher {count} relations connectées",
253
+ "viewer.passport.relationship.summary": "{out} sortantes · {in} entrantes{loops}",
254
+ "viewer.passport.relationship.loops": " · {count} boucle",
255
+ "viewer.passport.relationship.explorer": "Explorateur de relations directes",
256
+ "viewer.passport.relationship.help": "Utilisez les flèches pour explorer les relations. Appuyez sur Entrée ou Espace pour épingler les détails ; Échap efface.",
257
+ "viewer.passport.relationship.loopsBack": "boucle vers",
258
+ "viewer.passport.relationship.connectsTo": "se connecte à",
259
+ "viewer.passport.relationship.connectsFrom": "se connecte depuis",
260
+ "viewer.passport.relationship.pinned": "Relation épinglée · {from} → {to} · {label}",
261
+ "viewer.passport.relationship.inspect": "Inspecter la relation {index} sur {total} : {from} vers {to}, {label}. Appuyez sur Entrée pour les détails.",
262
+ "viewer.passport.relationship.group.out": "Sortantes",
263
+ "viewer.passport.relationship.group.in": "Entrantes",
264
+ "viewer.passport.relationship.group.loop": "Boucles propres",
265
+ "viewer.passport.relationship.row": "{group} : {relationship}, {neighbor}",
266
+ "viewer.passport.relationship.direction.out": "SORT →",
267
+ "viewer.passport.relationship.direction.in": "← ENTRE",
268
+ "viewer.passport.relationship.direction.loop": "BOUCLE",
269
+ "viewer.passport.sourceCount.one": "{count} référence de source vérifiée",
270
+ "viewer.passport.sourceCount.other": "{count} références de source vérifiées",
271
+ "viewer.passport.repository.open": "Ouvrir la révision {revision} du dépôt vérifié",
272
+ "viewer.passport.source.open": "Ouvrir la source vérifiée {path} à la révision {revision}",
273
+ "viewer.passport.source.openLink": "Ouvrir ↗",
274
+ "viewer.passport.reach.upstream.one": "Tracer {count} nœud édité en amont",
275
+ "viewer.passport.reach.upstream.other": "Tracer {count} nœuds édités en amont",
276
+ "viewer.passport.reach.downstream.one": "Tracer {count} nœud édité en aval",
277
+ "viewer.passport.reach.downstream.other": "Tracer {count} nœuds édités en aval",
278
+ "viewer.passport.reach.noUpstream": "Aucun nœud édité en amont",
279
+ "viewer.passport.reach.noDownstream": "Aucun nœud édité en aval",
280
+ "viewer.passport.reach.status": "{direction} · {nodes} nœuds · {links} liens · max {hops} sauts",
281
+ "viewer.route.eyebrow": "Sonde d'itinéraire",
282
+ "viewer.route.start": "Choisir un nœud de départ",
283
+ "viewer.route.start.find": "Trouver le départ",
284
+ "viewer.route.start.find.aria": "Trouver un départ d'itinéraire",
285
+ "viewer.route.copy": "Copier le lien",
286
+ "viewer.route.copy.aria": "Copier le lien de l'itinéraire tracé",
287
+ "viewer.route.clear": "Effacer",
288
+ "viewer.route.clear.aria": "Effacer la sonde d'itinéraire",
289
+ "viewer.route.traced": "Itinéraire tracé",
290
+ "viewer.route.pickTwo": "Choisissez deux nœuds sémantiques sur le diagramme",
291
+ "viewer.route.pickOne": "Choisissez un nœud sémantique sur le diagramme",
292
+ "viewer.route.controls": "Contrôles du parcours d'itinéraire",
293
+ "viewer.route.previous": "Position précédente de l'itinéraire",
294
+ "viewer.route.play": "Lire le parcours de l'itinéraire",
295
+ "viewer.route.pause": "Mettre le parcours de l'itinéraire en pause",
296
+ "viewer.route.replay": "Rejouer le parcours de l'itinéraire",
297
+ "viewer.route.next": "Position suivante de l'itinéraire",
298
+ "viewer.route.journey": "Parcours",
299
+ "viewer.route.pause.label": "Pause",
300
+ "viewer.route.replay.label": "Rejouer",
301
+ "viewer.route.overview": "Vue d'ensemble",
302
+ "viewer.route.overview.aria": "Afficher la vue d'ensemble complète de l'itinéraire",
303
+ "viewer.route.instructions": "Choisissez la source, puis la destination. Le sens compte.",
304
+ "viewer.route.destination": "Choisir une destination depuis {label}",
305
+ "viewer.route.destination.find": "Trouver une cible",
306
+ "viewer.route.destination.find.aria": "Trouver une destination d'itinéraire accessible",
307
+ "viewer.route.differentDestination": "Choisir une autre destination",
308
+ "viewer.route.distinct": "Un itinéraire nécessite deux nœuds sémantiques distincts.",
309
+ "viewer.route.unreachable": "Aucun itinéraire orienté vers {label}",
310
+ "viewer.route.unreachable.detail": "{target} n'est pas accessible depuis {source}. Choisissez une destination surlignée.",
311
+ "viewer.route.start.instructions": "Sélectionnez la source. L'étape suivante ne révélera que les destinations orientées.",
312
+ "viewer.route.copy.success": "Lien de l'itinéraire tracé copié",
313
+ "viewer.route.copy.failed": "Impossible de copier le lien de l'itinéraire tracé",
314
+ "viewer.route.position": "Position {index} sur {total} de l'itinéraire : {label}",
315
+ "viewer.route.step": "Étape {index} sur {total} · {phase} · {label}",
316
+ "viewer.route.motionRequired": "Le parcours automatique nécessite le mode Animé",
317
+ "viewer.route.trigger.clear": "Effacer l'itinéraire tracé",
318
+ "viewer.route.overview.status": "{nodes} · {hops} · itinéraire édité le plus court",
319
+ "viewer.route.overview.node.one": "{count} nœud",
320
+ "viewer.route.overview.node.other": "{count} nœuds",
321
+ "viewer.route.overview.hop.one": "{count} saut orienté",
322
+ "viewer.route.overview.hop.other": "{count} sauts orientés",
323
+ "viewer.route.phase.playing": "En lecture",
324
+ "viewer.route.phase.complete": "Terminé",
325
+ "viewer.route.phase.inspecting": "Inspection",
326
+ "viewer.route.destination.count.one": "{count} destination orientée disponible. Choisissez un nœud surligné.",
327
+ "viewer.route.destination.count.other": "{count} destinations orientées disponibles. Choisissez un nœud surligné.",
328
+ "viewer.route.noOutgoing": "Aucun itinéraire sortant ne débute ici. Effacez et choisissez une autre source.",
329
+ "viewer.route.result.title": "{source} vers {target}",
330
+ "viewer.route.finder.source.title": "Choisir le départ de l'itinéraire",
331
+ "viewer.route.finder.source.placeholder": "Rechercher des sources d'itinéraire",
332
+ "viewer.route.finder.source.empty": "Aucune source d'itinéraire correspondante",
333
+ "viewer.route.finder.source.results": "Nœuds pouvant débuter un itinéraire",
334
+ "viewer.route.finder.source.noun": "sources d'itinéraire",
335
+ "viewer.route.finder.source.badge": "départ",
336
+ "viewer.route.finder.target.title": "Destination depuis {label}",
337
+ "viewer.route.finder.target.placeholder": "Rechercher des destinations accessibles",
338
+ "viewer.route.finder.target.empty": "Aucune destination accessible correspondante",
339
+ "viewer.route.finder.target.results": "Destinations d'itinéraire accessibles",
340
+ "viewer.route.finder.target.noun": "destinations accessibles",
341
+ "viewer.route.hop.one": "{count} saut",
342
+ "viewer.route.hop.other": "{count} sauts",
343
+ "viewer.lens.eyebrow": "Lentille sémantique",
344
+ "viewer.lens.title": "Comparer les rôles du système",
345
+ "viewer.lens.close": "Fermer la lentille sémantique",
346
+ "viewer.lens.instruction": "Choisissez jusqu'à deux types sémantiques. Un seul révèle son trafic réel ; deux comparent uniquement les relations éditées directes.",
347
+ "viewer.lens.kinds": "Types sémantiques",
348
+ "viewer.lens.choose": "Choisissez un type pour inspecter ses nœuds et relations associées.",
349
+ "viewer.lens.copy": "Copier le lien de la lentille sémantique",
350
+ "viewer.lens.clear": "Effacer la lentille sémantique",
351
+ "viewer.lens.open": "Ouvrir la lentille sémantique",
352
+ "viewer.lens.openActive": "Ouvrir la lentille sémantique active",
353
+ "viewer.lens.legend": "Légende sémantique",
354
+ "viewer.lens.legend.inspect.one": "Inspecter {label}, {count} nœud",
355
+ "viewer.lens.legend.inspect.other": "Inspecter {label}, {count} nœuds",
356
+ "viewer.lens.kind.count.one": "{label}, {count} nœud",
357
+ "viewer.lens.kind.count.other": "{label}, {count} nœuds",
358
+ "viewer.lens.compare.one": "{first} → {second} : {forward} · {second} → {first} : {reverse} · {count} relation directe",
359
+ "viewer.lens.compare.other": "{first} → {second} : {forward} · {second} → {first} : {reverse} · {count} relations directes",
360
+ "viewer.lens.single": "{nodes} · {relationships} · les nœuds connectés restent visibles",
361
+ "viewer.lens.node.one": "{count} nœud {label}",
362
+ "viewer.lens.node.other": "{count} nœuds {label}",
363
+ "viewer.lens.relationship.one": "{count} relation associée",
364
+ "viewer.lens.relationship.other": "{count} relations associées",
365
+ "viewer.radar.title": "Radar sémantique",
366
+ "viewer.radar.building": "Construction de la vue d'ensemble",
367
+ "viewer.radar.openFull": "Ouvrir le radar sémantique complet",
368
+ "viewer.radar.open": "Ouvrir le radar",
369
+ "viewer.radar.close": "Fermer le radar sémantique",
370
+ "viewer.radar.surface": "Vue d'ensemble du diagramme. Cliquez sur un nœud pour le centrer, ou utilisez les flèches pour vous déplacer.",
371
+ "viewer.radar.click": "Cliquer sur le nœud",
372
+ "viewer.radar.drag": "Glisser pour se déplacer",
373
+ "viewer.radar.space": "Le radar sémantique a besoin de plus d'espace MAP.",
374
+ "viewer.radar.nodes": "Nœuds du radar du diagramme sémantique",
375
+ "viewer.radar.focus": "Centrer sur {label} depuis le radar sémantique",
376
+ "viewer.radar.status": "{count} nœuds · {viewport}",
377
+ "viewer.radar.fullMap": "{count} nœuds · carte complète",
378
+ "viewer.radar.compacted": "Radar compacté pour éviter de masquer le passeport sémantique ou les contrôles MAP.",
379
+ "viewer.radar.cancelWaiting": "Annuler l'attente du radar sémantique pour plus d'espace MAP",
380
+ "viewer.radar.needsSpace": "Le radar sémantique a besoin de plus d'espace MAP visible",
381
+ "viewer.radar.viewport.full": "carte complète",
382
+ "viewer.radar.viewport.width": "{percent} % de largeur",
383
+ "viewer.radar.viewport.scale": "{percent} % du viewport",
384
+ "viewer.nav.controls": "Contrôles de la vue du diagramme",
385
+ "viewer.nav.route": "Tracer un itinéraire orienté",
386
+ "viewer.nav.route.title": "Tracer l'itinéraire (R)",
387
+ "viewer.nav.route.short": "TRACÉ",
388
+ "viewer.nav.radar": "Ouvrir le radar sémantique",
389
+ "viewer.nav.radar.title": "Radar sémantique (M)",
390
+ "viewer.nav.radar.short": "CARTE",
391
+ "viewer.nav.lens": "Ouvrir la lentille sémantique",
392
+ "viewer.nav.lens.title": "Lentille sémantique (L)",
393
+ "viewer.nav.lens.short": "LENTILLE",
394
+ "viewer.nav.find": "Trouver un nœud",
395
+ "viewer.nav.find.title": "Trouver un nœud (/)",
396
+ "viewer.nav.guide": "Ouvrir le guide du diagramme",
397
+ "viewer.nav.guide.title": "Guide du diagramme (?)",
398
+ "viewer.nav.zoomOut": "Zoom arrière",
399
+ "viewer.nav.zoomOut.title": "Zoom arrière (-)",
400
+ "viewer.nav.reset": "Réinitialiser la vue du diagramme",
401
+ "viewer.nav.reset.title": "Réinitialiser la vue (0)",
402
+ "viewer.nav.read": "LIRE",
403
+ "viewer.nav.zoomIn": "Zoom avant",
404
+ "viewer.nav.zoomIn.title": "Zoom avant (+)",
405
+ "viewer.nav.camera": "{hint}. Réinitialiser la vue du diagramme",
406
+ "viewer.nav.camera.title": "{semantic}{hint} · réinitialiser la vue (0)",
407
+ "viewer.nav.camera.semantic": "Caméra sémantique active · ",
408
+ "viewer.nav.level.map": "CARTE",
409
+ "viewer.nav.level.read": "LIRE",
410
+ "viewer.nav.level.full": "COMPLET",
411
+ "viewer.nav.level.auto": "AUTO",
412
+ "viewer.nav.detail.map": "Zoomez pour révéler les libellés des relations et le contexte des nœuds",
413
+ "viewer.nav.detail.read": "Zoomez à nouveau pour révéler les étiquettes et annotations",
414
+ "viewer.nav.detail.full": "Détail complet du diagramme",
415
+ "viewer.intent.summary": "{label}. {out} sortantes, {in} entrantes{loops}. {total} connexions. Appuyez sur Entrée pour les détails.",
416
+ "viewer.intent.loops": ", {count} boucle propre",
417
+ "viewer.common.copied": "Copié",
418
+ "viewer.common.copyFailed": "Échec de la copie",
419
+ "viewer.common.copyLink": "Copier le lien",
420
+ "viewer.common.clear": "Effacer",
421
+ "viewer.common.close": "Fermer",
422
+ "diagram.description.tree": "Un diagramme hiérarchique généré par Archify.",
423
+ "node.context.tree.root": "Racine",
424
+ "node.context.tree.branch": "Branche",
425
+ "node.context.tree.leaf": "Feuille",
426
+ "tree.toggle.collapse": "Replier {label} ({count} descendants)",
427
+ "tree.toggle.expand": "Déplier {label} ({count} masqués)",
428
+ "tree.expandAll": "Tout déplier",
429
+ "diagram.description.class": "Un diagramme de classes et d’interfaces généré par Archify.",
430
+ "node.context.class.class": "Classe",
431
+ "node.context.class.abstract": "Classe abstraite",
432
+ "node.context.class.interface": "Interface",
433
+ "node.context.class.enum": "Énumération",
434
+ "node.context.class.record": "Enregistrement",
435
+ "legend.class.dependency": "Dépend de",
436
+ "legend.class.association": "Association",
437
+ "legend.class.inheritance": "Hérite de",
438
+ "legend.class.realization": "Implémente",
439
+ "legend.class.composition": "Composition",
440
+ "legend.class.aggregation": "Agrégation",
441
+ "diagram.description.timeline": "Une chronologie d’événements générée par Archify.",
442
+ "timeline.axis": "Temps",
443
+ "timeline.break": "Rupture d’axe : {duration} sans événements omises",
444
+ "timeline.compressed": "{count} période(s) calme(s) comprimée(s) (≈)",
445
+ "timeline.evidence.observed": "Événements observés",
446
+ "timeline.evidence.illustrative": "Données illustratives",
447
+ "legend.timeline.default": "Événement",
448
+ "legend.timeline.change": "Changement",
449
+ "legend.timeline.alert": "Alerte",
450
+ "legend.timeline.action": "Intervention",
451
+ "legend.timeline.recovery": "Rétablissement",
452
+ "diagram.description.waterfall": "Un diagramme en cascade d’exécution généré par Archify.",
453
+ "waterfall.evidence.measured": "Durées mesurées",
454
+ "waterfall.evidence.illustrative": "Durées illustratives",
455
+ "waterfall.wall": "Durée totale {duration}",
456
+ "waterfall.share": "{percent} de la durée totale {total}",
457
+ "waterfall.incomplete": "incomplet, ≥ {duration}",
458
+ "waterfall.operation": "Opération",
459
+ "legend.waterfall.ok": "Terminé",
460
+ "legend.waterfall.error": "Erreur",
461
+ "legend.waterfall.cancelled": "Annulé",
462
+ "legend.waterfall.incomplete": "Incomplet (fin non enregistrée)"
463
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "page.title": "Diagramme {title}",
3
+ "diagram.description.architecture": "Un diagramme d'architecture généré par Archify.",
4
+ "legend.title": "Légende",
5
+ "node.focus": "Focus {label}",
6
+ "node.context.architecture": "Composant d'architecture",
7
+ "viewer.kind.frontend": "Frontend",
8
+ "viewer.kind.backend": "Backend",
9
+ "viewer.export.button": "Exporter",
10
+ "viewer.export.button.title": "Exporter le diagramme (E)",
11
+ "viewer.export.diagram": "Exporter le diagramme",
12
+ "viewer.finder.title": "Rechercher un nœud",
13
+ "viewer.route.eyebrow": "Sonde d'itinéraire",
14
+ "viewer.route.overview.node.one": "{count} nœud",
15
+ "viewer.route.overview.node.other": "{count} nœuds",
16
+ "viewer.guide.eyebrow": "Guide du diagramme",
17
+ "viewer.nav.controls": "Contrôles de vue du diagramme",
18
+ "viewer.theme.toggle": "Changer de thème",
19
+ "viewer.preset.classic": "Classique",
20
+ "viewer.common.close": "Fermer",
21
+ "viewer.common.copyLink": "Copier le lien"
22
+ }