@pascal-app/editor 1.0.7 → 1.1.1

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 (336) hide show
  1. package/package.json +9 -15
  2. package/src/components/editor/action-menu-button.tsx +1 -1
  3. package/src/components/editor/alignment-3d-guide-layer.tsx +1 -1
  4. package/src/components/editor/custom-camera-controls.tsx +101 -45
  5. package/src/components/editor/duplicate-node.ts +2 -1
  6. package/src/components/editor/editor-layout-v2.tsx +1 -1
  7. package/src/components/editor/elevation-3d-guide-layer.tsx +1 -1
  8. package/src/components/editor/first-person-controls.tsx +20 -1983
  9. package/src/components/editor/fit-scene-framing.test.ts +318 -0
  10. package/src/components/editor/fit-scene-framing.ts +142 -0
  11. package/src/components/editor/floating-action-menu.tsx +5 -3
  12. package/src/components/editor/floating-building-action-menu.tsx +1 -1
  13. package/src/components/editor/floor-openings-overlay.tsx +1 -1
  14. package/src/components/editor/floor-region-controls.tsx +8 -4
  15. package/src/components/editor/floorplan-navigation-presentation.test.ts +0 -40
  16. package/src/components/editor/floorplan-navigation-presentation.ts +0 -66
  17. package/src/components/editor/floorplan-panel.tsx +199 -30
  18. package/src/components/editor/floorplan-wall-typing-keys.test.tsx +152 -0
  19. package/src/components/editor/floorplan-wall-typing-keys.ts +79 -0
  20. package/src/components/editor/follow-pascal.test.tsx +1 -2
  21. package/src/components/editor/follow-pascal.tsx +1 -1
  22. package/src/components/editor/footprint-height-handle.tsx +2 -2
  23. package/src/components/editor/group-actions.ts +1 -2
  24. package/src/components/editor/group-floating-action-menu.tsx +1 -1
  25. package/src/components/editor/group-move-3d.ts +1 -2
  26. package/src/components/editor/group-rotate-handle.tsx +1 -2
  27. package/src/components/editor/group-transform-shared.ts +3 -1
  28. package/src/components/editor/handles/use-handle-drag.ts +1 -2
  29. package/src/components/editor/index.tsx +43 -13
  30. package/src/components/editor/inspector-extension-actions.tsx +1 -1
  31. package/src/components/editor/measurement-pill.tsx +1 -1
  32. package/src/components/editor/node-arrow-handles.tsx +2 -2
  33. package/src/components/editor/open-wall-ends-3d-layer.tsx +2 -3
  34. package/src/components/editor/open-wall-ends-hint.tsx +1 -1
  35. package/src/components/editor/opening-guides-3d-layer.tsx +1 -1
  36. package/src/components/editor/quick-measurement-card.tsx +1 -1
  37. package/src/components/editor/room-controls.tsx +10 -6
  38. package/src/components/editor/room-handles-2d.tsx +3 -3
  39. package/src/components/editor/room-handles.tsx +4 -5
  40. package/src/components/editor/room-highlight.tsx +6 -105
  41. package/src/components/editor/room-labels.test.ts +8 -822
  42. package/src/components/editor/room-labels.tsx +41 -1670
  43. package/src/components/editor/room-webgpu-materials.test.ts +1 -1
  44. package/src/components/editor/selection-manager.tsx +5 -3
  45. package/src/components/editor/site-edge-labels.tsx +7 -3
  46. package/src/components/editor/snapshot-capture-overlay.tsx +2 -5
  47. package/src/components/editor/use-floorplan-background-placement.ts +2 -1
  48. package/src/components/editor/views/plugins-view.tsx +1 -1
  49. package/src/components/editor/views/view-bar.tsx +9 -9
  50. package/src/components/editor/wall-measurement-label.tsx +31 -15
  51. package/src/components/editor/wall-move-side-handles.tsx +11 -7
  52. package/src/components/editor/wall-pull-grip.tsx +2 -2
  53. package/src/components/editor/wall-region-handles.tsx +2 -2
  54. package/src/components/editor/wall-snap-beacon-layer.tsx +53 -32
  55. package/src/components/editor-2d/floorplan-group-move.tsx +3 -4
  56. package/src/components/editor-2d/floorplan-measurement-tool-layer.tsx +13 -13
  57. package/src/components/editor-2d/floorplan-open-wall-ends-layer.tsx +2 -3
  58. package/src/components/editor-2d/floorplan-registry-action-menu.tsx +2 -1
  59. package/src/components/editor-2d/floorplan-registry-move-overlay.tsx +23 -6
  60. package/src/components/editor-2d/renderers/floorplan-annotation-layout.test.ts +0 -37
  61. package/src/components/editor-2d/renderers/floorplan-annotation-layout.ts +0 -30
  62. package/src/components/editor-2d/renderers/floorplan-dimension-edit-overlay.tsx +13 -3
  63. package/src/components/editor-2d/renderers/floorplan-draft-measurement.tsx +7 -1
  64. package/src/components/editor-2d/renderers/floorplan-placement-preview-layer.tsx +14 -3
  65. package/src/components/editor-2d/renderers/floorplan-placement-typing-hud.test.tsx +35 -0
  66. package/src/components/editor-2d/renderers/floorplan-placement-typing-hud.tsx +65 -0
  67. package/src/components/editor-2d/renderers/floorplan-registry-layer.test.ts +30 -10
  68. package/src/components/editor-2d/renderers/floorplan-registry-layer.tsx +39 -35
  69. package/src/components/systems/roof/roof-edit-system.test.tsx +15 -1
  70. package/src/components/systems/roof/roof-edit-system.tsx +33 -21
  71. package/src/components/tools/distribution/distribution-run-tool.test.tsx +371 -3
  72. package/src/components/tools/distribution/distribution-run-tool.tsx +151 -33
  73. package/src/components/tools/item/move-tool.tsx +1 -6
  74. package/src/components/tools/item/placement-history.test.tsx +1 -1
  75. package/src/components/tools/item/use-placement-coordinator.tsx +3 -4
  76. package/src/components/tools/paint-region/wall-paint-region-tool.tsx +7 -3
  77. package/src/components/tools/registry/move-registry-node-tool.test.ts +42 -1
  78. package/src/components/tools/registry/move-registry-node-tool.tsx +39 -16
  79. package/src/components/tools/shared/cursor-sphere.tsx +1 -1
  80. package/src/components/tools/shared/draft-measurement-label.tsx +1 -1
  81. package/src/components/tools/shared/placement-box.tsx +2 -6
  82. package/src/components/tools/shared/placement-coordinate-input.tsx +94 -0
  83. package/src/components/tools/shared/placement-dimension-guides.tsx +1 -1
  84. package/src/components/tools/shared/segment-angle.ts +0 -4
  85. package/src/components/tools/site/terrain-brush-cursor.tsx +1 -1
  86. package/src/components/tools/tool-manager.tsx +1 -24
  87. package/src/components/tools/wall/wall-typed-entry.test.ts +99 -0
  88. package/src/components/tools/wall/wall-typed-entry.ts +70 -0
  89. package/src/components/ui/action-menu/camera-actions.tsx +2 -2
  90. package/src/components/ui/action-menu/control-modes.tsx +1 -1
  91. package/src/components/ui/action-menu/follow-pascal-pill.tsx +1 -1
  92. package/src/components/ui/action-menu/index.tsx +3 -3
  93. package/src/components/ui/action-menu/measurement-control.tsx +3 -3
  94. package/src/components/ui/action-menu/placement.ts +0 -18
  95. package/src/components/ui/action-menu/point-ask-button.tsx +1 -1
  96. package/src/components/ui/action-menu/view-toggles.tsx +5 -5
  97. package/src/components/ui/controls/finish-swatch.tsx +1 -1
  98. package/src/components/ui/controls/material-paint-panel.tsx +2 -2
  99. package/src/components/ui/controls/scene-material-list.tsx +2 -2
  100. package/src/components/ui/controls/select-control.tsx +1 -1
  101. package/src/components/ui/controls/slider-control.tsx +18 -6
  102. package/src/components/ui/controls/terrain-sculpt-panel.tsx +1 -1
  103. package/src/components/ui/controls/tool-options-panel.tsx +74 -44
  104. package/src/components/ui/floating-level-selector.tsx +3 -3
  105. package/src/components/ui/helpers/contextual-helper-panel.tsx +1 -1
  106. package/src/components/ui/helpers/helper-manager.test.tsx +54 -1
  107. package/src/components/ui/helpers/helper-manager.tsx +55 -1
  108. package/src/components/ui/level-duplicate-dialog.tsx +1 -1
  109. package/src/components/ui/panels/collections/collections-popover.tsx +2 -2
  110. package/src/components/ui/panels/floor-foundation-panel.tsx +3 -3
  111. package/src/components/ui/panels/floor-opening-panel.tsx +5 -5
  112. package/src/components/ui/panels/mobile-selection-bar.tsx +28 -24
  113. package/src/components/ui/panels/multi-height-mode.tsx +3 -3
  114. package/src/components/ui/panels/multi-selection-panel.tsx +1 -1
  115. package/src/components/ui/panels/node-display.ts +1 -1
  116. package/src/components/ui/panels/panel-manager.tsx +5 -3
  117. package/src/components/ui/panels/panel-wrapper.tsx +42 -19
  118. package/src/components/ui/panels/parametric-inspector.tsx +1 -1
  119. package/src/components/ui/panels/room-construction-rows.tsx +7 -7
  120. package/src/components/ui/panels/room-name-options.ts +1 -5
  121. package/src/components/ui/panels/room-openings-field.tsx +1 -1
  122. package/src/components/ui/panels/room-panel.tsx +7 -9
  123. package/src/components/ui/primitives/color-dot.tsx +2 -2
  124. package/src/components/ui/primitives/opacity-control.tsx +2 -2
  125. package/src/components/ui/primitives/sidebar.tsx +3 -3
  126. package/src/components/ui/right-stack.test.ts +13 -6
  127. package/src/components/ui/right-stack.tsx +22 -11
  128. package/src/components/ui/sidebar/icon-rail.tsx +1 -1
  129. package/src/components/ui/sidebar/panels/items-panel/function-tree-panel.tsx +1 -1
  130. package/src/components/ui/sidebar/panels/settings-panel/audio-settings-dialog.tsx +2 -2
  131. package/src/components/ui/sidebar/panels/settings-panel/construction-animation-setting.tsx +1 -1
  132. package/src/components/ui/sidebar/panels/settings-panel/index.tsx +2 -2
  133. package/src/components/ui/sidebar/panels/settings-panel/keyboard-shortcuts-dialog.tsx +1 -1
  134. package/src/components/ui/sidebar/panels/settings-panel/load-build-dialog.tsx +2 -6
  135. package/src/components/ui/sidebar/panels/settings-panel/print-export-button.tsx +1 -1
  136. package/src/components/ui/sidebar/panels/site-panel/building-tree-node.tsx +1 -1
  137. package/src/components/ui/sidebar/panels/site-panel/ceiling-tree-node.tsx +1 -1
  138. package/src/components/ui/sidebar/panels/site-panel/index.tsx +3 -10
  139. package/src/components/ui/sidebar/panels/site-panel/inline-rename-input.tsx +1 -1
  140. package/src/components/ui/sidebar/panels/site-panel/level-tree-node.tsx +1 -1
  141. package/src/components/ui/sidebar/panels/site-panel/roof-tree-node.tsx +46 -7
  142. package/src/components/ui/sidebar/panels/site-panel/slab-tree-node.tsx +1 -1
  143. package/src/components/ui/sidebar/panels/site-panel/tree-node-actions.tsx +1 -1
  144. package/src/components/ui/sidebar/panels/site-panel/tree-node-drag.tsx +14 -5
  145. package/src/components/ui/sidebar/panels/site-panel/unit-tree-node.tsx +2 -2
  146. package/src/components/ui/sidebar/panels/site-panel/zone-tree-node.tsx +1 -1
  147. package/src/components/ui/sidebar/panels/zone-panel/index.tsx +3 -3
  148. package/src/components/ui/sidebar/tab-bar.tsx +1 -1
  149. package/src/components/ui/wall-type/wall-type-editor-dialog.tsx +2 -2
  150. package/src/components/ui/wall-type/wall-type-menu.tsx +1 -1
  151. package/src/components/viewer-overlay.tsx +1 -2
  152. package/src/hooks/use-auto-frame.ts +1 -2
  153. package/src/hooks/use-keyboard.ts +1 -2
  154. package/src/hooks/use-selected-room.ts +5 -7
  155. package/src/i18n/floor-footprint-name.ts +1 -1
  156. package/src/i18n/locales/en/messages.po +1036 -306
  157. package/src/i18n/locales/en/messages.ts +1 -1
  158. package/src/i18n/locales/en-XA/messages.ts +1 -1
  159. package/src/i18n/locales/es/messages.po +2267 -439
  160. package/src/i18n/locales/fr/messages.po +2267 -439
  161. package/src/i18n/locales/ja/messages.po +2267 -439
  162. package/src/i18n/locales/zh-CN/messages.po +2267 -439
  163. package/src/i18n/locales.test.ts +1 -1
  164. package/src/index.tsx +183 -178
  165. package/src/lib/below-grade.test.tsx +4 -4
  166. package/src/lib/camera-facing.test.ts +1 -1
  167. package/src/lib/camera-facing.ts +2 -3
  168. package/src/lib/contextual-help.ts +6 -0
  169. package/src/lib/editor-level-display.ts +1 -1
  170. package/src/lib/elevation-guides.ts +21 -6
  171. package/src/lib/elevator-support.ts +1 -72
  172. package/src/lib/floor-footprints.test.ts +3 -3
  173. package/src/lib/floor-footprints.ts +1 -9
  174. package/src/lib/floor-foundation-support.test.ts +8 -3
  175. package/src/lib/floor-opening-draft.ts +2 -2
  176. package/src/lib/floor-region-session.ts +1 -1
  177. package/src/lib/floorplan/annotation-visibility.test.ts +1 -1
  178. package/src/lib/floorplan/annotation-visibility.ts +1 -1
  179. package/src/lib/floorplan/floorplan-export.test.ts +1 -1
  180. package/src/lib/floorplan/floorplan-export.tsx +8 -11
  181. package/src/lib/floorplan/floorplan-extension.ts +4 -157
  182. package/src/lib/floorplan/floorplan-mode.ts +2 -1
  183. package/src/lib/floorplan/floorplan-pdfkit-renderer.test.ts +1 -1
  184. package/src/lib/floorplan/floorplan-pdfkit-renderer.ts +8 -6
  185. package/src/lib/floorplan/floorplan-plugin-install.test.tsx +3 -4
  186. package/src/lib/floorplan/geometry.ts +2 -112
  187. package/src/lib/floorplan/index.ts +0 -9
  188. package/src/lib/floorplan/items.ts +2 -1
  189. package/src/lib/floorplan/open-wall-ends.ts +2 -1
  190. package/src/lib/floorplan/schedules.ts +6 -3
  191. package/src/lib/floorplan/sheet-export.ts +7 -3
  192. package/src/lib/floorplan/site-plan/site-parts.ts +7 -1
  193. package/src/lib/floorplan/site-plan/site-plan-layer.tsx +1 -1
  194. package/src/lib/follow-pascal-presentation.ts +1 -1
  195. package/src/lib/gesture-lifecycle.ts +3 -1
  196. package/src/lib/glb-export.ts +1 -1
  197. package/src/lib/interaction/scope.ts +1 -0
  198. package/src/lib/layer-thickness.ts +1 -1
  199. package/src/lib/level-selection.test.ts +18 -2
  200. package/src/lib/level-selection.ts +31 -8
  201. package/src/lib/linear-display.ts +1 -1
  202. package/src/lib/live-gesture-round-trip.test.ts +1 -1
  203. package/src/lib/material-paint.ts +1 -1
  204. package/src/lib/measurement-label.test.ts +1 -1
  205. package/src/lib/measurements.test.ts +7 -5
  206. package/src/lib/mezzanine-selection.test.ts +1 -1
  207. package/src/lib/node-action-movement.test.tsx +115 -0
  208. package/src/lib/node-action-movement.ts +2 -0
  209. package/src/lib/paint-region-mode.ts +1 -1
  210. package/src/lib/placement-metadata.ts +4 -0
  211. package/src/lib/point-ask/describe-target.ts +6 -8
  212. package/src/lib/point-ask/region.ts +1 -1
  213. package/src/lib/point-ask/session.ts +1 -2
  214. package/src/lib/print-shell-compiler.ts +12 -1
  215. package/src/lib/print-wall-solids.test.ts +11 -0
  216. package/src/lib/print-wall-solids.ts +9 -0
  217. package/src/lib/roof-duplication.test.ts +100 -0
  218. package/src/lib/roof-duplication.ts +30 -5
  219. package/src/lib/room-built-on.test.ts +2 -5
  220. package/src/lib/room-built-on.ts +1 -15
  221. package/src/lib/room-construction-commands.ts +3 -2
  222. package/src/lib/room-controls-phase6.test.ts +1 -1
  223. package/src/lib/room-handle-drag.ts +8 -37
  224. package/src/lib/room-name-catalog.test.ts +2 -1
  225. package/src/lib/room-name-messages.test.ts +2 -1
  226. package/src/lib/room-name-messages.ts +1 -118
  227. package/src/lib/room-name-storage.test.ts +2 -1
  228. package/src/lib/room-push-dimensions.test.ts +1 -1
  229. package/src/lib/room-selection-commands.ts +2 -2
  230. package/src/lib/room-selection.test.ts +6 -6
  231. package/src/lib/room-transform-session.ts +1 -2
  232. package/src/lib/room-zone-routing.ts +2 -2
  233. package/src/lib/scene-clipboard.ts +2 -1
  234. package/src/lib/selection-routing.test.ts +0 -28
  235. package/src/lib/selection-routing.ts +1 -40
  236. package/src/lib/sfx-bus.ts +8 -32
  237. package/src/lib/sfx-player.test.ts +72 -1
  238. package/src/lib/sfx-player.ts +49 -337
  239. package/src/lib/snapping-mode.test.ts +23 -1
  240. package/src/lib/viewer-selection.test.ts +38 -10
  241. package/src/lib/wall-pull.test.ts +1 -1
  242. package/src/lib/wall-pull.ts +1 -27
  243. package/src/lib/wall-region-list.ts +3 -1
  244. package/src/lib/window-interaction.test.ts +4 -2
  245. package/src/store/use-editor.tsx +22 -26
  246. package/src/store/use-floorplan-annotation-visibility.ts +5 -5
  247. package/src/store/use-placement-typing.test.ts +165 -0
  248. package/src/store/use-placement-typing.ts +186 -0
  249. package/src/store/use-wall-region-handles-selection.ts +1 -2
  250. package/src/components/editor/__bench__/room-label-placement.bench.ts +0 -108
  251. package/src/components/editor/first-person/build-collider-world.test.ts +0 -596
  252. package/src/components/editor/first-person/build-collider-world.ts +0 -549
  253. package/src/components/editor/first-person/ground-holes.test.ts +0 -128
  254. package/src/components/editor/first-person/ground-holes.ts +0 -130
  255. package/src/components/editor/first-person/mechanism-targets.test.ts +0 -162
  256. package/src/components/editor/first-person/mechanism-targets.ts +0 -88
  257. package/src/components/editor/first-person/terrain-collider.test.ts +0 -132
  258. package/src/components/editor/first-person/terrain-collider.ts +0 -212
  259. package/src/components/editor/floorplan-camera-sync.test.ts +0 -249
  260. package/src/components/editor/floorplan-camera-sync.ts +0 -213
  261. package/src/components/editor/localized-html.tsx +0 -22
  262. package/src/components/editor-2d/renderers/floorplan-dimension-renderer.test.tsx +0 -236
  263. package/src/components/editor-2d/renderers/floorplan-dimension-renderer.tsx +0 -708
  264. package/src/components/editor-2d/renderers/floorplan-geometry-renderer.test.tsx +0 -385
  265. package/src/components/editor-2d/renderers/floorplan-geometry-renderer.tsx +0 -670
  266. package/src/components/editor-2d/renderers/floorplan-label-angle.test.ts +0 -89
  267. package/src/components/editor-2d/renderers/floorplan-label-angle.ts +0 -106
  268. package/src/components/editor-2d/svg-paths.ts +0 -124
  269. package/src/components/tools/elevator/elevator-defaults.ts +0 -8
  270. package/src/components/tools/elevator/elevator-tool.tsx +0 -372
  271. package/src/components/tools/elevator/move-elevator-tool.tsx +0 -262
  272. package/src/components/ui/action-menu/action-button.tsx +0 -89
  273. package/src/components/ui/action-menu/follow-pascal-toggle.tsx +0 -42
  274. package/src/components/ui/primitives/button.tsx +0 -69
  275. package/src/components/ui/primitives/dropdown-menu.tsx +0 -232
  276. package/src/components/ui/primitives/popover.tsx +0 -42
  277. package/src/components/ui/primitives/switch.tsx +0 -29
  278. package/src/components/ui/primitives/tooltip.tsx +0 -57
  279. package/src/components/ui/scene-loader.tsx +0 -73
  280. package/src/components/viewer/floorplan-compass-button.tsx +0 -67
  281. package/src/components/viewer/floorplan-preview-geometry.test.ts +0 -107
  282. package/src/components/viewer/floorplan-preview-geometry.ts +0 -281
  283. package/src/components/viewer/floorplan-preview-navigation.test.ts +0 -43
  284. package/src/components/viewer/floorplan-preview-navigation.ts +0 -62
  285. package/src/components/viewer/floorplan-preview-visibility.test.ts +0 -35
  286. package/src/components/viewer/floorplan-preview-visibility.ts +0 -19
  287. package/src/components/viewer/floorplan-preview.tsx +0 -1065
  288. package/src/components/viewer/render-settings-menu.tsx +0 -294
  289. package/src/components/viewer/sky-control.tsx +0 -710
  290. package/src/components/viewer/use-viewer-camera-navigation-sync.ts +0 -140
  291. package/src/components/viewer/use-viewer-ui-sounds.test.ts +0 -15
  292. package/src/components/viewer/use-viewer-ui-sounds.ts +0 -46
  293. package/src/components/viewer/viewer-controls-bar.tsx +0 -496
  294. package/src/components/viewer/viewer-hover-label.tsx +0 -42
  295. package/src/components/viewer/viewer-rooms.tsx +0 -248
  296. package/src/components/viewer/viewer-scene-header.tsx +0 -286
  297. package/src/components/viewer/viewer-selection-manager.tsx +0 -124
  298. package/src/components/viewer/viewer-stage-modes.test.ts +0 -38
  299. package/src/components/viewer/viewer-stage-modes.ts +0 -49
  300. package/src/components/viewer/viewer-stage-switcher.tsx +0 -97
  301. package/src/components/viewer/viewer-stage.test.tsx +0 -47
  302. package/src/components/viewer/viewer-stage.tsx +0 -221
  303. package/src/components/walkthrough-hud.tsx +0 -193
  304. package/src/hooks/use-mobile.ts +0 -19
  305. package/src/i18n/level-name.ts +0 -39
  306. package/src/i18n/scene-theme-name.ts +0 -16
  307. package/src/lib/below-grade.ts +0 -133
  308. package/src/lib/camera-pose.test.ts +0 -237
  309. package/src/lib/camera-pose.ts +0 -172
  310. package/src/lib/door-interaction.ts +0 -102
  311. package/src/lib/floorplan/floorplan-extension.test.ts +0 -42
  312. package/src/lib/floorplan/floorplan-readonly.test.ts +0 -47
  313. package/src/lib/floorplan/floorplan-readonly.ts +0 -95
  314. package/src/lib/floorplan/marks.test.ts +0 -213
  315. package/src/lib/floorplan/marks.ts +0 -238
  316. package/src/lib/measurement-label.ts +0 -68
  317. package/src/lib/measurements.ts +0 -225
  318. package/src/lib/node-display-label.ts +0 -37
  319. package/src/lib/room-assembly-overlay.test.ts +0 -275
  320. package/src/lib/room-assembly-overlay.ts +0 -265
  321. package/src/lib/room-selection.ts +0 -417
  322. package/src/lib/scene-bounds.test.ts +0 -183
  323. package/src/lib/scene-bounds.ts +0 -169
  324. package/src/lib/typing-target.ts +0 -9
  325. package/src/lib/viewer-selection.ts +0 -595
  326. package/src/lib/window-interaction.ts +0 -142
  327. package/src/lib/zone-content.ts +0 -133
  328. package/src/store/camera-pose-store.test.ts +0 -29
  329. package/src/store/camera-pose-store.ts +0 -27
  330. package/src/store/navigation-sync-pose-store.test.ts +0 -34
  331. package/src/store/navigation-sync-pose-store.ts +0 -27
  332. package/src/store/use-audio.test.ts +0 -146
  333. package/src/store/use-audio.tsx +0 -169
  334. package/src/store/use-first-person-hud.ts +0 -40
  335. package/src/store/use-follow-pascal.test.ts +0 -62
  336. package/src/store/use-follow-pascal.ts +0 -53
@@ -983,6 +983,16 @@ msgstr "Type de toit"
983
983
  msgid "app.lib.buildPanelModel.toolCount"
984
984
  msgstr "{count, plural, one {# outil} many {# outils} other {# outils}}"
985
985
 
986
+ # AI-Provider: claude-code
987
+ # AI-Model: claude-opus-5-5
988
+ # Source-Hash: 344fe9d407a233a9
989
+ # Review: required
990
+ # English: "Barrel"
991
+ #: apps/editor/lib/build-tab-state.ts
992
+ #, fuzzy
993
+ msgid "app.lib.buildTabState.barrel"
994
+ msgstr "Berceau"
995
+
986
996
  # Source-Hash: 3241ecabee8221a1
987
997
  # Review: required
988
998
  # AI-Provider: claude-code
@@ -2049,28 +2059,28 @@ msgstr "Murs : {label}"
2049
2059
  # Source-Hash: 8caa959c0ae800c3
2050
2060
  # Review: human
2051
2061
  # English: "Basement"
2052
- #: packages/editor/src/i18n/level-name.ts
2062
+ #: packages/viewer/src/ui/lib/level-name.ts
2053
2063
  msgid "core.level.basement"
2054
2064
  msgstr "Sous-sol"
2055
2065
 
2056
2066
  # Source-Hash: 14927085ee91ba05
2057
2067
  # Review: human
2058
2068
  # English: "Basement {number}"
2059
- #: packages/editor/src/i18n/level-name.ts
2069
+ #: packages/viewer/src/ui/lib/level-name.ts
2060
2070
  msgid "core.level.basementNumber"
2061
2071
  msgstr "Sous-sol {number}"
2062
2072
 
2063
2073
  # Source-Hash: e59074a7b9b3f56e
2064
2074
  # Review: human
2065
2075
  # English: "Floor {number}"
2066
- #: packages/editor/src/i18n/level-name.ts
2076
+ #: packages/viewer/src/ui/lib/level-name.ts
2067
2077
  msgid "core.level.floorNumber"
2068
2078
  msgstr "Étage {number}"
2069
2079
 
2070
2080
  # Source-Hash: cde3efc9b7ddfa41
2071
2081
  # Review: human
2072
2082
  # English: "Ground floor"
2073
- #: packages/editor/src/i18n/level-name.ts
2083
+ #: packages/viewer/src/ui/lib/level-name.ts
2074
2084
  msgid "core.level.groundFloor"
2075
2085
  msgstr "Rez-de-chaussée"
2076
2086
 
@@ -2139,7 +2149,7 @@ msgstr "Reprendre le suivi"
2139
2149
  # AI-Provider: claude-code
2140
2150
  # AI-Model: claude-opus-5-5
2141
2151
  # English: "Follow Pascal: Off"
2142
- #: packages/editor/src/components/ui/action-menu/follow-pascal-toggle.tsx
2152
+ #: packages/viewer/src/ui/components/follow-pascal-toggle.tsx
2143
2153
  #, fuzzy
2144
2154
  msgid "editor.actionMenu.followPascalToggle.off"
2145
2155
  msgstr "Suivre Pascal : désactivé"
@@ -2149,7 +2159,7 @@ msgstr "Suivre Pascal : désactivé"
2149
2159
  # AI-Provider: claude-code
2150
2160
  # AI-Model: claude-opus-5-5
2151
2161
  # English: "Follow Pascal: On"
2152
- #: packages/editor/src/components/ui/action-menu/follow-pascal-toggle.tsx
2162
+ #: packages/viewer/src/ui/components/follow-pascal-toggle.tsx
2153
2163
  #, fuzzy
2154
2164
  msgid "editor.actionMenu.followPascalToggle.on"
2155
2165
  msgstr "Suivre Pascal : activé"
@@ -3794,6 +3804,26 @@ msgstr "{label} : {finish}"
3794
3804
  msgid "editor.controls.finishSwatch.default"
3795
3805
  msgstr "Par défaut"
3796
3806
 
3807
+ # AI-Provider: claude-code
3808
+ # AI-Model: claude-opus-5-5
3809
+ # Source-Hash: 6774854416d6dfdf
3810
+ # Review: required
3811
+ # English: "Edit {label}"
3812
+ #: packages/editor/src/components/ui/controls/slider-control.tsx
3813
+ #, fuzzy
3814
+ msgid "editor.controls.sliderControl.editLabel"
3815
+ msgstr "Modifier {label}"
3816
+
3817
+ # AI-Provider: claude-code
3818
+ # AI-Model: claude-opus-5-5
3819
+ # Source-Hash: 37d9f63758abdb67
3820
+ # Review: required
3821
+ # English: "Mixed"
3822
+ #: packages/editor/src/components/ui/controls/slider-control.tsx
3823
+ #, fuzzy
3824
+ msgid "editor.controls.sliderControl.mixed"
3825
+ msgstr "Mixte"
3826
+
3797
3827
  # Source-Hash: a2bd204e93e90598
3798
3828
  # Review: required
3799
3829
  # AI-Provider: claude-code
@@ -4595,6 +4625,16 @@ msgstr "Annuler la sélection"
4595
4625
  msgid "editor.helpers.helperManager.cancelStroke"
4596
4626
  msgstr "Annuler le tracé"
4597
4627
 
4628
+ # Source-Hash: 7aaeeaeb3e2f247a
4629
+ # Review: required
4630
+ # AI-Provider: claude-code
4631
+ # AI-Model: claude-opus-5-5
4632
+ # English: "Detach the joint"
4633
+ #: packages/editor/src/components/ui/helpers/helper-manager.tsx
4634
+ #, fuzzy
4635
+ msgid "editor.helpers.helperManager.detachTheJoint"
4636
+ msgstr "Détacher la jonction"
4637
+
4598
4638
  # Source-Hash: 16552c2580bbe8b8
4599
4639
  # Review: required
4600
4640
  # AI-Provider: claude-code
@@ -13592,6 +13632,46 @@ msgstr "Supprimer la zone"
13592
13632
  msgid "editor.panels.wallRegionList.paintRegions"
13593
13633
  msgstr "Zones de peinture"
13594
13634
 
13635
+ # Source-Hash: c69865ec5d9d1ac9
13636
+ # Review: required
13637
+ # AI-Provider: claude-code
13638
+ # AI-Model: claude-opus-5-5
13639
+ # English: "Angle"
13640
+ #: packages/editor/src/store/use-placement-typing.ts
13641
+ #, fuzzy
13642
+ msgid "editor.placementTyping.angle"
13643
+ msgstr "Angle"
13644
+
13645
+ # Source-Hash: fe7ddb094aa8ff4d
13646
+ # Review: required
13647
+ # AI-Provider: claude-code
13648
+ # AI-Model: claude-opus-5-5
13649
+ # English: "Distance"
13650
+ #: packages/editor/src/store/use-placement-typing.ts
13651
+ #, fuzzy
13652
+ msgid "editor.placementTyping.distance"
13653
+ msgstr "Distance"
13654
+
13655
+ # Source-Hash: 643687bc3adaac76
13656
+ # Review: required
13657
+ # AI-Provider: claude-code
13658
+ # AI-Model: claude-opus-5-5
13659
+ # English: "Length"
13660
+ #: packages/editor/src/store/use-placement-typing.ts
13661
+ #, fuzzy
13662
+ msgid "editor.placementTyping.length"
13663
+ msgstr "Longueur"
13664
+
13665
+ # Source-Hash: 0f0e13abf9b2bb67
13666
+ # Review: required
13667
+ # AI-Provider: claude-code
13668
+ # AI-Model: claude-opus-5-5
13669
+ # English: "Offset"
13670
+ #: packages/editor/src/store/use-placement-typing.ts
13671
+ #, fuzzy
13672
+ msgid "editor.placementTyping.offset"
13673
+ msgstr "Décalage"
13674
+
13595
13675
  # Source-Hash: 89ee318aad485f83
13596
13676
  # Review: required
13597
13677
  # AI-Provider: claude-code
@@ -13878,8 +13958,7 @@ msgstr "Saisissez une cote pour déplacer le mur"
13878
13958
  # AI-Provider: claude-code
13879
13959
  # AI-Model: claude-opus-5-5
13880
13960
  # English: "Room"
13881
- #: packages/editor/src/components/editor/room-labels.tsx
13882
- #: packages/editor/src/lib/viewer-selection.ts
13961
+ #: packages/viewer/src/ui/lib/viewer-selection.ts
13883
13962
  #, fuzzy
13884
13963
  msgid "editor.roomLabel.room"
13885
13964
  msgstr "Pièce"
@@ -13889,8 +13968,7 @@ msgstr "Pièce"
13889
13968
  # AI-Provider: claude-code
13890
13969
  # AI-Model: claude-opus-5-5
13891
13970
  # English: "Zone"
13892
- #: packages/editor/src/components/editor/room-labels.tsx
13893
- #: packages/editor/src/lib/viewer-selection.ts
13971
+ #: packages/viewer/src/ui/lib/viewer-selection.ts
13894
13972
  #, fuzzy
13895
13973
  msgid "editor.roomLabel.zone"
13896
13974
  msgstr "Zone"
@@ -13900,7 +13978,7 @@ msgstr "Zone"
13900
13978
  # AI-Provider: claude-code
13901
13979
  # AI-Model: claude-opus-5-5
13902
13980
  # English: "Attic"
13903
- #: packages/editor/src/lib/room-name-messages.ts
13981
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
13904
13982
  #, fuzzy
13905
13983
  msgid "editor.roomName.attic"
13906
13984
  msgstr "Combles"
@@ -13910,7 +13988,7 @@ msgstr "Combles"
13910
13988
  # AI-Provider: claude-code
13911
13989
  # AI-Model: claude-opus-5-5
13912
13990
  # English: "Balcony"
13913
- #: packages/editor/src/lib/room-name-messages.ts
13991
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
13914
13992
  #, fuzzy
13915
13993
  msgid "editor.roomName.balcony"
13916
13994
  msgstr "Balcon"
@@ -13920,7 +13998,7 @@ msgstr "Balcon"
13920
13998
  # AI-Provider: claude-code
13921
13999
  # AI-Model: claude-opus-5-5
13922
14000
  # English: "Basement"
13923
- #: packages/editor/src/lib/room-name-messages.ts
14001
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
13924
14002
  #, fuzzy
13925
14003
  msgid "editor.roomName.basement"
13926
14004
  msgstr "Sous-sol"
@@ -13930,7 +14008,7 @@ msgstr "Sous-sol"
13930
14008
  # AI-Provider: claude-code
13931
14009
  # AI-Model: claude-opus-5-5
13932
14010
  # English: "Bathroom"
13933
- #: packages/editor/src/lib/room-name-messages.ts
14011
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
13934
14012
  #, fuzzy
13935
14013
  msgid "editor.roomName.bathroom"
13936
14014
  msgstr "Salle de bain"
@@ -13940,7 +14018,7 @@ msgstr "Salle de bain"
13940
14018
  # AI-Provider: claude-code
13941
14019
  # AI-Model: claude-opus-5-5
13942
14020
  # English: "Bedroom"
13943
- #: packages/editor/src/lib/room-name-messages.ts
14021
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
13944
14022
  #, fuzzy
13945
14023
  msgid "editor.roomName.bedroom"
13946
14024
  msgstr "Chambre"
@@ -13950,7 +14028,7 @@ msgstr "Chambre"
13950
14028
  # AI-Provider: claude-code
13951
14029
  # AI-Model: claude-opus-5-5
13952
14030
  # English: "Boiler room"
13953
- #: packages/editor/src/lib/room-name-messages.ts
14031
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
13954
14032
  #, fuzzy
13955
14033
  msgid "editor.roomName.boilerRoom"
13956
14034
  msgstr "Chaufferie"
@@ -13960,7 +14038,7 @@ msgstr "Chaufferie"
13960
14038
  # AI-Provider: claude-code
13961
14039
  # AI-Model: claude-opus-5-5
13962
14040
  # English: "Carport"
13963
- #: packages/editor/src/lib/room-name-messages.ts
14041
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
13964
14042
  #, fuzzy
13965
14043
  msgid "editor.roomName.carport"
13966
14044
  msgstr "Abri de voiture"
@@ -13970,7 +14048,7 @@ msgstr "Abri de voiture"
13970
14048
  # AI-Provider: claude-code
13971
14049
  # AI-Model: claude-opus-5-5
13972
14050
  # English: "Cellar"
13973
- #: packages/editor/src/lib/room-name-messages.ts
14051
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
13974
14052
  #, fuzzy
13975
14053
  msgid "editor.roomName.cellar"
13976
14054
  msgstr "Cave"
@@ -13980,7 +14058,7 @@ msgstr "Cave"
13980
14058
  # AI-Provider: claude-code
13981
14059
  # AI-Model: claude-opus-5-5
13982
14060
  # English: "Closet"
13983
- #: packages/editor/src/lib/room-name-messages.ts
14061
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
13984
14062
  #, fuzzy
13985
14063
  msgid "editor.roomName.closet"
13986
14064
  msgstr "Placard"
@@ -13990,7 +14068,7 @@ msgstr "Placard"
13990
14068
  # AI-Provider: claude-code
13991
14069
  # AI-Model: claude-opus-5-5
13992
14070
  # English: "Corridor"
13993
- #: packages/editor/src/lib/room-name-messages.ts
14071
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
13994
14072
  #, fuzzy
13995
14073
  msgid "editor.roomName.corridor"
13996
14074
  msgstr "Couloir"
@@ -14000,7 +14078,7 @@ msgstr "Couloir"
14000
14078
  # AI-Provider: claude-code
14001
14079
  # AI-Model: claude-opus-5-5
14002
14080
  # English: "Courtyard"
14003
- #: packages/editor/src/lib/room-name-messages.ts
14081
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14004
14082
  #, fuzzy
14005
14083
  msgid "editor.roomName.courtyard"
14006
14084
  msgstr "Cour"
@@ -14010,7 +14088,7 @@ msgstr "Cour"
14010
14088
  # AI-Provider: claude-code
14011
14089
  # AI-Model: claude-opus-5-5
14012
14090
  # English: "Deck"
14013
- #: packages/editor/src/lib/room-name-messages.ts
14091
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14014
14092
  #, fuzzy
14015
14093
  msgid "editor.roomName.deck"
14016
14094
  msgstr "Terrasse"
@@ -14020,7 +14098,7 @@ msgstr "Terrasse"
14020
14098
  # AI-Provider: claude-code
14021
14099
  # AI-Model: claude-opus-5-5
14022
14100
  # English: "Den"
14023
- #: packages/editor/src/lib/room-name-messages.ts
14101
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14024
14102
  #, fuzzy
14025
14103
  msgid "editor.roomName.den"
14026
14104
  msgstr "Petit salon"
@@ -14030,7 +14108,7 @@ msgstr "Petit salon"
14030
14108
  # AI-Provider: claude-code
14031
14109
  # AI-Model: claude-opus-5-5
14032
14110
  # English: "Dining room"
14033
- #: packages/editor/src/lib/room-name-messages.ts
14111
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14034
14112
  #, fuzzy
14035
14113
  msgid "editor.roomName.diningRoom"
14036
14114
  msgstr "Salle à manger"
@@ -14040,7 +14118,7 @@ msgstr "Salle à manger"
14040
14118
  # AI-Provider: claude-code
14041
14119
  # AI-Model: claude-opus-5-5
14042
14120
  # English: "Dressing room"
14043
- #: packages/editor/src/lib/room-name-messages.ts
14121
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14044
14122
  #, fuzzy
14045
14123
  msgid "editor.roomName.dressingRoom"
14046
14124
  msgstr "Dressing"
@@ -14050,7 +14128,7 @@ msgstr "Dressing"
14050
14128
  # AI-Provider: claude-code
14051
14129
  # AI-Model: claude-opus-5-5
14052
14130
  # English: "En-suite"
14053
- #: packages/editor/src/lib/room-name-messages.ts
14131
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14054
14132
  #, fuzzy
14055
14133
  msgid "editor.roomName.enSuite"
14056
14134
  msgstr "Salle d’eau attenante"
@@ -14060,7 +14138,7 @@ msgstr "Salle d’eau attenante"
14060
14138
  # AI-Provider: claude-code
14061
14139
  # AI-Model: claude-opus-5-5
14062
14140
  # English: "Entrance"
14063
- #: packages/editor/src/lib/room-name-messages.ts
14141
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14064
14142
  #, fuzzy
14065
14143
  msgid "editor.roomName.entrance"
14066
14144
  msgstr "Entrée"
@@ -14070,7 +14148,7 @@ msgstr "Entrée"
14070
14148
  # AI-Provider: claude-code
14071
14149
  # AI-Model: claude-opus-5-5
14072
14150
  # English: "Family room"
14073
- #: packages/editor/src/lib/room-name-messages.ts
14151
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14074
14152
  #, fuzzy
14075
14153
  msgid "editor.roomName.familyRoom"
14076
14154
  msgstr "Salle familiale"
@@ -14080,7 +14158,7 @@ msgstr "Salle familiale"
14080
14158
  # AI-Provider: claude-code
14081
14159
  # AI-Model: claude-opus-5-5
14082
14160
  # English: "Gallery"
14083
- #: packages/editor/src/lib/room-name-messages.ts
14161
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14084
14162
  #, fuzzy
14085
14163
  msgid "editor.roomName.gallery"
14086
14164
  msgstr "Galerie"
@@ -14090,7 +14168,7 @@ msgstr "Galerie"
14090
14168
  # AI-Provider: claude-code
14091
14169
  # AI-Model: claude-opus-5-5
14092
14170
  # English: "Games room"
14093
- #: packages/editor/src/lib/room-name-messages.ts
14171
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14094
14172
  #, fuzzy
14095
14173
  msgid "editor.roomName.gamesRoom"
14096
14174
  msgstr "Salle de jeux"
@@ -14100,7 +14178,7 @@ msgstr "Salle de jeux"
14100
14178
  # AI-Provider: claude-code
14101
14179
  # AI-Model: claude-opus-5-5
14102
14180
  # English: "Garage"
14103
- #: packages/editor/src/lib/room-name-messages.ts
14181
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14104
14182
  #, fuzzy
14105
14183
  msgid "editor.roomName.garage"
14106
14184
  msgstr "Garage"
@@ -14110,7 +14188,7 @@ msgstr "Garage"
14110
14188
  # AI-Provider: claude-code
14111
14189
  # AI-Model: claude-opus-5-5
14112
14190
  # English: "Garden"
14113
- #: packages/editor/src/lib/room-name-messages.ts
14191
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14114
14192
  #, fuzzy
14115
14193
  msgid "editor.roomName.garden"
14116
14194
  msgstr "Jardin"
@@ -14120,7 +14198,7 @@ msgstr "Jardin"
14120
14198
  # AI-Provider: claude-code
14121
14199
  # AI-Model: claude-opus-5-5
14122
14200
  # English: "Garden shed"
14123
- #: packages/editor/src/lib/room-name-messages.ts
14201
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14124
14202
  #, fuzzy
14125
14203
  msgid "editor.roomName.gardenShed"
14126
14204
  msgstr "Abri de jardin"
@@ -14130,7 +14208,7 @@ msgstr "Abri de jardin"
14130
14208
  # AI-Provider: claude-code
14131
14209
  # AI-Model: claude-opus-5-5
14132
14210
  # English: "Guest room"
14133
- #: packages/editor/src/lib/room-name-messages.ts
14211
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14134
14212
  #, fuzzy
14135
14213
  msgid "editor.roomName.guestRoom"
14136
14214
  msgstr "Chambre d’amis"
@@ -14140,7 +14218,7 @@ msgstr "Chambre d’amis"
14140
14218
  # AI-Provider: claude-code
14141
14219
  # AI-Model: claude-opus-5-5
14142
14220
  # English: "Gym"
14143
- #: packages/editor/src/lib/room-name-messages.ts
14221
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14144
14222
  #, fuzzy
14145
14223
  msgid "editor.roomName.gym"
14146
14224
  msgstr "Salle de sport"
@@ -14150,7 +14228,7 @@ msgstr "Salle de sport"
14150
14228
  # AI-Provider: claude-code
14151
14229
  # AI-Model: claude-opus-5-5
14152
14230
  # English: "Hallway"
14153
- #: packages/editor/src/lib/room-name-messages.ts
14231
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14154
14232
  #, fuzzy
14155
14233
  msgid "editor.roomName.hallway"
14156
14234
  msgstr "Couloir"
@@ -14160,7 +14238,7 @@ msgstr "Couloir"
14160
14238
  # AI-Provider: claude-code
14161
14239
  # AI-Model: claude-opus-5-5
14162
14240
  # English: "Home cinema"
14163
- #: packages/editor/src/lib/room-name-messages.ts
14241
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14164
14242
  #, fuzzy
14165
14243
  msgid "editor.roomName.homeCinema"
14166
14244
  msgstr "Home cinéma"
@@ -14170,7 +14248,7 @@ msgstr "Home cinéma"
14170
14248
  # AI-Provider: claude-code
14171
14249
  # AI-Model: claude-opus-5-5
14172
14250
  # English: "Kids' room"
14173
- #: packages/editor/src/lib/room-name-messages.ts
14251
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14174
14252
  #, fuzzy
14175
14253
  msgid "editor.roomName.kidsRoom"
14176
14254
  msgstr "Chambre d’enfant"
@@ -14180,7 +14258,7 @@ msgstr "Chambre d’enfant"
14180
14258
  # AI-Provider: claude-code
14181
14259
  # AI-Model: claude-opus-5-5
14182
14260
  # English: "Kitchen"
14183
- #: packages/editor/src/lib/room-name-messages.ts
14261
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14184
14262
  #, fuzzy
14185
14263
  msgid "editor.roomName.kitchen"
14186
14264
  msgstr "Cuisine"
@@ -14190,7 +14268,7 @@ msgstr "Cuisine"
14190
14268
  # AI-Provider: claude-code
14191
14269
  # AI-Model: claude-opus-5-5
14192
14270
  # English: "Kitchenette"
14193
- #: packages/editor/src/lib/room-name-messages.ts
14271
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14194
14272
  #, fuzzy
14195
14273
  msgid "editor.roomName.kitchenette"
14196
14274
  msgstr "Kitchenette"
@@ -14200,7 +14278,7 @@ msgstr "Kitchenette"
14200
14278
  # AI-Provider: claude-code
14201
14279
  # AI-Model: claude-opus-5-5
14202
14280
  # English: "Landing"
14203
- #: packages/editor/src/lib/room-name-messages.ts
14281
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14204
14282
  #, fuzzy
14205
14283
  msgid "editor.roomName.landing"
14206
14284
  msgstr "Palier"
@@ -14210,7 +14288,7 @@ msgstr "Palier"
14210
14288
  # AI-Provider: claude-code
14211
14289
  # AI-Model: claude-opus-5-5
14212
14290
  # English: "Laundry"
14213
- #: packages/editor/src/lib/room-name-messages.ts
14291
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14214
14292
  #, fuzzy
14215
14293
  msgid "editor.roomName.laundry"
14216
14294
  msgstr "Buanderie"
@@ -14220,7 +14298,7 @@ msgstr "Buanderie"
14220
14298
  # AI-Provider: claude-code
14221
14299
  # AI-Model: claude-opus-5-5
14222
14300
  # English: "Library"
14223
- #: packages/editor/src/lib/room-name-messages.ts
14301
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14224
14302
  #, fuzzy
14225
14303
  msgid "editor.roomName.library"
14226
14304
  msgstr "Bibliothèque"
@@ -14230,7 +14308,7 @@ msgstr "Bibliothèque"
14230
14308
  # AI-Provider: claude-code
14231
14309
  # AI-Model: claude-opus-5-5
14232
14310
  # English: "Living room"
14233
- #: packages/editor/src/lib/room-name-messages.ts
14311
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14234
14312
  #, fuzzy
14235
14313
  msgid "editor.roomName.livingRoom"
14236
14314
  msgstr "Salon"
@@ -14240,7 +14318,7 @@ msgstr "Salon"
14240
14318
  # AI-Provider: claude-code
14241
14319
  # AI-Model: claude-opus-5-5
14242
14320
  # English: "Loft"
14243
- #: packages/editor/src/lib/room-name-messages.ts
14321
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14244
14322
  #, fuzzy
14245
14323
  msgid "editor.roomName.loft"
14246
14324
  msgstr "Loft"
@@ -14250,7 +14328,7 @@ msgstr "Loft"
14250
14328
  # AI-Provider: claude-code
14251
14329
  # AI-Model: claude-opus-5-5
14252
14330
  # English: "Lounge"
14253
- #: packages/editor/src/lib/room-name-messages.ts
14331
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14254
14332
  #, fuzzy
14255
14333
  msgid "editor.roomName.lounge"
14256
14334
  msgstr "Salon"
@@ -14260,7 +14338,7 @@ msgstr "Salon"
14260
14338
  # AI-Provider: claude-code
14261
14339
  # AI-Model: claude-opus-5-5
14262
14340
  # English: "Mezzanine"
14263
- #: packages/editor/src/lib/room-name-messages.ts
14341
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14264
14342
  #, fuzzy
14265
14343
  msgid "editor.roomName.mezzanine"
14266
14344
  msgstr "Mezzanine"
@@ -14270,7 +14348,7 @@ msgstr "Mezzanine"
14270
14348
  # AI-Provider: claude-code
14271
14349
  # AI-Model: claude-opus-5-5
14272
14350
  # English: "Mudroom"
14273
- #: packages/editor/src/lib/room-name-messages.ts
14351
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14274
14352
  #, fuzzy
14275
14353
  msgid "editor.roomName.mudroom"
14276
14354
  msgstr "Vestiaire d’entrée"
@@ -14280,7 +14358,7 @@ msgstr "Vestiaire d’entrée"
14280
14358
  # AI-Provider: claude-code
14281
14359
  # AI-Model: claude-opus-5-5
14282
14360
  # English: "Nursery"
14283
- #: packages/editor/src/lib/room-name-messages.ts
14361
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14284
14362
  #, fuzzy
14285
14363
  msgid "editor.roomName.nursery"
14286
14364
  msgstr "Chambre de bébé"
@@ -14290,7 +14368,7 @@ msgstr "Chambre de bébé"
14290
14368
  # AI-Provider: claude-code
14291
14369
  # AI-Model: claude-opus-5-5
14292
14370
  # English: "Office"
14293
- #: packages/editor/src/lib/room-name-messages.ts
14371
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14294
14372
  #, fuzzy
14295
14373
  msgid "editor.roomName.office"
14296
14374
  msgstr "Bureau"
@@ -14300,7 +14378,7 @@ msgstr "Bureau"
14300
14378
  # AI-Provider: claude-code
14301
14379
  # AI-Model: claude-opus-5-5
14302
14380
  # English: "Pantry"
14303
- #: packages/editor/src/lib/room-name-messages.ts
14381
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14304
14382
  #, fuzzy
14305
14383
  msgid "editor.roomName.pantry"
14306
14384
  msgstr "Garde-manger"
@@ -14310,7 +14388,7 @@ msgstr "Garde-manger"
14310
14388
  # AI-Provider: claude-code
14311
14389
  # AI-Model: claude-opus-5-5
14312
14390
  # English: "Patio"
14313
- #: packages/editor/src/lib/room-name-messages.ts
14391
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14314
14392
  #, fuzzy
14315
14393
  msgid "editor.roomName.patio"
14316
14394
  msgstr "Patio"
@@ -14320,7 +14398,7 @@ msgstr "Patio"
14320
14398
  # AI-Provider: claude-code
14321
14399
  # AI-Model: claude-opus-5-5
14322
14400
  # English: "Playroom"
14323
- #: packages/editor/src/lib/room-name-messages.ts
14401
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14324
14402
  #, fuzzy
14325
14403
  msgid "editor.roomName.playroom"
14326
14404
  msgstr "Salle de jeux"
@@ -14330,7 +14408,7 @@ msgstr "Salle de jeux"
14330
14408
  # AI-Provider: claude-code
14331
14409
  # AI-Model: claude-opus-5-5
14332
14410
  # English: "Pool area"
14333
- #: packages/editor/src/lib/room-name-messages.ts
14411
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14334
14412
  #, fuzzy
14335
14413
  msgid "editor.roomName.poolArea"
14336
14414
  msgstr "Espace piscine"
@@ -14340,7 +14418,7 @@ msgstr "Espace piscine"
14340
14418
  # AI-Provider: claude-code
14341
14419
  # AI-Model: claude-opus-5-5
14342
14420
  # English: "Porch"
14343
- #: packages/editor/src/lib/room-name-messages.ts
14421
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14344
14422
  #, fuzzy
14345
14423
  msgid "editor.roomName.porch"
14346
14424
  msgstr "Porche"
@@ -14350,7 +14428,7 @@ msgstr "Porche"
14350
14428
  # AI-Provider: claude-code
14351
14429
  # AI-Model: claude-opus-5-5
14352
14430
  # English: "Powder room"
14353
- #: packages/editor/src/lib/room-name-messages.ts
14431
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14354
14432
  #, fuzzy
14355
14433
  msgid "editor.roomName.powderRoom"
14356
14434
  msgstr "Toilettes invités"
@@ -14360,7 +14438,7 @@ msgstr "Toilettes invités"
14360
14438
  # AI-Provider: claude-code
14361
14439
  # AI-Model: claude-opus-5-5
14362
14440
  # English: "Primary bedroom"
14363
- #: packages/editor/src/lib/room-name-messages.ts
14441
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14364
14442
  #, fuzzy
14365
14443
  msgid "editor.roomName.primaryBedroom"
14366
14444
  msgstr "Chambre principale"
@@ -14370,7 +14448,7 @@ msgstr "Chambre principale"
14370
14448
  # AI-Provider: claude-code
14371
14449
  # AI-Model: claude-opus-5-5
14372
14450
  # English: "Reading nook"
14373
- #: packages/editor/src/lib/room-name-messages.ts
14451
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14374
14452
  #, fuzzy
14375
14453
  msgid "editor.roomName.readingNook"
14376
14454
  msgstr "Coin lecture"
@@ -14460,7 +14538,7 @@ msgstr "Travail et loisirs"
14460
14538
  # AI-Provider: claude-code
14461
14539
  # AI-Model: claude-opus-5-5
14462
14540
  # English: "Shower room"
14463
- #: packages/editor/src/lib/room-name-messages.ts
14541
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14464
14542
  #, fuzzy
14465
14543
  msgid "editor.roomName.showerRoom"
14466
14544
  msgstr "Salle de douche"
@@ -14470,7 +14548,7 @@ msgstr "Salle de douche"
14470
14548
  # AI-Provider: claude-code
14471
14549
  # AI-Model: claude-opus-5-5
14472
14550
  # English: "Stairwell"
14473
- #: packages/editor/src/lib/room-name-messages.ts
14551
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14474
14552
  #, fuzzy
14475
14553
  msgid "editor.roomName.stairwell"
14476
14554
  msgstr "Cage d’escalier"
@@ -14480,7 +14558,7 @@ msgstr "Cage d’escalier"
14480
14558
  # AI-Provider: claude-code
14481
14559
  # AI-Model: claude-opus-5-5
14482
14560
  # English: "Storage"
14483
- #: packages/editor/src/lib/room-name-messages.ts
14561
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14484
14562
  #, fuzzy
14485
14563
  msgid "editor.roomName.storage"
14486
14564
  msgstr "Rangement"
@@ -14490,7 +14568,7 @@ msgstr "Rangement"
14490
14568
  # AI-Provider: claude-code
14491
14569
  # AI-Model: claude-opus-5-5
14492
14570
  # English: "Studio"
14493
- #: packages/editor/src/lib/room-name-messages.ts
14571
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14494
14572
  #, fuzzy
14495
14573
  msgid "editor.roomName.studio"
14496
14574
  msgstr "Studio"
@@ -14500,7 +14578,7 @@ msgstr "Studio"
14500
14578
  # AI-Provider: claude-code
14501
14579
  # AI-Model: claude-opus-5-5
14502
14580
  # English: "Study"
14503
- #: packages/editor/src/lib/room-name-messages.ts
14581
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14504
14582
  #, fuzzy
14505
14583
  msgid "editor.roomName.study"
14506
14584
  msgstr "Bureau"
@@ -14510,7 +14588,7 @@ msgstr "Bureau"
14510
14588
  # AI-Provider: claude-code
14511
14589
  # AI-Model: claude-opus-5-5
14512
14590
  # English: "Sunroom"
14513
- #: packages/editor/src/lib/room-name-messages.ts
14591
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14514
14592
  #, fuzzy
14515
14593
  msgid "editor.roomName.sunroom"
14516
14594
  msgstr "Véranda"
@@ -14520,7 +14598,7 @@ msgstr "Véranda"
14520
14598
  # AI-Provider: claude-code
14521
14599
  # AI-Model: claude-opus-5-5
14522
14600
  # English: "Terrace"
14523
- #: packages/editor/src/lib/room-name-messages.ts
14601
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14524
14602
  #, fuzzy
14525
14603
  msgid "editor.roomName.terrace"
14526
14604
  msgstr "Terrasse"
@@ -14530,7 +14608,7 @@ msgstr "Terrasse"
14530
14608
  # AI-Provider: claude-code
14531
14609
  # AI-Model: claude-opus-5-5
14532
14610
  # English: "Toilet"
14533
- #: packages/editor/src/lib/room-name-messages.ts
14611
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14534
14612
  #, fuzzy
14535
14613
  msgid "editor.roomName.toilet"
14536
14614
  msgstr "WC"
@@ -14540,7 +14618,7 @@ msgstr "WC"
14540
14618
  # AI-Provider: claude-code
14541
14619
  # AI-Model: claude-opus-5-5
14542
14620
  # English: "Utility room"
14543
- #: packages/editor/src/lib/room-name-messages.ts
14621
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14544
14622
  #, fuzzy
14545
14623
  msgid "editor.roomName.utilityRoom"
14546
14624
  msgstr "Cellier"
@@ -14550,7 +14628,7 @@ msgstr "Cellier"
14550
14628
  # AI-Provider: claude-code
14551
14629
  # AI-Model: claude-opus-5-5
14552
14630
  # English: "Veranda"
14553
- #: packages/editor/src/lib/room-name-messages.ts
14631
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14554
14632
  #, fuzzy
14555
14633
  msgid "editor.roomName.veranda"
14556
14634
  msgstr "Véranda"
@@ -14560,7 +14638,7 @@ msgstr "Véranda"
14560
14638
  # AI-Provider: claude-code
14561
14639
  # AI-Model: claude-opus-5-5
14562
14640
  # English: "Walk-in closet"
14563
- #: packages/editor/src/lib/room-name-messages.ts
14641
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14564
14642
  #, fuzzy
14565
14643
  msgid "editor.roomName.walkInCloset"
14566
14644
  msgstr "Dressing"
@@ -14570,7 +14648,7 @@ msgstr "Dressing"
14570
14648
  # AI-Provider: claude-code
14571
14649
  # AI-Model: claude-opus-5-5
14572
14650
  # English: "Workshop"
14573
- #: packages/editor/src/lib/room-name-messages.ts
14651
+ #: packages/viewer/src/ui/lib/room-name-messages.ts
14574
14652
  #, fuzzy
14575
14653
  msgid "editor.roomName.workshop"
14576
14654
  msgstr "Atelier"
@@ -17495,6 +17573,16 @@ msgstr "Longueur : {field} m"
17495
17573
  msgid "editor.tools.distribution.distributionRunTool.tabDirection"
17496
17574
  msgstr "Tab : direction"
17497
17575
 
17576
+ # Source-Hash: adbe2d112b739871
17577
+ # Review: required
17578
+ # AI-Provider: cursor-agent
17579
+ # AI-Model: claude-opus-5-5
17580
+ # English: "Target elevation: {elevation} m · click or Enter to place"
17581
+ #: packages/editor/src/components/tools/distribution/distribution-run-tool.tsx
17582
+ #, fuzzy
17583
+ msgid "editor.tools.distribution.distributionRunTool.targetElevation"
17584
+ msgstr "Altitude cible : {elevation} m · cliquez ou appuyez sur Entrée pour placer"
17585
+
17498
17586
  # Source-Hash: abb1d8c8bfb41acf
17499
17587
  # Review: required
17500
17588
  # AI-Provider: claude-code
@@ -17740,7 +17828,7 @@ msgstr "Vues"
17740
17828
  # AI-Provider: claude-code
17741
17829
  # AI-Model: claude-opus-5-5
17742
17830
  # English: "boost"
17743
- #: packages/editor/src/components/walkthrough-hud.tsx
17831
+ #: packages/viewer/src/ui/components/walkthrough-hud.tsx
17744
17832
  #, fuzzy
17745
17833
  msgid "editor.walkthroughHud.drone.boost"
17746
17834
  msgstr "accélérer"
@@ -17750,7 +17838,7 @@ msgstr "accélérer"
17750
17838
  # AI-Provider: claude-code
17751
17839
  # AI-Model: claude-opus-5-5
17752
17840
  # English: "down"
17753
- #: packages/editor/src/components/walkthrough-hud.tsx
17841
+ #: packages/viewer/src/ui/components/walkthrough-hud.tsx
17754
17842
  #, fuzzy
17755
17843
  msgid "editor.walkthroughHud.drone.down"
17756
17844
  msgstr "descendre"
@@ -17760,7 +17848,7 @@ msgstr "descendre"
17760
17848
  # AI-Provider: claude-code
17761
17849
  # AI-Model: claude-opus-5-5
17762
17850
  # English: "move"
17763
- #: packages/editor/src/components/walkthrough-hud.tsx
17851
+ #: packages/viewer/src/ui/components/walkthrough-hud.tsx
17764
17852
  #, fuzzy
17765
17853
  msgid "editor.walkthroughHud.drone.move"
17766
17854
  msgstr "se déplacer"
@@ -17770,7 +17858,7 @@ msgstr "se déplacer"
17770
17858
  # AI-Provider: claude-code
17771
17859
  # AI-Model: claude-opus-5-5
17772
17860
  # English: "slow"
17773
- #: packages/editor/src/components/walkthrough-hud.tsx
17861
+ #: packages/viewer/src/ui/components/walkthrough-hud.tsx
17774
17862
  #, fuzzy
17775
17863
  msgid "editor.walkthroughHud.drone.slow"
17776
17864
  msgstr "ralentir"
@@ -17780,7 +17868,7 @@ msgstr "ralentir"
17780
17868
  # AI-Provider: claude-code
17781
17869
  # AI-Model: claude-opus-5-5
17782
17870
  # English: "up"
17783
- #: packages/editor/src/components/walkthrough-hud.tsx
17871
+ #: packages/viewer/src/ui/components/walkthrough-hud.tsx
17784
17872
  #, fuzzy
17785
17873
  msgid "editor.walkthroughHud.drone.up"
17786
17874
  msgstr "monter"
@@ -21695,55 +21783,115 @@ msgstr "Poteau"
21695
21783
  msgid "node.column.panel.actions"
21696
21784
  msgstr "Actions"
21697
21785
 
21698
- # Source-Hash: 14b21685d375581a
21786
+ # AI-Provider: claude-code
21787
+ # AI-Model: claude-opus-5-5
21788
+ # Source-Hash: 663175a9c461a96d
21789
+ # Review: required
21790
+ # English: "All"
21791
+ #: packages/nodes/src/column/panel.tsx
21792
+ #, fuzzy
21793
+ msgid "node.column.panel.all"
21794
+ msgstr "Tout"
21795
+
21796
+ # Source-Hash: dbfe7c561383c964
21699
21797
  # Review: required
21700
21798
  # AI-Provider: claude-code
21701
21799
  # AI-Model: claude-opus-5-5
21702
- # English: "A-Frame"
21800
+ # English: "Apply proportion..."
21703
21801
  #: packages/nodes/src/column/panel.tsx
21704
21802
  #, fuzzy
21705
- msgid "node.column.panel.aFrame"
21706
- msgstr "Cadre en A"
21803
+ msgid "node.column.panel.applyProportion"
21804
+ msgstr "Appliquer une proportion…"
21707
21805
 
21708
- # Source-Hash: 4007d88108e25c2b
21806
+ # AI-Provider: claude-code
21807
+ # AI-Model: claude-opus-5-5
21808
+ # Source-Hash: 63cbda7b09662368
21709
21809
  # Review: required
21810
+ # English: "Arched"
21811
+ #: packages/nodes/src/column/panel.tsx
21812
+ #, fuzzy
21813
+ msgid "node.column.panel.arched"
21814
+ msgstr "Cintré"
21815
+
21710
21816
  # AI-Provider: claude-code
21711
21817
  # AI-Model: claude-opus-5-5
21712
- # English: "Apply preset..."
21818
+ # Source-Hash: d11dffc2c5b0f50a
21819
+ # Review: required
21820
+ # English: "Baluster"
21713
21821
  #: packages/nodes/src/column/panel.tsx
21714
21822
  #, fuzzy
21715
- msgid "node.column.panel.applyPreset"
21716
- msgstr "Appliquer un préréglage…"
21823
+ msgid "node.column.panel.baluster"
21824
+ msgstr "Balustre"
21717
21825
 
21718
- # Source-Hash: dbfe7c561383c964
21826
+ # AI-Provider: claude-code
21827
+ # AI-Model: claude-opus-5-5
21828
+ # Source-Hash: a8fdf969f566a554
21719
21829
  # Review: required
21830
+ # English: "Band Scale"
21831
+ #: packages/nodes/src/column/panel.tsx
21832
+ #, fuzzy
21833
+ msgid "node.column.panel.bandScale"
21834
+ msgstr "Échelle du bandeau"
21835
+
21720
21836
  # AI-Provider: claude-code
21721
21837
  # AI-Model: claude-opus-5-5
21722
- # English: "Apply proportion..."
21838
+ # Source-Hash: fadada809e27477c
21839
+ # Review: required
21840
+ # English: "Base"
21723
21841
  #: packages/nodes/src/column/panel.tsx
21724
21842
  #, fuzzy
21725
- msgid "node.column.panel.applyProportion"
21726
- msgstr "Appliquer une proportion…"
21843
+ msgid "node.column.panel.base"
21844
+ msgstr "Base"
21727
21845
 
21728
- # Source-Hash: 1f3fd938f0b26c9f
21846
+ # AI-Provider: claude-code
21847
+ # AI-Model: claude-opus-5-5
21848
+ # Source-Hash: fca555ac84223bd4
21849
+ # Review: required
21850
+ # English: "Base Carving"
21851
+ #: packages/nodes/src/column/panel.tsx
21852
+ #, fuzzy
21853
+ msgid "node.column.panel.baseCarvingLevel"
21854
+ msgstr "Sculpture de la base"
21855
+
21856
+ # AI-Provider: claude-code
21857
+ # AI-Model: claude-opus-5-5
21858
+ # Source-Hash: fa9118f6f4f020d7
21729
21859
  # Review: required
21860
+ # English: "Base Height"
21861
+ #: packages/nodes/src/column/panel.tsx
21862
+ #, fuzzy
21863
+ msgid "node.column.panel.baseHeight"
21864
+ msgstr "Hauteur de la base"
21865
+
21730
21866
  # AI-Provider: claude-code
21731
21867
  # AI-Model: claude-opus-5-5
21732
- # English: "Bottom Depth"
21868
+ # Source-Hash: efb74250b7929566
21869
+ # Review: required
21870
+ # English: "Base Ribs"
21733
21871
  #: packages/nodes/src/column/panel.tsx
21734
21872
  #, fuzzy
21735
- msgid "node.column.panel.bottomDepth"
21736
- msgstr "Profondeur du bas"
21873
+ msgid "node.column.panel.baseRibCount"
21874
+ msgstr "Nervures de la base"
21737
21875
 
21738
- # Source-Hash: 85576e19cd3da914
21876
+ # AI-Provider: claude-code
21877
+ # AI-Model: claude-opus-5-5
21878
+ # Source-Hash: 1cc2da12e8463e85
21739
21879
  # Review: required
21880
+ # English: "Base style"
21881
+ #: packages/nodes/src/column/panel.tsx
21882
+ #, fuzzy
21883
+ msgid "node.column.panel.baseStyle"
21884
+ msgstr "Style de base"
21885
+
21740
21886
  # AI-Provider: claude-code
21741
21887
  # AI-Model: claude-opus-5-5
21742
- # English: "Bottom Height"
21888
+ # Source-Hash: 971207d7a9e0d8a9
21889
+ # Review: required
21890
+ # English: "Bottom Scale"
21743
21891
  #: packages/nodes/src/column/panel.tsx
21744
21892
  #, fuzzy
21745
- msgid "node.column.panel.bottomHeight"
21746
- msgstr "Hauteur du bas"
21893
+ msgid "node.column.panel.bottomScale"
21894
+ msgstr "Échelle inférieure"
21747
21895
 
21748
21896
  # Source-Hash: 4df0bbb04744a810
21749
21897
  # Review: required
@@ -21755,85 +21903,115 @@ msgstr "Hauteur du bas"
21755
21903
  msgid "node.column.panel.bottomSpread"
21756
21904
  msgstr "Écartement en bas"
21757
21905
 
21758
- # Source-Hash: 67479fecb980a441
21759
- # Review: required
21760
21906
  # AI-Provider: claude-code
21761
21907
  # AI-Model: claude-opus-5-5
21762
- # English: "Bottom Step Spread"
21908
+ # Source-Hash: 35b35cd49111ba44
21909
+ # Review: required
21910
+ # English: "Bracket Depth"
21763
21911
  #: packages/nodes/src/column/panel.tsx
21764
21912
  #, fuzzy
21765
- msgid "node.column.panel.bottomStepSpread"
21766
- msgstr "Écart des gradins du bas"
21913
+ msgid "node.column.panel.bracketDepth"
21914
+ msgstr "Profondeur du corbeau"
21767
21915
 
21768
- # Source-Hash: 6ea977c42202ca24
21769
- # Review: required
21770
21916
  # AI-Provider: claude-code
21771
21917
  # AI-Model: claude-opus-5-5
21772
- # English: "Bottom Tiers"
21918
+ # Source-Hash: 06e2dd9a165502bd
21919
+ # Review: required
21920
+ # English: "Bracket Tiers"
21773
21921
  #: packages/nodes/src/column/panel.tsx
21774
21922
  #, fuzzy
21775
- msgid "node.column.panel.bottomTiers"
21776
- msgstr "Gradins du bas"
21923
+ msgid "node.column.panel.bracketTierCount"
21924
+ msgstr "Niveaux de corbeaux"
21777
21925
 
21778
- # Source-Hash: 709ca788827f8a94
21926
+ # Source-Hash: 663b9a9e6a469b02
21779
21927
  # Review: required
21780
21928
  # AI-Provider: claude-code
21781
21929
  # AI-Model: claude-opus-5-5
21782
- # English: "Bottom Width"
21930
+ # English: "Bulged"
21783
21931
  #: packages/nodes/src/column/panel.tsx
21784
21932
  #, fuzzy
21785
- msgid "node.column.panel.bottomWidth"
21786
- msgstr "Largeur du bas"
21933
+ msgid "node.column.panel.bulged"
21934
+ msgstr "Renflée"
21787
21935
 
21788
- # Source-Hash: 39d33008c81fc075
21789
- # Review: required
21790
21936
  # AI-Provider: claude-code
21791
21937
  # AI-Model: claude-opus-5-5
21792
- # English: "Box Frame"
21938
+ # Source-Hash: 83ac65ddce825df7
21939
+ # Review: required
21940
+ # English: "Bulge Ratio"
21793
21941
  #: packages/nodes/src/column/panel.tsx
21794
21942
  #, fuzzy
21795
- msgid "node.column.panel.boxFrame"
21796
- msgstr "Cadre caisson"
21943
+ msgid "node.column.panel.bulgeRatio"
21944
+ msgstr "Rapport de galbe"
21797
21945
 
21798
- # Source-Hash: 381b1f481f747677
21799
- # Review: required
21800
21946
  # AI-Provider: claude-code
21801
21947
  # AI-Model: claude-opus-5-5
21802
- # English: "Brace Depth"
21948
+ # Source-Hash: 4c56ade213b88ed0
21949
+ # Review: required
21950
+ # English: "Capital"
21803
21951
  #: packages/nodes/src/column/panel.tsx
21804
21952
  #, fuzzy
21805
- msgid "node.column.panel.braceDepth"
21806
- msgstr "Profondeur du contreventement"
21953
+ msgid "node.column.panel.capital"
21954
+ msgstr "Chapiteau"
21807
21955
 
21808
- # Source-Hash: 8509b09b4ecdd6b6
21956
+ # AI-Provider: claude-code
21957
+ # AI-Model: claude-opus-5-5
21958
+ # Source-Hash: 3b969fb1765c3f6c
21809
21959
  # Review: required
21960
+ # English: "Capital Carving"
21961
+ #: packages/nodes/src/column/panel.tsx
21962
+ #, fuzzy
21963
+ msgid "node.column.panel.capitalCarvingLevel"
21964
+ msgstr "Sculpture du chapiteau"
21965
+
21810
21966
  # AI-Provider: claude-code
21811
21967
  # AI-Model: claude-opus-5-5
21812
- # English: "Brace Width"
21968
+ # Source-Hash: 8ae9489f57d43033
21969
+ # Review: required
21970
+ # English: "Capital Height"
21813
21971
  #: packages/nodes/src/column/panel.tsx
21814
21972
  #, fuzzy
21815
- msgid "node.column.panel.braceWidth"
21816
- msgstr "Largeur du contreventement"
21973
+ msgid "node.column.panel.capitalHeight"
21974
+ msgstr "Hauteur du chapiteau"
21817
21975
 
21818
- # Source-Hash: 08558dd786f45281
21976
+ # AI-Provider: claude-code
21977
+ # AI-Model: claude-opus-5-5
21978
+ # Source-Hash: f286eccc906eb8aa
21819
21979
  # Review: required
21980
+ # English: "Capital style"
21981
+ #: packages/nodes/src/column/panel.tsx
21982
+ #, fuzzy
21983
+ msgid "node.column.panel.capitalStyle"
21984
+ msgstr "Style de chapiteau"
21985
+
21820
21986
  # AI-Provider: claude-code
21821
21987
  # AI-Model: claude-opus-5-5
21822
- # English: "Bulge"
21988
+ # Source-Hash: 7886120117de9a5e
21989
+ # Review: required
21990
+ # English: "Carving placement"
21823
21991
  #: packages/nodes/src/column/panel.tsx
21824
21992
  #, fuzzy
21825
- msgid "node.column.panel.bulge"
21826
- msgstr "Renflement"
21993
+ msgid "node.column.panel.carvingPlacement"
21994
+ msgstr "Emplacement de la sculpture"
21827
21995
 
21828
- # Source-Hash: 663b9a9e6a469b02
21996
+ # AI-Provider: claude-code
21997
+ # AI-Model: claude-opus-5-5
21998
+ # Source-Hash: 37ec08bc0ec0c613
21829
21999
  # Review: required
22000
+ # English: "Choose a material, then click the surface to paint."
22001
+ #: packages/nodes/src/column/panel.tsx
22002
+ #, fuzzy
22003
+ msgid "node.column.panel.chooseAMaterialThenClickThe"
22004
+ msgstr "Choisissez un matériau, puis cliquez sur la surface à peindre."
22005
+
21830
22006
  # AI-Provider: claude-code
21831
22007
  # AI-Model: claude-opus-5-5
21832
- # English: "Bulged"
22008
+ # Source-Hash: a5fe146d6adf0818
22009
+ # Review: required
22010
+ # English: "Cluster"
21833
22011
  #: packages/nodes/src/column/panel.tsx
21834
22012
  #, fuzzy
21835
- msgid "node.column.panel.bulged"
21836
- msgstr "Renflée"
22013
+ msgid "node.column.panel.cluster"
22014
+ msgstr "Faisceau"
21837
22015
 
21838
22016
  # Source-Hash: 3530ac1f4046cd22
21839
22017
  # Review: required
@@ -21845,6 +22023,26 @@ msgstr "Renflée"
21845
22023
  msgid "node.column.panel.column"
21846
22024
  msgstr "Poteau"
21847
22025
 
22026
+ # AI-Provider: claude-code
22027
+ # AI-Model: claude-opus-5-5
22028
+ # Source-Hash: 5a4d3e868b707a7f
22029
+ # Review: required
22030
+ # English: "Column proportions"
22031
+ #: packages/nodes/src/column/panel.tsx
22032
+ #, fuzzy
22033
+ msgid "node.column.panel.columnProportions"
22034
+ msgstr "Proportions du poteau"
22035
+
22036
+ # AI-Provider: claude-code
22037
+ # AI-Model: claude-opus-5-5
22038
+ # Source-Hash: 99e7e0e07220b6f0
22039
+ # Review: required
22040
+ # English: "Column style"
22041
+ #: packages/nodes/src/column/panel.tsx
22042
+ #, fuzzy
22043
+ msgid "node.column.panel.columnStyle"
22044
+ msgstr "Style de poteau"
22045
+
21848
22046
  # Source-Hash: ca0a856f04460bd5
21849
22047
  # Review: required
21850
22048
  # AI-Provider: claude-code
@@ -21855,6 +22053,26 @@ msgstr "Poteau"
21855
22053
  msgid "node.column.panel.connectorPlates"
21856
22054
  msgstr "Plaques d'assemblage"
21857
22055
 
22056
+ # AI-Provider: claude-code
22057
+ # AI-Model: claude-opus-5-5
22058
+ # Source-Hash: 054e9bc6519e4829
22059
+ # Review: required
22060
+ # English: "Corinthian Leaf"
22061
+ #: packages/nodes/src/column/panel.tsx
22062
+ #, fuzzy
22063
+ msgid "node.column.panel.corinthianLeaf"
22064
+ msgstr "Feuille corinthienne"
22065
+
22066
+ # AI-Provider: claude-code
22067
+ # AI-Model: claude-opus-5-5
22068
+ # Source-Hash: 03ade8d3de1369be
22069
+ # Review: required
22070
+ # English: "Cross section"
22071
+ #: packages/nodes/src/column/panel.tsx
22072
+ #, fuzzy
22073
+ msgid "node.column.panel.crossSection"
22074
+ msgstr "Section"
22075
+
21858
22076
  # Source-Hash: b26de372b4b0eaac
21859
22077
  # Review: required
21860
22078
  # AI-Provider: claude-code
@@ -21875,15 +22093,65 @@ msgstr "Supprimer"
21875
22093
  msgid "node.column.panel.depth"
21876
22094
  msgstr "Profondeur"
21877
22095
 
21878
- # Source-Hash: 12df69f42beb0643
22096
+ # AI-Provider: claude-code
22097
+ # AI-Model: claude-opus-5-5
22098
+ # Source-Hash: c7c1212a7d3fb04c
21879
22099
  # Review: required
22100
+ # English: "Depth Scale"
22101
+ #: packages/nodes/src/column/panel.tsx
22102
+ #, fuzzy
22103
+ msgid "node.column.panel.depthScale"
22104
+ msgstr "Échelle de profondeur"
22105
+
21880
22106
  # AI-Provider: claude-code
21881
22107
  # AI-Model: claude-opus-5-5
21882
- # English: "Dimensions"
22108
+ # Source-Hash: 9cf14a577e74ed47
22109
+ # Review: required
22110
+ # English: "Depth Span"
21883
22111
  #: packages/nodes/src/column/panel.tsx
21884
22112
  #, fuzzy
21885
- msgid "node.column.panel.dimensions"
21886
- msgstr "Dimensions"
22113
+ msgid "node.column.panel.depthSpan"
22114
+ msgstr "Portée en profondeur"
22115
+
22116
+ # AI-Provider: claude-code
22117
+ # AI-Model: claude-opus-5-5
22118
+ # Source-Hash: 016d8e70618916d4
22119
+ # Review: required
22120
+ # English: "Diameter"
22121
+ #: packages/nodes/src/column/panel.tsx
22122
+ #, fuzzy
22123
+ msgid "node.column.panel.diameter"
22124
+ msgstr "Diamètre"
22125
+
22126
+ # AI-Provider: claude-code
22127
+ # AI-Model: claude-opus-5-5
22128
+ # Source-Hash: 78e3b83eb527f5b6
22129
+ # Review: required
22130
+ # English: "Diamond"
22131
+ #: packages/nodes/src/column/panel.tsx
22132
+ #, fuzzy
22133
+ msgid "node.column.panel.diamond"
22134
+ msgstr "Losange"
22135
+
22136
+ # AI-Provider: claude-code
22137
+ # AI-Model: claude-opus-5-5
22138
+ # Source-Hash: e1ed2f159b6d34f2
22139
+ # Review: required
22140
+ # English: "Doric"
22141
+ #: packages/nodes/src/column/panel.tsx
22142
+ #, fuzzy
22143
+ msgid "node.column.panel.doric"
22144
+ msgstr "Dorique"
22145
+
22146
+ # AI-Provider: claude-code
22147
+ # AI-Model: claude-opus-5-5
22148
+ # Source-Hash: 4b84f09fc9e79572
22149
+ # Review: required
22150
+ # English: "Dravidian Carved"
22151
+ #: packages/nodes/src/column/panel.tsx
22152
+ #, fuzzy
22153
+ msgid "node.column.panel.dravidianCarved"
22154
+ msgstr "Sculpté dravidien"
21887
22155
 
21888
22156
  # Source-Hash: b963a08f0d540014
21889
22157
  # Review: required
@@ -21895,25 +22163,75 @@ msgstr "Dimensions"
21895
22163
  msgid "node.column.panel.edgeSoftness"
21896
22164
  msgstr "Adoucissement des arêtes"
21897
22165
 
21898
- # Source-Hash: 82b3db356639ef92
22166
+ # AI-Provider: claude-code
22167
+ # AI-Model: claude-opus-5-5
22168
+ # Source-Hash: 50d76d0bfa5828f5
22169
+ # Review: required
22170
+ # English: "End Scale"
22171
+ #: packages/nodes/src/column/panel.tsx
22172
+ #, fuzzy
22173
+ msgid "node.column.panel.endScale"
22174
+ msgstr "Échelle d’extrémité"
22175
+
22176
+ # AI-Provider: claude-code
22177
+ # AI-Model: claude-opus-5-5
22178
+ # Source-Hash: e0898026fa3ef7ef
22179
+ # Review: required
22180
+ # English: "Entire Object"
22181
+ #: packages/nodes/src/column/panel.tsx
22182
+ #, fuzzy
22183
+ msgid "node.column.panel.entireObject"
22184
+ msgstr "Objet entier"
22185
+
22186
+ # AI-Provider: claude-code
22187
+ # AI-Model: claude-opus-5-5
22188
+ # Source-Hash: c63bf1154bb7909f
22189
+ # Review: required
22190
+ # English: "Faceted"
22191
+ #: packages/nodes/src/column/panel.tsx
22192
+ #, fuzzy
22193
+ msgid "node.column.panel.faceted"
22194
+ msgstr "À facettes"
22195
+
22196
+ # AI-Provider: claude-code
22197
+ # AI-Model: claude-opus-5-5
22198
+ # Source-Hash: 7e84091e8efd4274
21899
22199
  # Review: required
22200
+ # English: "Flute Count"
22201
+ #: packages/nodes/src/column/panel.tsx
22202
+ #, fuzzy
22203
+ msgid "node.column.panel.fluteCount"
22204
+ msgstr "Nombre de cannelures"
22205
+
21900
22206
  # AI-Provider: claude-code
21901
22207
  # AI-Model: claude-opus-5-5
21902
- # English: "Ends"
22208
+ # Source-Hash: b2166db6249b9ef0
22209
+ # Review: required
22210
+ # English: "Fluted"
21903
22211
  #: packages/nodes/src/column/panel.tsx
21904
22212
  #, fuzzy
21905
- msgid "node.column.panel.ends"
21906
- msgstr "Extrémités"
22213
+ msgid "node.column.panel.fluted"
22214
+ msgstr "Cannelé"
21907
22215
 
21908
- # Source-Hash: 646c3cd99df3e285
22216
+ # AI-Provider: claude-code
22217
+ # AI-Model: claude-opus-5-5
22218
+ # Source-Hash: ba3d227ad13eb300
21909
22219
  # Review: required
22220
+ # English: "Flute Depth"
22221
+ #: packages/nodes/src/column/panel.tsx
22222
+ #, fuzzy
22223
+ msgid "node.column.panel.fluteDepth"
22224
+ msgstr "Profondeur des cannelures"
22225
+
21910
22226
  # AI-Provider: claude-code
21911
22227
  # AI-Model: claude-opus-5-5
21912
- # English: "End Width"
22228
+ # Source-Hash: 5530e4916f99d59e
22229
+ # Review: required
22230
+ # English: "Flute Width"
21913
22231
  #: packages/nodes/src/column/panel.tsx
21914
22232
  #, fuzzy
21915
- msgid "node.column.panel.endWidth"
21916
- msgstr "Largeur d'extrémité"
22233
+ msgid "node.column.panel.fluteWidth"
22234
+ msgstr "Largeur des cannelures"
21917
22235
 
21918
22236
  # Source-Hash: 02e229bca2a2b5f1
21919
22237
  # Review: required
@@ -21925,6 +22243,16 @@ msgstr "Largeur d'extrémité"
21925
22243
  msgid "node.column.panel.forkSpread"
21926
22244
  msgstr "Écartement de la fourche"
21927
22245
 
22246
+ # AI-Provider: claude-code
22247
+ # AI-Model: claude-opus-5-5
22248
+ # Source-Hash: ce3a6c03765dbbd8
22249
+ # Review: required
22250
+ # English: "Frame"
22251
+ #: packages/nodes/src/column/panel.tsx
22252
+ #, fuzzy
22253
+ msgid "node.column.panel.frame"
22254
+ msgstr "Cadre"
22255
+
21928
22256
  # Source-Hash: fdebfac05413abcf
21929
22257
  # Review: required
21930
22258
  # AI-Provider: claude-code
@@ -21965,15 +22293,105 @@ msgstr "La hauteur et l'emprise sont pilotées par l'appentis. Faites pivoter ou
21965
22293
  msgid "node.column.panel.hourglass"
21966
22294
  msgstr "Sablier"
21967
22295
 
21968
- # Source-Hash: 9cc75129edee59ad
22296
+ # AI-Provider: claude-code
22297
+ # AI-Model: claude-opus-5-5
22298
+ # Source-Hash: 2f3ee076ecdccfe2
21969
22299
  # Review: required
22300
+ # English: "Ionic Volute"
22301
+ #: packages/nodes/src/column/panel.tsx
22302
+ #, fuzzy
22303
+ msgid "node.column.panel.ionicVolute"
22304
+ msgstr "Volute ionique"
22305
+
21970
22306
  # AI-Provider: claude-code
21971
22307
  # AI-Model: claude-opus-5-5
21972
- # English: "K Brace"
22308
+ # Source-Hash: 2499bbb980a232cf
22309
+ # Review: required
22310
+ # English: "Lathe Rings"
21973
22311
  #: packages/nodes/src/column/panel.tsx
21974
22312
  #, fuzzy
21975
- msgid "node.column.panel.kBrace"
21976
- msgstr "Contreventement en K"
22313
+ msgid "node.column.panel.latheRingCount"
22314
+ msgstr "Anneaux tournés"
22315
+
22316
+ # AI-Provider: claude-code
22317
+ # AI-Model: claude-opus-5-5
22318
+ # Source-Hash: 73a16ff19b6f7fdc
22319
+ # Review: required
22320
+ # English: "Lathe Turned"
22321
+ #: packages/nodes/src/column/panel.tsx
22322
+ #, fuzzy
22323
+ msgid "node.column.panel.latheTurned"
22324
+ msgstr "Tourné"
22325
+
22326
+ # AI-Provider: claude-code
22327
+ # AI-Model: claude-opus-5-5
22328
+ # Source-Hash: f2ccd152aa17feab
22329
+ # Review: required
22330
+ # English: "Leaf Carved"
22331
+ #: packages/nodes/src/column/panel.tsx
22332
+ #, fuzzy
22333
+ msgid "node.column.panel.leafCarved"
22334
+ msgstr "Feuilles sculptées"
22335
+
22336
+ # AI-Provider: claude-code
22337
+ # AI-Model: claude-opus-5-5
22338
+ # Source-Hash: c390ba248e629b9e
22339
+ # Review: required
22340
+ # English: "Leaves"
22341
+ #: packages/nodes/src/column/panel.tsx
22342
+ #, fuzzy
22343
+ msgid "node.column.panel.leafCount"
22344
+ msgstr "Feuilles"
22345
+
22346
+ # AI-Provider: claude-code
22347
+ # AI-Model: claude-opus-5-5
22348
+ # Source-Hash: a76263da42bc17b0
22349
+ # Review: required
22350
+ # English: "Leaf Rows"
22351
+ #: packages/nodes/src/column/panel.tsx
22352
+ #, fuzzy
22353
+ msgid "node.column.panel.leafRows"
22354
+ msgstr "Rangées de feuilles"
22355
+
22356
+ # AI-Provider: claude-code
22357
+ # AI-Model: claude-opus-5-5
22358
+ # Source-Hash: 00b838b1271dcc00
22359
+ # Review: required
22360
+ # English: "Lotus"
22361
+ #: packages/nodes/src/column/panel.tsx
22362
+ #, fuzzy
22363
+ msgid "node.column.panel.lotus"
22364
+ msgstr "Lotus"
22365
+
22366
+ # AI-Provider: claude-code
22367
+ # AI-Model: claude-opus-5-5
22368
+ # Source-Hash: 4d0d49127f197e7f
22369
+ # Review: required
22370
+ # English: "Materials"
22371
+ #: packages/nodes/src/column/panel.tsx
22372
+ #, fuzzy
22373
+ msgid "node.column.panel.materials"
22374
+ msgstr "Matériaux"
22375
+
22376
+ # AI-Provider: claude-code
22377
+ # AI-Model: claude-opus-5-5
22378
+ # Source-Hash: b9b11a8228f9d9c3
22379
+ # Review: required
22380
+ # English: "Member Depth"
22381
+ #: packages/nodes/src/column/panel.tsx
22382
+ #, fuzzy
22383
+ msgid "node.column.panel.memberDepth"
22384
+ msgstr "Profondeur de l’élément"
22385
+
22386
+ # AI-Provider: claude-code
22387
+ # AI-Model: claude-opus-5-5
22388
+ # Source-Hash: 3e0ddf162579af15
22389
+ # Review: required
22390
+ # English: "Member Width"
22391
+ #: packages/nodes/src/column/panel.tsx
22392
+ #, fuzzy
22393
+ msgid "node.column.panel.memberWidth"
22394
+ msgstr "Largeur de l’élément"
21977
22395
 
21978
22396
  # Source-Hash: bd02c614454fbd2b
21979
22397
  # Review: required
@@ -21985,65 +22403,145 @@ msgstr "Contreventement en K"
21985
22403
  msgid "node.column.panel.move"
21986
22404
  msgstr "Déplacer"
21987
22405
 
21988
- # Source-Hash: 6dc190abd3f22787
22406
+ # AI-Provider: claude-code
22407
+ # AI-Model: claude-opus-5-5
22408
+ # Source-Hash: 78c5ca001ea8241d
21989
22409
  # Review: required
22410
+ # English: "Neck Scale"
22411
+ #: packages/nodes/src/column/panel.tsx
22412
+ #, fuzzy
22413
+ msgid "node.column.panel.neckScale"
22414
+ msgstr "Échelle du gorgerin"
22415
+
21990
22416
  # AI-Provider: claude-code
21991
22417
  # AI-Model: claude-opus-5-5
21992
- # English: "Neck Width"
22418
+ # Source-Hash: f2953d2931e36d0c
22419
+ # Review: required
22420
+ # English: "None"
21993
22421
  #: packages/nodes/src/column/panel.tsx
21994
22422
  #, fuzzy
21995
- msgid "node.column.panel.neckWidth"
21996
- msgstr "Largeur du col"
22423
+ msgid "node.column.panel.none"
22424
+ msgstr "Aucun"
21997
22425
 
21998
- # Source-Hash: 7dba7ed55eeba18f
22426
+ # AI-Provider: claude-code
22427
+ # AI-Model: claude-opus-5-5
22428
+ # Source-Hash: 698f9ebcd3ab81c6
21999
22429
  # Review: required
22430
+ # English: "Octagonal"
22431
+ #: packages/nodes/src/column/panel.tsx
22432
+ #, fuzzy
22433
+ msgid "node.column.panel.octagonal"
22434
+ msgstr "Octogonal"
22435
+
22000
22436
  # AI-Provider: claude-code
22001
22437
  # AI-Model: claude-opus-5-5
22002
- # English: "No Bottom"
22438
+ # Source-Hash: 8680135de608a900
22439
+ # Review: required
22440
+ # English: "Paint Materials"
22003
22441
  #: packages/nodes/src/column/panel.tsx
22004
22442
  #, fuzzy
22005
- msgid "node.column.panel.noBottom"
22006
- msgstr "Sans base"
22443
+ msgid "node.column.panel.paintMaterials"
22444
+ msgstr "Peindre les matériaux"
22007
22445
 
22008
- # Source-Hash: 682d71815bb20e94
22446
+ # AI-Provider: claude-code
22447
+ # AI-Model: claude-opus-5-5
22448
+ # Source-Hash: 2d1f1576d0878e2d
22009
22449
  # Review: required
22450
+ # English: "Carved Panels"
22451
+ #: packages/nodes/src/column/panel.tsx
22452
+ #, fuzzy
22453
+ msgid "node.column.panel.panelCount"
22454
+ msgstr "Panneaux sculptés"
22455
+
22010
22456
  # AI-Provider: claude-code
22011
22457
  # AI-Model: claude-opus-5-5
22012
- # English: "No Top"
22458
+ # Source-Hash: 6b503ed1b7d1569b
22459
+ # Review: required
22460
+ # English: "Panel Relief"
22013
22461
  #: packages/nodes/src/column/panel.tsx
22014
22462
  #, fuzzy
22015
- msgid "node.column.panel.noTop"
22016
- msgstr "Sans chapiteau"
22463
+ msgid "node.column.panel.panelInsetDepth"
22464
+ msgstr "Relief des panneaux"
22017
22465
 
22018
- # Source-Hash: 4da8688437f64db8
22466
+ # AI-Provider: claude-code
22467
+ # AI-Model: claude-opus-5-5
22468
+ # Source-Hash: 3332ef0ae3f455b0
22019
22469
  # Review: required
22470
+ # English: "Panelled"
22471
+ #: packages/nodes/src/column/panel.tsx
22472
+ #, fuzzy
22473
+ msgid "node.column.panel.panelled"
22474
+ msgstr "À panneaux"
22475
+
22020
22476
  # AI-Provider: claude-code
22021
22477
  # AI-Model: claude-opus-5-5
22022
- # English: "Plinth Thickness"
22478
+ # Source-Hash: 734c75436555233f
22479
+ # Review: required
22480
+ # English: "Panelled Pedestal"
22023
22481
  #: packages/nodes/src/column/panel.tsx
22024
22482
  #, fuzzy
22025
- msgid "node.column.panel.plinthThickness"
22026
- msgstr "Épaisseur de la plinthe"
22483
+ msgid "node.column.panel.panelledPedestal"
22484
+ msgstr "Piédestal à panneaux"
22027
22485
 
22028
- # Source-Hash: 0bf453b4882c663c
22486
+ # AI-Provider: claude-code
22487
+ # AI-Model: claude-opus-5-5
22488
+ # Source-Hash: efe3a9af7ede09f5
22029
22489
  # Review: required
22490
+ # English: "Panel shape"
22491
+ #: packages/nodes/src/column/panel.tsx
22492
+ #, fuzzy
22493
+ msgid "node.column.panel.panelShape"
22494
+ msgstr "Forme des panneaux"
22495
+
22030
22496
  # AI-Provider: claude-code
22031
22497
  # AI-Model: claude-opus-5-5
22032
- # English: "Portal Frame"
22498
+ # Source-Hash: 1742cce555f51b78
22499
+ # Review: required
22500
+ # English: "Pendants"
22033
22501
  #: packages/nodes/src/column/panel.tsx
22034
22502
  #, fuzzy
22035
- msgid "node.column.panel.portalFrame"
22036
- msgstr "Portique"
22503
+ msgid "node.column.panel.pendantCount"
22504
+ msgstr "Pendentifs"
22037
22505
 
22038
- # Source-Hash: 441f7f652ea6a0d8
22506
+ # AI-Provider: claude-code
22507
+ # AI-Model: claude-opus-5-5
22508
+ # Source-Hash: 9f0680b4bd973026
22039
22509
  # Review: required
22510
+ # English: "Plain"
22511
+ #: packages/nodes/src/column/panel.tsx
22512
+ #, fuzzy
22513
+ msgid "node.column.panel.plain"
22514
+ msgstr "Lisse"
22515
+
22040
22516
  # AI-Provider: claude-code
22041
22517
  # AI-Model: claude-opus-5-5
22042
- # English: "Preset"
22518
+ # Source-Hash: 642987dea5693bb0
22519
+ # Review: required
22520
+ # English: "Plinth Height Fraction"
22043
22521
  #: packages/nodes/src/column/panel.tsx
22044
22522
  #, fuzzy
22045
- msgid "node.column.panel.preset"
22046
- msgstr "Préréglage"
22523
+ msgid "node.column.panel.plinthHeightFraction"
22524
+ msgstr "Part de hauteur de la plinthe"
22525
+
22526
+ # AI-Provider: claude-code
22527
+ # AI-Model: claude-opus-5-5
22528
+ # Source-Hash: 96ad4bd0f7baa40e
22529
+ # Review: required
22530
+ # English: "Profile"
22531
+ #: packages/nodes/src/column/panel.tsx
22532
+ #, fuzzy
22533
+ msgid "node.column.panel.profile"
22534
+ msgstr "Profil"
22535
+
22536
+ # AI-Provider: claude-code
22537
+ # AI-Model: claude-opus-5-5
22538
+ # Source-Hash: 2c2c20272b0370cc
22539
+ # Review: required
22540
+ # English: "Rectangle"
22541
+ #: packages/nodes/src/column/panel.tsx
22542
+ #, fuzzy
22543
+ msgid "node.column.panel.rectangle"
22544
+ msgstr "Rectangle"
22047
22545
 
22048
22546
  # Source-Hash: f29fef1beeb25f22
22049
22547
  # Review: required
@@ -22055,6 +22553,96 @@ msgstr "Préréglage"
22055
22553
  msgid "node.column.panel.rectangular"
22056
22554
  msgstr "Rectangulaire"
22057
22555
 
22556
+ # AI-Provider: claude-code
22557
+ # AI-Model: claude-opus-5-5
22558
+ # Source-Hash: 07096122904e293c
22559
+ # Review: required
22560
+ # English: "Reset base"
22561
+ #: packages/nodes/src/column/panel.tsx
22562
+ #, fuzzy
22563
+ msgid "node.column.panel.resetBase"
22564
+ msgstr "Réinitialiser la base"
22565
+
22566
+ # AI-Provider: claude-code
22567
+ # AI-Model: claude-opus-5-5
22568
+ # Source-Hash: 06c87de417e85470
22569
+ # Review: required
22570
+ # English: "Reset capital"
22571
+ #: packages/nodes/src/column/panel.tsx
22572
+ #, fuzzy
22573
+ msgid "node.column.panel.resetCapital"
22574
+ msgstr "Réinitialiser le chapiteau"
22575
+
22576
+ # AI-Provider: claude-code
22577
+ # AI-Model: claude-opus-5-5
22578
+ # Source-Hash: 3636d202511854e5
22579
+ # Review: required
22580
+ # English: "Reset materials"
22581
+ #: packages/nodes/src/column/panel.tsx
22582
+ #, fuzzy
22583
+ msgid "node.column.panel.resetMaterials"
22584
+ msgstr "Réinitialiser les matériaux"
22585
+
22586
+ # AI-Provider: claude-code
22587
+ # AI-Model: claude-opus-5-5
22588
+ # Source-Hash: 94b0d78e787246d7
22589
+ # Review: required
22590
+ # English: "Reset profile"
22591
+ #: packages/nodes/src/column/panel.tsx
22592
+ #, fuzzy
22593
+ msgid "node.column.panel.resetProfile"
22594
+ msgstr "Réinitialiser le profil"
22595
+
22596
+ # AI-Provider: claude-code
22597
+ # AI-Model: claude-opus-5-5
22598
+ # Source-Hash: b3316cff09204a85
22599
+ # Review: required
22600
+ # English: "Reset shape"
22601
+ #: packages/nodes/src/column/panel.tsx
22602
+ #, fuzzy
22603
+ msgid "node.column.panel.resetShape"
22604
+ msgstr "Réinitialiser la forme"
22605
+
22606
+ # AI-Provider: claude-code
22607
+ # AI-Model: claude-opus-5-5
22608
+ # Source-Hash: 82af49f4195cd4ac
22609
+ # Review: required
22610
+ # English: "Reset size"
22611
+ #: packages/nodes/src/column/panel.tsx
22612
+ #, fuzzy
22613
+ msgid "node.column.panel.resetSize"
22614
+ msgstr "Réinitialiser la taille"
22615
+
22616
+ # AI-Provider: claude-code
22617
+ # AI-Model: claude-opus-5-5
22618
+ # Source-Hash: d0618e3f3e654397
22619
+ # Review: required
22620
+ # English: "Reset surface details"
22621
+ #: packages/nodes/src/column/panel.tsx
22622
+ #, fuzzy
22623
+ msgid "node.column.panel.resetSurfaceDetails"
22624
+ msgstr "Réinitialiser les détails de surface"
22625
+
22626
+ # AI-Provider: claude-code
22627
+ # AI-Model: claude-opus-5-5
22628
+ # Source-Hash: 75750b2b96267be1
22629
+ # Review: required
22630
+ # English: "Reset transform"
22631
+ #: packages/nodes/src/column/panel.tsx
22632
+ #, fuzzy
22633
+ msgid "node.column.panel.resetTransform"
22634
+ msgstr "Réinitialiser la transformation"
22635
+
22636
+ # AI-Provider: claude-code
22637
+ # AI-Model: claude-opus-5-5
22638
+ # Source-Hash: 0a98ea93d3b14774
22639
+ # Review: required
22640
+ # English: "Ribbed Lotus"
22641
+ #: packages/nodes/src/column/panel.tsx
22642
+ #, fuzzy
22643
+ msgid "node.column.panel.ribbedLotus"
22644
+ msgstr "Lotus nervuré"
22645
+
22058
22646
  # Source-Hash: 23b9d290b165cd49
22059
22647
  # Review: required
22060
22648
  # AI-Provider: claude-code
@@ -22065,15 +22653,15 @@ msgstr "Rectangulaire"
22065
22653
  msgid "node.column.panel.ringPairs"
22066
22654
  msgstr "Paires d'anneaux"
22067
22655
 
22068
- # Source-Hash: 8db82d731a19651e
22069
- # Review: required
22070
22656
  # AI-Provider: claude-code
22071
22657
  # AI-Model: claude-opus-5-5
22072
- # English: "Ring Spread"
22658
+ # Source-Hash: cf364ce8e1154b23
22659
+ # Review: required
22660
+ # English: "Ring Spread Ratio"
22073
22661
  #: packages/nodes/src/column/panel.tsx
22074
22662
  #, fuzzy
22075
- msgid "node.column.panel.ringSpread"
22076
- msgstr "Écart des anneaux"
22663
+ msgid "node.column.panel.ringSpreadRatio"
22664
+ msgstr "Rapport d’espacement des anneaux"
22077
22665
 
22078
22666
  # Source-Hash: bdb524a15d9e1509
22079
22667
  # Review: required
@@ -22085,55 +22673,55 @@ msgstr "Écart des anneaux"
22085
22673
  msgid "node.column.panel.ringThickness"
22086
22674
  msgstr "Épaisseur des anneaux"
22087
22675
 
22088
- # Source-Hash: ad0457800a1f0eb4
22089
- # Review: required
22090
22676
  # AI-Provider: claude-code
22091
22677
  # AI-Model: claude-opus-5-5
22092
- # English: "Round"
22678
+ # Source-Hash: 01989595ee7c1dc0
22679
+ # Review: required
22680
+ # English: "Rotation"
22093
22681
  #: packages/nodes/src/column/panel.tsx
22094
22682
  #, fuzzy
22095
- msgid "node.column.panel.round"
22096
- msgstr "Rond"
22683
+ msgid "node.column.panel.rotation"
22684
+ msgstr "Rotation"
22097
22685
 
22098
- # Source-Hash: baa84a2d17095dcf
22686
+ # Source-Hash: ad0457800a1f0eb4
22099
22687
  # Review: required
22100
22688
  # AI-Provider: claude-code
22101
22689
  # AI-Model: claude-opus-5-5
22102
- # English: "Round Band Width"
22690
+ # English: "Round"
22103
22691
  #: packages/nodes/src/column/panel.tsx
22104
22692
  #, fuzzy
22105
- msgid "node.column.panel.roundBandWidth"
22106
- msgstr "Largeur de la bague ronde"
22693
+ msgid "node.column.panel.round"
22694
+ msgstr "Rond"
22107
22695
 
22108
- # Source-Hash: 5f1f67fb0ca59a6d
22109
- # Review: required
22110
22696
  # AI-Provider: claude-code
22111
22697
  # AI-Model: claude-opus-5-5
22112
- # English: "Rounded Bottom"
22698
+ # Source-Hash: fc826da6c99303e6
22699
+ # Review: required
22700
+ # English: "Rounded"
22113
22701
  #: packages/nodes/src/column/panel.tsx
22114
22702
  #, fuzzy
22115
- msgid "node.column.panel.roundedBottom"
22116
- msgstr "Base arrondie"
22703
+ msgid "node.column.panel.rounded"
22704
+ msgstr "Arrondi"
22117
22705
 
22118
- # Source-Hash: 446816980ed0da27
22119
- # Review: required
22120
22706
  # AI-Provider: claude-code
22121
22707
  # AI-Model: claude-opus-5-5
22122
- # English: "Rounded Top"
22708
+ # Source-Hash: 04945d148ddddfce
22709
+ # Review: required
22710
+ # English: "Round Rings"
22123
22711
  #: packages/nodes/src/column/panel.tsx
22124
22712
  #, fuzzy
22125
- msgid "node.column.panel.roundedTop"
22126
- msgstr "Chapiteau arrondi"
22713
+ msgid "node.column.panel.roundRings"
22714
+ msgstr "Anneaux ronds"
22127
22715
 
22128
- # Source-Hash: 9e554c26be80f0d0
22129
- # Review: required
22130
22716
  # AI-Provider: claude-code
22131
22717
  # AI-Model: claude-opus-5-5
22132
- # English: "Segment Twist"
22718
+ # Source-Hash: e08860e0c3f2e081
22719
+ # Review: required
22720
+ # English: "Scales multiply the dimensions in Size. A ratio of 0.2 means 20%."
22133
22721
  #: packages/nodes/src/column/panel.tsx
22134
22722
  #, fuzzy
22135
- msgid "node.column.panel.segmentTwist"
22136
- msgstr "Torsion des segments"
22723
+ msgid "node.column.panel.scalesMultiplyTheDimensionsInSize"
22724
+ msgstr "Les échelles multiplient les dimensions de Taille. Un rapport de 0,2 correspond à 20 %."
22137
22725
 
22138
22726
  # Source-Hash: 4fc63ad21de30103
22139
22727
  # Review: required
@@ -22155,15 +22743,35 @@ msgstr "Gaine"
22155
22743
  msgid "node.column.panel.shaftCornerRadius"
22156
22744
  msgstr "Rayon d'angle du fût"
22157
22745
 
22158
- # Source-Hash: 3dab61aeb47e504d
22746
+ # AI-Provider: claude-code
22747
+ # AI-Model: claude-opus-5-5
22748
+ # Source-Hash: 5a135f294b02a092
22159
22749
  # Review: required
22750
+ # English: "Shaft detail"
22751
+ #: packages/nodes/src/column/panel.tsx
22752
+ #, fuzzy
22753
+ msgid "node.column.panel.shaftDetail"
22754
+ msgstr "Détail du fût"
22755
+
22160
22756
  # AI-Provider: claude-code
22161
22757
  # AI-Model: claude-opus-5-5
22162
- # English: "Shaft Width"
22758
+ # Source-Hash: 7b983a1ad9667719
22759
+ # Review: required
22760
+ # English: "Shaft profile"
22163
22761
  #: packages/nodes/src/column/panel.tsx
22164
22762
  #, fuzzy
22165
- msgid "node.column.panel.shaftWidth"
22166
- msgstr "Largeur du fût"
22763
+ msgid "node.column.panel.shaftProfile"
22764
+ msgstr "Profil du fût"
22765
+
22766
+ # AI-Provider: claude-code
22767
+ # AI-Model: claude-opus-5-5
22768
+ # Source-Hash: f23c2ea65fb94e30
22769
+ # Review: required
22770
+ # English: "Shaft Scale"
22771
+ #: packages/nodes/src/column/panel.tsx
22772
+ #, fuzzy
22773
+ msgid "node.column.panel.shaftScale"
22774
+ msgstr "Échelle du fût"
22167
22775
 
22168
22776
  # Source-Hash: 85ea1d3c8b749680
22169
22777
  # Review: required
@@ -22185,35 +22793,55 @@ msgstr "Forme"
22185
22793
  msgid "node.column.panel.shortStout"
22186
22794
  msgstr "Courte / Trapue"
22187
22795
 
22188
- # Source-Hash: 4637a9a61638cc66
22189
- # Review: required
22190
22796
  # AI-Provider: claude-code
22191
22797
  # AI-Model: claude-opus-5-5
22192
- # English: "Simple Block Bottom"
22798
+ # Source-Hash: a05a390ae205fdd8
22799
+ # Review: required
22800
+ # English: "Simple"
22193
22801
  #: packages/nodes/src/column/panel.tsx
22194
22802
  #, fuzzy
22195
- msgid "node.column.panel.simpleBlockBottom"
22196
- msgstr "Base en bloc simple"
22803
+ msgid "node.column.panel.simple"
22804
+ msgstr "Simple"
22197
22805
 
22198
- # Source-Hash: 9278f9b4a48208b0
22806
+ # AI-Provider: claude-code
22807
+ # AI-Model: claude-opus-5-5
22808
+ # Source-Hash: e6d1bf2e70e5d5c2
22199
22809
  # Review: required
22810
+ # English: "Simple Slab"
22811
+ #: packages/nodes/src/column/panel.tsx
22812
+ #, fuzzy
22813
+ msgid "node.column.panel.simpleSlab"
22814
+ msgstr "Dalle simple"
22815
+
22200
22816
  # AI-Provider: claude-code
22201
22817
  # AI-Model: claude-opus-5-5
22202
- # English: "Simple Top"
22818
+ # Source-Hash: b287189cec36ae84
22819
+ # Review: required
22820
+ # English: "Simple Square"
22203
22821
  #: packages/nodes/src/column/panel.tsx
22204
22822
  #, fuzzy
22205
- msgid "node.column.panel.simpleTop"
22206
- msgstr "Chapiteau simple"
22823
+ msgid "node.column.panel.simpleSquare"
22824
+ msgstr "Carré simple"
22207
22825
 
22208
- # Source-Hash: 9099890734ae1238
22826
+ # AI-Provider: claude-code
22827
+ # AI-Model: claude-opus-5-5
22828
+ # Source-Hash: 7dd0384e4fdd974a
22209
22829
  # Review: required
22830
+ # English: "Sixteen Sided"
22831
+ #: packages/nodes/src/column/panel.tsx
22832
+ #, fuzzy
22833
+ msgid "node.column.panel.sixteenSided"
22834
+ msgstr "Seize côtés"
22835
+
22210
22836
  # AI-Provider: claude-code
22211
22837
  # AI-Model: claude-opus-5-5
22212
- # English: "Single Strut"
22838
+ # Source-Hash: 60bb3338e0ad558c
22839
+ # Review: required
22840
+ # English: "Size"
22213
22841
  #: packages/nodes/src/column/panel.tsx
22214
22842
  #, fuzzy
22215
- msgid "node.column.panel.singleStrut"
22216
- msgstr "Jambe de force unique"
22843
+ msgid "node.column.panel.size"
22844
+ msgstr "Taille"
22217
22845
 
22218
22846
  # Source-Hash: d87ce271009ce063
22219
22847
  # Review: required
@@ -22225,6 +22853,46 @@ msgstr "Jambe de force unique"
22225
22853
  msgid "node.column.panel.slender"
22226
22854
  msgstr "Élancée"
22227
22855
 
22856
+ # AI-Provider: claude-code
22857
+ # AI-Model: claude-opus-5-5
22858
+ # Source-Hash: 8560a17c90378be7
22859
+ # Review: required
22860
+ # English: "South Indian Bracket"
22861
+ #: packages/nodes/src/column/panel.tsx
22862
+ #, fuzzy
22863
+ msgid "node.column.panel.southIndianBracket"
22864
+ msgstr "Corbeau d’Inde du Sud"
22865
+
22866
+ # AI-Provider: claude-code
22867
+ # AI-Model: claude-opus-5-5
22868
+ # Source-Hash: f9a4a870cb3d3c41
22869
+ # Review: required
22870
+ # English: "Spiral"
22871
+ #: packages/nodes/src/column/panel.tsx
22872
+ #, fuzzy
22873
+ msgid "node.column.panel.spiral"
22874
+ msgstr "Spirale"
22875
+
22876
+ # AI-Provider: claude-code
22877
+ # AI-Model: claude-opus-5-5
22878
+ # Source-Hash: 3bc28afe08c59aa1
22879
+ # Review: required
22880
+ # English: "Spiral Ribs"
22881
+ #: packages/nodes/src/column/panel.tsx
22882
+ #, fuzzy
22883
+ msgid "node.column.panel.spiralRibCount"
22884
+ msgstr "Nervures en spirale"
22885
+
22886
+ # AI-Provider: claude-code
22887
+ # AI-Model: claude-opus-5-5
22888
+ # Source-Hash: 5ed49f8a45407932
22889
+ # Review: required
22890
+ # English: "Spiral Turns"
22891
+ #: packages/nodes/src/column/panel.tsx
22892
+ #, fuzzy
22893
+ msgid "node.column.panel.spiralTwist"
22894
+ msgstr "Tours de spirale"
22895
+
22228
22896
  # Source-Hash: 39287346366fc206
22229
22897
  # Review: required
22230
22898
  # AI-Provider: claude-code
@@ -22235,15 +22903,15 @@ msgstr "Élancée"
22235
22903
  msgid "node.column.panel.square"
22236
22904
  msgstr "Carré"
22237
22905
 
22238
- # Source-Hash: 2dc84759d8df709d
22239
- # Review: required
22240
22906
  # AI-Provider: claude-code
22241
22907
  # AI-Model: claude-opus-5-5
22242
- # English: "Square Plinth Bottom"
22908
+ # Source-Hash: 3b857b27d5a49b0c
22909
+ # Review: required
22910
+ # English: "Square Plinth"
22243
22911
  #: packages/nodes/src/column/panel.tsx
22244
22912
  #, fuzzy
22245
- msgid "node.column.panel.squarePlinthBottom"
22246
- msgstr "Base à plinthe carrée"
22913
+ msgid "node.column.panel.squarePlinth"
22914
+ msgstr "Plinthe carrée"
22247
22915
 
22248
22916
  # Source-Hash: d998c212030bc7c2
22249
22917
  # Review: required
@@ -22255,25 +22923,35 @@ msgstr "Base à plinthe carrée"
22255
22923
  msgid "node.column.panel.standard"
22256
22924
  msgstr "Standard"
22257
22925
 
22258
- # Source-Hash: 01a6393135e0fb10
22259
- # Review: required
22260
22926
  # AI-Provider: claude-code
22261
22927
  # AI-Model: claude-opus-5-5
22262
- # English: "Stepped Bottom"
22928
+ # Source-Hash: 2c6b1cf17a973d67
22929
+ # Review: required
22930
+ # English: "Stepped"
22263
22931
  #: packages/nodes/src/column/panel.tsx
22264
22932
  #, fuzzy
22265
- msgid "node.column.panel.steppedBottom"
22266
- msgstr "Base à gradins"
22933
+ msgid "node.column.panel.stepped"
22934
+ msgstr "À gradins"
22267
22935
 
22268
- # Source-Hash: 3d7e443797d4146e
22936
+ # AI-Provider: claude-code
22937
+ # AI-Model: claude-opus-5-5
22938
+ # Source-Hash: cbaa245faee497e0
22269
22939
  # Review: required
22940
+ # English: "Stepped Square"
22941
+ #: packages/nodes/src/column/panel.tsx
22942
+ #, fuzzy
22943
+ msgid "node.column.panel.steppedSquare"
22944
+ msgstr "Carré à gradins"
22945
+
22270
22946
  # AI-Provider: claude-code
22271
22947
  # AI-Model: claude-opus-5-5
22272
- # English: "Stepped Top"
22948
+ # Source-Hash: a795c69630b88d66
22949
+ # Review: required
22950
+ # English: "Step Scale Reduction"
22273
22951
  #: packages/nodes/src/column/panel.tsx
22274
22952
  #, fuzzy
22275
- msgid "node.column.panel.steppedTop"
22276
- msgstr "Chapiteau à gradins"
22953
+ msgid "node.column.panel.stepScaleReduction"
22954
+ msgstr "Réduction d’échelle par gradin"
22277
22955
 
22278
22956
  # Source-Hash: 4ee35f740730ae87
22279
22957
  # Review: required
@@ -22285,15 +22963,25 @@ msgstr "Chapiteau à gradins"
22285
22963
  msgid "node.column.panel.straight"
22286
22964
  msgstr "Droit"
22287
22965
 
22288
- # Source-Hash: 6063ae2877faa35d
22966
+ # AI-Provider: claude-code
22967
+ # AI-Model: claude-opus-5-5
22968
+ # Source-Hash: 1a79a485d91f3f28
22289
22969
  # Review: required
22970
+ # English: "Style"
22971
+ #: packages/nodes/src/column/panel.tsx
22972
+ #, fuzzy
22973
+ msgid "node.column.panel.style"
22974
+ msgstr "Style"
22975
+
22290
22976
  # AI-Provider: claude-code
22291
22977
  # AI-Model: claude-opus-5-5
22292
- # English: "Taper"
22978
+ # Source-Hash: f6794564a5cb6eaa
22979
+ # Review: required
22980
+ # English: "Surface Details"
22293
22981
  #: packages/nodes/src/column/panel.tsx
22294
22982
  #, fuzzy
22295
- msgid "node.column.panel.taper"
22296
- msgstr "Fuselage"
22983
+ msgid "node.column.panel.surfaceDetails"
22984
+ msgstr "Détails de surface"
22297
22985
 
22298
22986
  # Source-Hash: f86f1f22230596b7
22299
22987
  # Review: required
@@ -22305,65 +22993,45 @@ msgstr "Fuselage"
22305
22993
  msgid "node.column.panel.tapered"
22306
22994
  msgstr "Effilé"
22307
22995
 
22308
- # Source-Hash: 3e7ec47626ee3f22
22309
- # Review: required
22310
22996
  # AI-Provider: claude-code
22311
22997
  # AI-Model: claude-opus-5-5
22312
- # English: "Top Depth"
22313
- #: packages/nodes/src/column/panel.tsx
22314
- #, fuzzy
22315
- msgid "node.column.panel.topDepth"
22316
- msgstr "Profondeur du haut"
22317
-
22318
- # Source-Hash: 0ca9047731784f56
22998
+ # Source-Hash: f7b112a6556f22a5
22319
22999
  # Review: required
22320
- # AI-Provider: claude-code
22321
- # AI-Model: claude-opus-5-5
22322
- # English: "Top Height"
23000
+ # English: "Taper Ratio"
22323
23001
  #: packages/nodes/src/column/panel.tsx
22324
23002
  #, fuzzy
22325
- msgid "node.column.panel.topHeight"
22326
- msgstr "Hauteur du haut"
23003
+ msgid "node.column.panel.taperRatio"
23004
+ msgstr "Rapport de fuselage"
22327
23005
 
22328
- # Source-Hash: 3d8a2be83b5b536a
22329
- # Review: required
22330
23006
  # AI-Provider: claude-code
22331
23007
  # AI-Model: claude-opus-5-5
22332
- # English: "Top Spread"
22333
- #: packages/nodes/src/column/panel.tsx
22334
- #, fuzzy
22335
- msgid "node.column.panel.topSpread"
22336
- msgstr "Écartement en haut"
22337
-
22338
- # Source-Hash: f4ae0dc639dbc220
23008
+ # Source-Hash: 21aa2897242f6529
22339
23009
  # Review: required
22340
- # AI-Provider: claude-code
22341
- # AI-Model: claude-opus-5-5
22342
- # English: "Top Step Spread"
23010
+ # English: "Tier Count"
22343
23011
  #: packages/nodes/src/column/panel.tsx
22344
23012
  #, fuzzy
22345
- msgid "node.column.panel.topStepSpread"
22346
- msgstr "Écart des gradins du haut"
23013
+ msgid "node.column.panel.tierCount"
23014
+ msgstr "Nombre de niveaux"
22347
23015
 
22348
- # Source-Hash: 8acc4e843934b086
22349
- # Review: required
22350
23016
  # AI-Provider: claude-code
22351
23017
  # AI-Model: claude-opus-5-5
22352
- # English: "Top Tiers"
23018
+ # Source-Hash: 75991d106eb93dae
23019
+ # Review: required
23020
+ # English: "Top Scale"
22353
23021
  #: packages/nodes/src/column/panel.tsx
22354
23022
  #, fuzzy
22355
- msgid "node.column.panel.topTiers"
22356
- msgstr "Gradins du haut"
23023
+ msgid "node.column.panel.topScale"
23024
+ msgstr "Échelle supérieure"
22357
23025
 
22358
- # Source-Hash: a50eb6400611a57c
23026
+ # Source-Hash: 3d8a2be83b5b536a
22359
23027
  # Review: required
22360
23028
  # AI-Provider: claude-code
22361
23029
  # AI-Model: claude-opus-5-5
22362
- # English: "Top Width"
23030
+ # English: "Top Spread"
22363
23031
  #: packages/nodes/src/column/panel.tsx
22364
23032
  #, fuzzy
22365
- msgid "node.column.panel.topWidth"
22366
- msgstr "Largeur du haut"
23033
+ msgid "node.column.panel.topSpread"
23034
+ msgstr "Écartement en haut"
22367
23035
 
22368
23036
  # Source-Hash: f425799b82e085ed
22369
23037
  # Review: required
@@ -22375,25 +23043,15 @@ msgstr "Largeur du haut"
22375
23043
  msgid "node.column.panel.transform"
22376
23044
  msgstr "Transformation"
22377
23045
 
22378
- # Source-Hash: 952fd1ef187c6646
22379
- # Review: required
22380
23046
  # AI-Provider: claude-code
22381
23047
  # AI-Model: claude-opus-5-5
22382
- # English: "Trestle"
22383
- #: packages/nodes/src/column/panel.tsx
22384
- #, fuzzy
22385
- msgid "node.column.panel.trestle"
22386
- msgstr "Tréteau"
22387
-
22388
- # Source-Hash: 7430dad59aaf98f4
23048
+ # Source-Hash: b99175b7ac8aa206
22389
23049
  # Review: required
22390
- # AI-Provider: claude-code
22391
- # AI-Model: claude-opus-5-5
22392
- # English: "Tripod"
23050
+ # English: "Twist per Segment"
22393
23051
  #: packages/nodes/src/column/panel.tsx
22394
23052
  #, fuzzy
22395
- msgid "node.column.panel.tripod"
22396
- msgstr "Trépied"
23053
+ msgid "node.column.panel.twistPerSegment"
23054
+ msgstr "Torsion par segment"
22397
23055
 
22398
23056
  # Source-Hash: 0db559f22647ec73
22399
23057
  # Review: required
@@ -22405,35 +23063,45 @@ msgstr "Trépied"
22405
23063
  msgid "node.column.panel.twistSegments"
22406
23064
  msgstr "Segments de torsion"
22407
23065
 
22408
- # Source-Hash: 8038a34ffebf4932
22409
- # Review: required
22410
23066
  # AI-Provider: claude-code
22411
23067
  # AI-Model: claude-opus-5-5
22412
- # English: "Vertical"
23068
+ # Source-Hash: 4d8bfac0809e9f7c
23069
+ # Review: required
23070
+ # English: "Volute"
22413
23071
  #: packages/nodes/src/column/panel.tsx
22414
23072
  #, fuzzy
22415
- msgid "node.column.panel.vertical"
22416
- msgstr "Vertical"
23073
+ msgid "node.column.panel.volute"
23074
+ msgstr "Volute"
22417
23075
 
22418
- # Source-Hash: f24cc343d79acc10
22419
- # Review: required
22420
23076
  # AI-Provider: claude-code
22421
23077
  # AI-Model: claude-opus-5-5
22422
- # English: "V Support"
23078
+ # Source-Hash: 7c352c005719e3a2
23079
+ # Review: required
23080
+ # English: "Volutes"
22423
23081
  #: packages/nodes/src/column/panel.tsx
22424
23082
  #, fuzzy
22425
- msgid "node.column.panel.vSupport"
22426
- msgstr "Support en V"
23083
+ msgid "node.column.panel.voluteCount"
23084
+ msgstr "Volutes"
22427
23085
 
22428
- # Source-Hash: 44dda7136b93c8ee
23086
+ # AI-Provider: claude-code
23087
+ # AI-Model: claude-opus-5-5
23088
+ # Source-Hash: 536aa9f690cfb81d
22429
23089
  # Review: required
23090
+ # English: "Volute Size"
23091
+ #: packages/nodes/src/column/panel.tsx
23092
+ #, fuzzy
23093
+ msgid "node.column.panel.voluteSize"
23094
+ msgstr "Taille des volutes"
23095
+
22430
23096
  # AI-Provider: claude-code
22431
23097
  # AI-Model: claude-opus-5-5
22432
- # English: "Waist"
23098
+ # Source-Hash: fdce60f01800860f
23099
+ # Review: required
23100
+ # English: "Waist Reduction Ratio"
22433
23101
  #: packages/nodes/src/column/panel.tsx
22434
23102
  #, fuzzy
22435
- msgid "node.column.panel.waist"
22436
- msgstr "Paillasse"
23103
+ msgid "node.column.panel.waistReductionRatio"
23104
+ msgstr "Rapport de rétrécissement"
22437
23105
 
22438
23106
  # Source-Hash: 3a0ccd6c46877a87
22439
23107
  # Review: required
@@ -22445,35 +23113,55 @@ msgstr "Paillasse"
22445
23113
  msgid "node.column.panel.width"
22446
23114
  msgstr "Largeur"
22447
23115
 
22448
- # Source-Hash: 4e6640dfff42cea4
22449
- # Review: required
22450
23116
  # AI-Provider: claude-code
22451
23117
  # AI-Model: claude-opus-5-5
22452
- # English: "X Brace"
23118
+ # Source-Hash: 4f4e9f2d97ef01f5
23119
+ # Review: required
23120
+ # English: "Width and depth scales multiply the dimensions in Size."
22453
23121
  #: packages/nodes/src/column/panel.tsx
22454
23122
  #, fuzzy
22455
- msgid "node.column.panel.xBrace"
22456
- msgstr "Croisillon en X"
23123
+ msgid "node.column.panel.widthAndDepthScalesMultiplyThe"
23124
+ msgstr "Les échelles de largeur et de profondeur multiplient les dimensions de Taille."
22457
23125
 
22458
- # Source-Hash: fefc9b1cfb26b5a8
23126
+ # AI-Provider: claude-code
23127
+ # AI-Model: claude-opus-5-5
23128
+ # Source-Hash: eb0267f511beda4a
22459
23129
  # Review: required
23130
+ # English: "Width and depth scales use Size. Band and neck scales use the base footprint."
23131
+ #: packages/nodes/src/column/panel.tsx
23132
+ #, fuzzy
23133
+ msgid "node.column.panel.widthAndDepthScalesUseSize"
23134
+ msgstr "Les échelles de largeur et de profondeur utilisent Taille. Les échelles du bandeau et du gorgerin utilisent l’emprise de la base."
23135
+
22460
23136
  # AI-Provider: claude-code
22461
23137
  # AI-Model: claude-opus-5-5
22462
- # English: "Yaw"
23138
+ # Source-Hash: cdb1d1dacff8560e
23139
+ # Review: required
23140
+ # English: "Width Scale"
22463
23141
  #: packages/nodes/src/column/panel.tsx
22464
23142
  #, fuzzy
22465
- msgid "node.column.panel.yaw"
22466
- msgstr "Lacet"
23143
+ msgid "node.column.panel.widthScale"
23144
+ msgstr "Échelle de largeur"
22467
23145
 
22468
- # Source-Hash: 86259690e332b66d
23146
+ # AI-Provider: claude-code
23147
+ # AI-Model: claude-opus-5-5
23148
+ # Source-Hash: d5bc7038c31682a9
22469
23149
  # Review: required
23150
+ # English: "Width Span"
23151
+ #: packages/nodes/src/column/panel.tsx
23152
+ #, fuzzy
23153
+ msgid "node.column.panel.widthSpan"
23154
+ msgstr "Portée en largeur"
23155
+
22470
23156
  # AI-Provider: claude-code
22471
23157
  # AI-Model: claude-opus-5-5
22472
- # English: "Y Support"
23158
+ # Source-Hash: bc0503ea7ab743ed
23159
+ # Review: required
23160
+ # English: "Wood Bracket"
22473
23161
  #: packages/nodes/src/column/panel.tsx
22474
23162
  #, fuzzy
22475
- msgid "node.column.panel.ySupport"
22476
- msgstr "Support en Y"
23163
+ msgid "node.column.panel.woodBracket"
23164
+ msgstr "Corbeau en bois"
22477
23165
 
22478
23166
  # Source-Hash: 4d3a89de7073d38d
22479
23167
  # Review: required
@@ -22580,7 +23268,7 @@ msgstr "Non traité"
22580
23268
  # AI-Provider: claude-code
22581
23269
  # AI-Model: claude-opus-5-5
22582
23270
  # English: "A-Frame Support"
22583
- #: packages/nodes/src/column/panel.tsx
23271
+ #: packages/nodes/src/column/preset-gallery.tsx
22584
23272
  #, fuzzy
22585
23273
  msgid "node.column.preset.aFrameSupport"
22586
23274
  msgstr "Support en A"
@@ -22590,7 +23278,7 @@ msgstr "Support en A"
22590
23278
  # AI-Provider: claude-code
22591
23279
  # AI-Model: claude-opus-5-5
22592
23280
  # English: "Straight Round"
22593
- #: packages/nodes/src/column/panel.tsx
23281
+ #: packages/nodes/src/column/preset-gallery.tsx
22594
23282
  #, fuzzy
22595
23283
  msgid "node.column.preset.basicPillar"
22596
23284
  msgstr "Ronde droite"
@@ -22600,7 +23288,7 @@ msgstr "Ronde droite"
22600
23288
  # AI-Provider: claude-code
22601
23289
  # AI-Model: claude-opus-5-5
22602
23290
  # English: "Box Frame"
22603
- #: packages/nodes/src/column/panel.tsx
23291
+ #: packages/nodes/src/column/preset-gallery.tsx
22604
23292
  #, fuzzy
22605
23293
  msgid "node.column.preset.boxFrameSupport"
22606
23294
  msgstr "Cadre caisson"
@@ -22610,7 +23298,7 @@ msgstr "Cadre caisson"
22610
23298
  # AI-Provider: claude-code
22611
23299
  # AI-Model: claude-opus-5-5
22612
23300
  # English: "Soft Bulged"
22613
- #: packages/nodes/src/column/panel.tsx
23301
+ #: packages/nodes/src/column/preset-gallery.tsx
22614
23302
  #, fuzzy
22615
23303
  msgid "node.column.preset.bulgedPillar"
22616
23304
  msgstr "Légèrement renflée"
@@ -22620,7 +23308,7 @@ msgstr "Légèrement renflée"
22620
23308
  # AI-Provider: claude-code
22621
23309
  # AI-Model: claude-opus-5-5
22622
23310
  # English: "Hourglass"
22623
- #: packages/nodes/src/column/panel.tsx
23311
+ #: packages/nodes/src/column/preset-gallery.tsx
22624
23312
  #, fuzzy
22625
23313
  msgid "node.column.preset.hourglassPillar"
22626
23314
  msgstr "Sablier"
@@ -22630,7 +23318,7 @@ msgstr "Sablier"
22630
23318
  # AI-Provider: claude-code
22631
23319
  # AI-Model: claude-opus-5-5
22632
23320
  # English: "K Brace"
22633
- #: packages/nodes/src/column/panel.tsx
23321
+ #: packages/nodes/src/column/preset-gallery.tsx
22634
23322
  #, fuzzy
22635
23323
  msgid "node.column.preset.kBraceSupport"
22636
23324
  msgstr "Contreventement en K"
@@ -22640,7 +23328,7 @@ msgstr "Contreventement en K"
22640
23328
  # AI-Provider: claude-code
22641
23329
  # AI-Model: claude-opus-5-5
22642
23330
  # English: "Portal Frame"
22643
- #: packages/nodes/src/column/panel.tsx
23331
+ #: packages/nodes/src/column/preset-gallery.tsx
22644
23332
  #, fuzzy
22645
23333
  msgid "node.column.preset.portalFrameSupport"
22646
23334
  msgstr "Portique"
@@ -22650,7 +23338,7 @@ msgstr "Portique"
22650
23338
  # AI-Provider: claude-code
22651
23339
  # AI-Model: claude-opus-5-5
22652
23340
  # English: "Single Strut"
22653
- #: packages/nodes/src/column/panel.tsx
23341
+ #: packages/nodes/src/column/preset-gallery.tsx
22654
23342
  #, fuzzy
22655
23343
  msgid "node.column.preset.singleStrutSupport"
22656
23344
  msgstr "Jambe de force unique"
@@ -22660,7 +23348,7 @@ msgstr "Jambe de force unique"
22660
23348
  # AI-Provider: claude-code
22661
23349
  # AI-Model: claude-opus-5-5
22662
23350
  # English: "Square Block"
22663
- #: packages/nodes/src/column/panel.tsx
23351
+ #: packages/nodes/src/column/preset-gallery.tsx
22664
23352
  #, fuzzy
22665
23353
  msgid "node.column.preset.squarePillar"
22666
23354
  msgstr "Bloc carré"
@@ -22670,7 +23358,7 @@ msgstr "Bloc carré"
22670
23358
  # AI-Provider: claude-code
22671
23359
  # AI-Model: claude-opus-5-5
22672
23360
  # English: "Tapered Round"
22673
- #: packages/nodes/src/column/panel.tsx
23361
+ #: packages/nodes/src/column/preset-gallery.tsx
22674
23362
  #, fuzzy
22675
23363
  msgid "node.column.preset.taperedPillar"
22676
23364
  msgstr "Ronde fuselée"
@@ -22680,7 +23368,7 @@ msgstr "Ronde fuselée"
22680
23368
  # AI-Provider: claude-code
22681
23369
  # AI-Model: claude-opus-5-5
22682
23370
  # English: "Trestle Frame"
22683
- #: packages/nodes/src/column/panel.tsx
23371
+ #: packages/nodes/src/column/preset-gallery.tsx
22684
23372
  #, fuzzy
22685
23373
  msgid "node.column.preset.trestleSupport"
22686
23374
  msgstr "Cadre à tréteau"
@@ -22690,7 +23378,7 @@ msgstr "Cadre à tréteau"
22690
23378
  # AI-Provider: claude-code
22691
23379
  # AI-Model: claude-opus-5-5
22692
23380
  # English: "Tripod Support"
22693
- #: packages/nodes/src/column/panel.tsx
23381
+ #: packages/nodes/src/column/preset-gallery.tsx
22694
23382
  #, fuzzy
22695
23383
  msgid "node.column.preset.tripodSupport"
22696
23384
  msgstr "Support trépied"
@@ -22700,7 +23388,7 @@ msgstr "Support trépied"
22700
23388
  # AI-Provider: claude-code
22701
23389
  # AI-Model: claude-opus-5-5
22702
23390
  # English: "V Support"
22703
- #: packages/nodes/src/column/panel.tsx
23391
+ #: packages/nodes/src/column/preset-gallery.tsx
22704
23392
  #, fuzzy
22705
23393
  msgid "node.column.preset.vFrameSupport"
22706
23394
  msgstr "Support en V"
@@ -22710,7 +23398,7 @@ msgstr "Support en V"
22710
23398
  # AI-Provider: claude-code
22711
23399
  # AI-Model: claude-opus-5-5
22712
23400
  # English: "X Brace"
22713
- #: packages/nodes/src/column/panel.tsx
23401
+ #: packages/nodes/src/column/preset-gallery.tsx
22714
23402
  #, fuzzy
22715
23403
  msgid "node.column.preset.xBraceSupport"
22716
23404
  msgstr "Croisillon en X"
@@ -22720,11 +23408,51 @@ msgstr "Croisillon en X"
22720
23408
  # AI-Provider: claude-code
22721
23409
  # AI-Model: claude-opus-5-5
22722
23410
  # English: "Y Support"
22723
- #: packages/nodes/src/column/panel.tsx
23411
+ #: packages/nodes/src/column/preset-gallery.tsx
22724
23412
  #, fuzzy
22725
23413
  msgid "node.column.preset.yFrameSupport"
22726
23414
  msgstr "Support en Y"
22727
23415
 
23416
+ # AI-Provider: claude-code
23417
+ # AI-Model: claude-opus-5-5
23418
+ # Source-Hash: c9bf954389349540
23419
+ # Review: required
23420
+ # English: "Apply {label} shape"
23421
+ #: packages/nodes/src/column/preset-gallery.tsx
23422
+ #, fuzzy
23423
+ msgid "node.column.presetGallery.applyLabelShape"
23424
+ msgstr "Appliquer la forme {label}"
23425
+
23426
+ # AI-Provider: claude-code
23427
+ # AI-Model: claude-opus-5-5
23428
+ # Source-Hash: d98edff9428038de
23429
+ # Review: required
23430
+ # English: "Choose a shape"
23431
+ #: packages/nodes/src/column/preset-gallery.tsx
23432
+ #, fuzzy
23433
+ msgid "node.column.presetGallery.chooseAShape"
23434
+ msgstr "Choisir une forme"
23435
+
23436
+ # AI-Provider: claude-code
23437
+ # AI-Model: claude-opus-5-5
23438
+ # Source-Hash: 13bd6d71e7e6e345
23439
+ # Review: required
23440
+ # English: "Hover or focus to preview; click to apply. Materials are kept. Escape cancels the preview."
23441
+ #: packages/nodes/src/column/preset-gallery.tsx
23442
+ #, fuzzy
23443
+ msgid "node.column.presetGallery.hoverOrFocusToPreviewClick"
23444
+ msgstr "Survolez ou sélectionnez pour prévisualiser ; cliquez pour appliquer. Les matériaux sont conservés. Échap annule l’aperçu."
23445
+
23446
+ # AI-Provider: claude-code
23447
+ # AI-Model: claude-opus-5-5
23448
+ # Source-Hash: 367dcd06db200682
23449
+ # Review: required
23450
+ # English: "Shape presets"
23451
+ #: packages/nodes/src/column/preset-gallery.tsx
23452
+ #, fuzzy
23453
+ msgid "node.column.presetGallery.shapePresets"
23454
+ msgstr "Préréglages de forme"
23455
+
22728
23456
  # Source-Hash: 895766ad1b766c2e
22729
23457
  # Review: required
22730
23458
  # AI-Provider: claude-code
@@ -24589,6 +25317,336 @@ msgstr "R/T pivoter"
24589
25317
  msgid "node.ductSegment.description"
24590
25318
  msgstr "Réseau de gaines CVC — polyligne de sections rondes, rectangulaires ou oblongues."
24591
25319
 
25320
+ # Source-Hash: c63202c40d7fbac5
25321
+ # Review: required
25322
+ # AI-Provider: cursor-agent
25323
+ # AI-Model: claude-opus-5-5
25324
+ # English: "Apply offset"
25325
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25326
+ #, fuzzy
25327
+ msgid "node.ductSegment.editInspector.applyOffset"
25328
+ msgstr "Appliquer le décalage"
25329
+
25330
+ # Source-Hash: 79cd694c04938730
25331
+ # Review: required
25332
+ # AI-Provider: cursor-agent
25333
+ # AI-Model: claude-opus-5-5
25334
+ # English: "Apply resize"
25335
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25336
+ #, fuzzy
25337
+ msgid "node.ductSegment.editInspector.applyResize"
25338
+ msgstr "Appliquer le redimensionnement"
25339
+
25340
+ # Source-Hash: f97058f9f79a49f7
25341
+ # Review: required
25342
+ # AI-Provider: cursor-agent
25343
+ # AI-Model: claude-opus-5-5
25344
+ # English: "Branch stops at junctions, size changes and equipment. Boundary collars stay fixed."
25345
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25346
+ #, fuzzy
25347
+ msgid "node.ductSegment.editInspector.branchStopsAtJunctionsSizeChanges"
25348
+ msgstr "La branche s’arrête aux jonctions, aux changements de section et aux équipements. Les colliers en limite restent fixes."
25349
+
25350
+ # Source-Hash: e5f62ba5c4a2e770
25351
+ # Review: required
25352
+ # AI-Provider: cursor-agent
25353
+ # AI-Model: claude-opus-5-5
25354
+ # English: "Connected same-size branch"
25355
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25356
+ #, fuzzy
25357
+ msgid "node.ductSegment.editInspector.connectedSameSizeBranch"
25358
+ msgstr "Branche raccordée de même section"
25359
+
25360
+ # Source-Hash: e704515c0fe2a6ca
25361
+ # Review: required
25362
+ # AI-Provider: cursor-agent
25363
+ # AI-Model: claude-opus-5-5
25364
+ # English: "Diameter (in)"
25365
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25366
+ #, fuzzy
25367
+ msgid "node.ductSegment.editInspector.diameter"
25368
+ msgstr "Diamètre (in)"
25369
+
25370
+ # Source-Hash: 3fba7da8f5ce8470
25371
+ # Review: required
25372
+ # AI-Provider: cursor-agent
25373
+ # AI-Model: claude-opus-5-5
25374
+ # English: "Duct edit"
25375
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25376
+ #, fuzzy
25377
+ msgid "node.ductSegment.editInspector.ductEdit"
25378
+ msgstr "Modification de gaine"
25379
+
25380
+ # Source-Hash: 4c189ffbaf391531
25381
+ # Review: required
25382
+ # AI-Provider: cursor-agent
25383
+ # AI-Model: claude-opus-5-5
25384
+ # English: "Duct shape"
25385
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25386
+ #, fuzzy
25387
+ msgid "node.ductSegment.editInspector.ductShape"
25388
+ msgstr "Forme de la gaine"
25389
+
25390
+ # Source-Hash: 4196e9dba5038422
25391
+ # Review: required
25392
+ # AI-Provider: cursor-agent
25393
+ # AI-Model: claude-opus-5-5
25394
+ # English: "Edit duct route"
25395
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25396
+ #, fuzzy
25397
+ msgid "node.ductSegment.editInspector.editDuctRoute"
25398
+ msgstr "Modifier le tracé de la gaine"
25399
+
25400
+ # Source-Hash: e6ad8e30edf8b8dc
25401
+ # Review: required
25402
+ # AI-Provider: cursor-agent
25403
+ # AI-Model: claude-opus-5-5
25404
+ # English: "Face alignment applies to free straight runs. Left and right follow the run’s section axes."
25405
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25406
+ #, fuzzy
25407
+ msgid "node.ductSegment.editInspector.faceAlignmentAppliesToFreeStraight"
25408
+ msgstr "L’alignement sur une face s’applique aux tronçons droits libres. Gauche et droite suivent les axes de section du tronçon."
25409
+
25410
+ # Source-Hash: 98b9dbf56de61e41
25411
+ # Review: required
25412
+ # AI-Provider: cursor-agent
25413
+ # AI-Model: claude-opus-5-5
25414
+ # English: "First bend from start (m)"
25415
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25416
+ #, fuzzy
25417
+ msgid "node.ductSegment.editInspector.firstBend"
25418
+ msgstr "Premier coude depuis le début (m)"
25419
+
25420
+ # Source-Hash: 46dd5dd1bd2712fd
25421
+ # Review: required
25422
+ # AI-Provider: cursor-agent
25423
+ # AI-Model: claude-opus-5-5
25424
+ # English: "Height (in)"
25425
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25426
+ #, fuzzy
25427
+ msgid "node.ductSegment.editInspector.height"
25428
+ msgstr "Hauteur (in)"
25429
+
25430
+ # Source-Hash: 13b1dec096cefeda
25431
+ # Review: required
25432
+ # AI-Provider: cursor-agent
25433
+ # AI-Model: claude-opus-5-5
25434
+ # English: "Keep bottom face"
25435
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25436
+ #, fuzzy
25437
+ msgid "node.ductSegment.editInspector.keepBottomFace"
25438
+ msgstr "Conserver la face inférieure"
25439
+
25440
+ # Source-Hash: 4d1bae9a034eef7b
25441
+ # Review: required
25442
+ # AI-Provider: cursor-agent
25443
+ # AI-Model: claude-opus-5-5
25444
+ # English: "Keep centerline"
25445
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25446
+ #, fuzzy
25447
+ msgid "node.ductSegment.editInspector.keepCenterline"
25448
+ msgstr "Conserver l’axe"
25449
+
25450
+ # Source-Hash: 66a2843e7ee53206
25451
+ # Review: required
25452
+ # AI-Provider: cursor-agent
25453
+ # AI-Model: claude-opus-5-5
25454
+ # English: "Keep left face"
25455
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25456
+ #, fuzzy
25457
+ msgid "node.ductSegment.editInspector.keepLeftFace"
25458
+ msgstr "Conserver la face gauche"
25459
+
25460
+ # Source-Hash: 422d33d91000c6d5
25461
+ # Review: required
25462
+ # AI-Provider: cursor-agent
25463
+ # AI-Model: claude-opus-5-5
25464
+ # English: "Keep right face"
25465
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25466
+ #, fuzzy
25467
+ msgid "node.ductSegment.editInspector.keepRightFace"
25468
+ msgstr "Conserver la face droite"
25469
+
25470
+ # Source-Hash: d68b946185860736
25471
+ # Review: required
25472
+ # AI-Provider: cursor-agent
25473
+ # AI-Model: claude-opus-5-5
25474
+ # English: "Keep top face"
25475
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25476
+ #, fuzzy
25477
+ msgid "node.ductSegment.editInspector.keepTopFace"
25478
+ msgstr "Conserver la face supérieure"
25479
+
25480
+ # Source-Hash: 5faa81fe58b2e707
25481
+ # Review: required
25482
+ # AI-Provider: cursor-agent
25483
+ # AI-Model: claude-opus-5-5
25484
+ # English: "Last bend from start (m)"
25485
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25486
+ #, fuzzy
25487
+ msgid "node.ductSegment.editInspector.lastBend"
25488
+ msgstr "Dernier coude depuis le début (m)"
25489
+
25490
+ # Source-Hash: aac8ab5c8fe8dc80
25491
+ # Review: required
25492
+ # AI-Provider: cursor-agent
25493
+ # AI-Model: claude-opus-5-5
25494
+ # English: "Offset around obstacle"
25495
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25496
+ #, fuzzy
25497
+ msgid "node.ductSegment.editInspector.offsetAroundObstacle"
25498
+ msgstr "Contourner un obstacle"
25499
+
25500
+ # Source-Hash: 57fd5f8ee7415f5c
25501
+ # Review: required
25502
+ # AI-Provider: cursor-agent
25503
+ # AI-Model: claude-opus-5-5
25504
+ # English: "Offset side elevation preview"
25505
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25506
+ #, fuzzy
25507
+ msgid "node.ductSegment.editInspector.offsetSideElevationPreview"
25508
+ msgstr "Aperçu du décalage en élévation latérale"
25509
+
25510
+ # Source-Hash: ed6d7b3dd9d5fc69
25511
+ # Review: required
25512
+ # AI-Provider: cursor-agent
25513
+ # AI-Model: claude-opus-5-5
25514
+ # English: "Oval"
25515
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25516
+ #, fuzzy
25517
+ msgid "node.ductSegment.editInspector.oval"
25518
+ msgstr "Ovale"
25519
+
25520
+ # Source-Hash: 4196843b0dd8f46c
25521
+ # Review: required
25522
+ # AI-Provider: cursor-agent
25523
+ # AI-Model: claude-opus-5-5
25524
+ # English: "{affected, plural, one {# existing part affected} other {# existing parts affected}} · {created, plural, one {# new part} other {# new parts}}"
25525
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25526
+ #, fuzzy
25527
+ msgid "node.ductSegment.editInspector.partsSummary"
25528
+ msgstr "{affected, plural, one {# élément existant concerné} many {# éléments existants concernés} other {# éléments existants concernés}} · {created, plural, one {# nouvel élément} many {# nouveaux éléments} other {# nouveaux éléments}}"
25529
+
25530
+ # Source-Hash: d548731cb7cf5d27
25531
+ # Review: required
25532
+ # AI-Provider: cursor-agent
25533
+ # AI-Model: claude-opus-5-5
25534
+ # English: "Positive moves up; negative moves down. Four elbows preserve both endpoints. Check the obstacle’s clearance; this does not detect collisions."
25535
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25536
+ #, fuzzy
25537
+ msgid "node.ductSegment.editInspector.positiveMovesUpNegativeMovesDown"
25538
+ msgstr "Une valeur positive monte ; une valeur négative descend. Quatre coudes conservent les deux extrémités. Vérifiez le dégagement autour de l’obstacle ; les collisions ne sont pas détectées."
25539
+
25540
+ # Source-Hash: 3a046d5727f10a80
25541
+ # Review: required
25542
+ # AI-Provider: cursor-agent
25543
+ # AI-Model: claude-opus-5-5
25544
+ # English: "Preserve duct alignment"
25545
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25546
+ #, fuzzy
25547
+ msgid "node.ductSegment.editInspector.preserveDuctAlignment"
25548
+ msgstr "Alignement de gaine à conserver"
25549
+
25550
+ # Source-Hash: f29fef1beeb25f22
25551
+ # Review: required
25552
+ # AI-Provider: cursor-agent
25553
+ # AI-Model: claude-opus-5-5
25554
+ # English: "Rectangular"
25555
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25556
+ #, fuzzy
25557
+ msgid "node.ductSegment.editInspector.rectangular"
25558
+ msgstr "Rectangulaire"
25559
+
25560
+ # Source-Hash: e8be4487b05f939d
25561
+ # Review: required
25562
+ # AI-Provider: cursor-agent
25563
+ # AI-Model: claude-opus-5-5
25564
+ # English: "Resize scope"
25565
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25566
+ #, fuzzy
25567
+ msgid "node.ductSegment.editInspector.resizeScope"
25568
+ msgstr "Portée du redimensionnement"
25569
+
25570
+ # Source-Hash: c4b16733095ad12f
25571
+ # Review: required
25572
+ # AI-Provider: cursor-agent
25573
+ # AI-Model: claude-opus-5-5
25574
+ # English: "Resize with connections"
25575
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25576
+ #, fuzzy
25577
+ msgid "node.ductSegment.editInspector.resizeWithConnections"
25578
+ msgstr "Redimensionner avec les raccordements"
25579
+
25580
+ # Source-Hash: ad0457800a1f0eb4
25581
+ # Review: required
25582
+ # AI-Provider: cursor-agent
25583
+ # AI-Model: claude-opus-5-5
25584
+ # English: "Round"
25585
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25586
+ #, fuzzy
25587
+ msgid "node.ductSegment.editInspector.round"
25588
+ msgstr "Rond"
25589
+
25590
+ # Source-Hash: bf79b8c8e7a3ba17
25591
+ # Review: required
25592
+ # AI-Provider: cursor-agent
25593
+ # AI-Model: claude-opus-5-5
25594
+ # English: "Side elevation · dashed line is the original route"
25595
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25596
+ #, fuzzy
25597
+ msgid "node.ductSegment.editInspector.sideElevationDashedLineIsThe"
25598
+ msgstr "Élévation latérale · la ligne pointillée montre le tracé d’origine"
25599
+
25600
+ # Source-Hash: d271518d800f3e1c
25601
+ # Review: required
25602
+ # AI-Provider: cursor-agent
25603
+ # AI-Model: claude-opus-5-5
25604
+ # English: "This segment"
25605
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25606
+ #, fuzzy
25607
+ msgid "node.ductSegment.editInspector.thisSegment"
25608
+ msgstr "Ce tronçon"
25609
+
25610
+ # Source-Hash: 1bbbb491639e18e1
25611
+ # Review: required
25612
+ # AI-Provider: cursor-agent
25613
+ # AI-Model: claude-opus-5-5
25614
+ # English: "Unable to apply edit."
25615
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25616
+ #, fuzzy
25617
+ msgid "node.ductSegment.editInspector.unableToApplyEdit"
25618
+ msgstr "Impossible d’appliquer la modification."
25619
+
25620
+ # Source-Hash: 0283a6615312b133
25621
+ # Review: required
25622
+ # AI-Provider: cursor-agent
25623
+ # AI-Model: claude-opus-5-5
25624
+ # English: "Unable to plan this edit."
25625
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25626
+ #, fuzzy
25627
+ msgid "node.ductSegment.editInspector.unableToPlanEdit"
25628
+ msgstr "Impossible de préparer cette modification."
25629
+
25630
+ # Source-Hash: 2dad926bc0e26f4a
25631
+ # Review: required
25632
+ # AI-Provider: cursor-agent
25633
+ # AI-Model: claude-opus-5-5
25634
+ # English: "Vertical offset (m)"
25635
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25636
+ #, fuzzy
25637
+ msgid "node.ductSegment.editInspector.verticalOffset"
25638
+ msgstr "Décalage vertical (m)"
25639
+
25640
+ # Source-Hash: 087cae2b0e372680
25641
+ # Review: required
25642
+ # AI-Provider: cursor-agent
25643
+ # AI-Model: claude-opus-5-5
25644
+ # English: "Width (in)"
25645
+ #: packages/nodes/src/duct-segment/edit-inspector.tsx
25646
+ #, fuzzy
25647
+ msgid "node.ductSegment.editInspector.width"
25648
+ msgstr "Largeur (in)"
25649
+
24592
25650
  # Source-Hash: e971d82044e2f48e
24593
25651
  # Review: required
24594
25652
  # AI-Provider: claude-code
@@ -24720,6 +25778,16 @@ msgstr "Cabine"
24720
25778
  msgid "node.elevator.panel.cabHeight"
24721
25779
  msgstr "Hauteur de cabine"
24722
25780
 
25781
+ # AI-Provider: claude-code
25782
+ # AI-Model: claude-opus-5-5
25783
+ # Source-Hash: 4068260bb7e3d54b
25784
+ # Review: required
25785
+ # English: "Clear cab interior: {width} × {depth} × {height} m. Door opening: {doorWidth} × {doorHeight} m."
25786
+ #: packages/nodes/src/elevator/panel.tsx
25787
+ #, fuzzy
25788
+ msgid "node.elevator.panel.cabInteriorAndDoorOpening"
25789
+ msgstr "Intérieur libre de la cabine : {width} × {depth} × {height} m. Ouverture de porte : {doorWidth} × {doorHeight} m."
25790
+
24723
25791
  # Source-Hash: 65f410261609060b
24724
25792
  # Review: required
24725
25793
  # AI-Provider: claude-code
@@ -24730,6 +25798,16 @@ msgstr "Hauteur de cabine"
24730
25798
  msgid "node.elevator.panel.centerOpening"
24731
25799
  msgstr "Ouverture centrale"
24732
25800
 
25801
+ # AI-Provider: claude-code
25802
+ # AI-Model: claude-opus-5-5
25803
+ # Source-Hash: 1ad164e4dd09e856
25804
+ # Review: required
25805
+ # English: "Cutaway shaft"
25806
+ #: packages/nodes/src/elevator/panel.tsx
25807
+ #, fuzzy
25808
+ msgid "node.elevator.panel.cutawayShaft"
25809
+ msgstr "Gaine en écorché"
25810
+
24733
25811
  # Source-Hash: c5433f4d3ea8a8a7
24734
25812
  # Review: required
24735
25813
  # AI-Provider: claude-code
@@ -24740,6 +25818,16 @@ msgstr "Ouverture centrale"
24740
25818
  msgid "node.elevator.panel.defaultFloor"
24741
25819
  msgstr "Niveau par défaut"
24742
25820
 
25821
+ # AI-Provider: claude-code
25822
+ # AI-Model: claude-opus-5-5
25823
+ # Source-Hash: 948544e79db10407
25824
+ # Review: required
25825
+ # English: "Default floor"
25826
+ #: packages/nodes/src/elevator/panel.tsx
25827
+ #, fuzzy
25828
+ msgid "node.elevator.panel.defaultFloor2"
25829
+ msgstr "Niveau par défaut"
25830
+
24743
25831
  # Source-Hash: b26de372b4b0eaac
24744
25832
  # Review: required
24745
25833
  # AI-Provider: claude-code
@@ -24780,6 +25868,16 @@ msgstr "Destination"
24780
25868
  msgid "node.elevator.panel.disabled"
24781
25869
  msgstr "Désactivé"
24782
25870
 
25871
+ # AI-Provider: claude-code
25872
+ # AI-Model: claude-opus-5-5
25873
+ # Source-Hash: 42d26aa25a7b3dc5
25874
+ # Review: required
25875
+ # English: "Disable {level}"
25876
+ #: packages/nodes/src/elevator/panel.tsx
25877
+ #, fuzzy
25878
+ msgid "node.elevator.panel.disableLevel"
25879
+ msgstr "Désactiver {level}"
25880
+
24783
25881
  # Source-Hash: d8baf402fa9c52f0
24784
25882
  # Review: required
24785
25883
  # AI-Provider: claude-code
@@ -24790,6 +25888,26 @@ msgstr "Désactivé"
24790
25888
  msgid "node.elevator.panel.doorHeight"
24791
25889
  msgstr "Hauteur de porte"
24792
25890
 
25891
+ # AI-Provider: claude-code
25892
+ # AI-Model: claude-opus-5-5
25893
+ # Source-Hash: c694cae2f5a8d286
25894
+ # Review: required
25895
+ # English: "Door opening style"
25896
+ #: packages/nodes/src/elevator/panel.tsx
25897
+ #, fuzzy
25898
+ msgid "node.elevator.panel.doorOpeningStyle"
25899
+ msgstr "Type d’ouverture de porte"
25900
+
25901
+ # AI-Provider: claude-code
25902
+ # AI-Model: claude-opus-5-5
25903
+ # Source-Hash: 990ae81752236e3a
25904
+ # Review: required
25905
+ # English: "Door panel style"
25906
+ #: packages/nodes/src/elevator/panel.tsx
25907
+ #, fuzzy
25908
+ msgid "node.elevator.panel.doorPanelStyle"
25909
+ msgstr "Style de vantail"
25910
+
24793
25911
  # Source-Hash: 20f60b98de67849b
24794
25912
  # Review: required
24795
25913
  # AI-Provider: claude-code
@@ -24870,6 +25988,16 @@ msgstr "Ascenseur"
24870
25988
  msgid "node.elevator.panel.from"
24871
25989
  msgstr "Depuis"
24872
25990
 
25991
+ # AI-Provider: claude-code
25992
+ # AI-Model: claude-opus-5-5
25993
+ # Source-Hash: 4a7d8aa4abd3f13c
25994
+ # Review: required
25995
+ # English: "From level"
25996
+ #: packages/nodes/src/elevator/panel.tsx
25997
+ #, fuzzy
25998
+ msgid "node.elevator.panel.fromLevel"
25999
+ msgstr "Depuis le niveau"
26000
+
24873
26001
  # Source-Hash: 8ab91094cf650204
24874
26002
  # Review: required
24875
26003
  # AI-Provider: claude-code
@@ -24890,6 +26018,16 @@ msgstr "Vitrage"
24890
26018
  msgid "node.elevator.panel.glassFrame"
24891
26019
  msgstr "Cadre vitré"
24892
26020
 
26021
+ # AI-Provider: claude-code
26022
+ # AI-Model: claude-opus-5-5
26023
+ # Source-Hash: 612cfaf47ccef086
26024
+ # Review: required
26025
+ # English: "Hover or focus a section to highlight its parts. Cutaway affects this inspection only."
26026
+ #: packages/nodes/src/elevator/panel.tsx
26027
+ #, fuzzy
26028
+ msgid "node.elevator.panel.hoverOrFocusASectionTo"
26029
+ msgstr "Survolez ou sélectionnez une section pour mettre ses éléments en évidence. L’écorché n’affecte que cette inspection."
26030
+
24893
26031
  # Source-Hash: c0ff16d77ebc9593
24894
26032
  # Review: required
24895
26033
  # AI-Provider: claude-code
@@ -24930,6 +26068,26 @@ msgstr "Type d'ouverture"
24930
26068
  msgid "node.elevator.panel.position"
24931
26069
  msgstr "Position"
24932
26070
 
26071
+ # AI-Provider: claude-code
26072
+ # AI-Model: claude-opus-5-5
26073
+ # Source-Hash: 62e42f479e013bd9
26074
+ # Review: required
26075
+ # English: "Presets and inspection"
26076
+ #: packages/nodes/src/elevator/panel.tsx
26077
+ #, fuzzy
26078
+ msgid "node.elevator.panel.presetsAndInspection"
26079
+ msgstr "Préréglages et inspection"
26080
+
26081
+ # AI-Provider: claude-code
26082
+ # AI-Model: claude-opus-5-5
26083
+ # Source-Hash: 8e7f6a377134951b
26084
+ # Review: required
26085
+ # English: "Reset {section}"
26086
+ #: packages/nodes/src/elevator/panel.tsx
26087
+ #, fuzzy
26088
+ msgid "node.elevator.panel.resetSection"
26089
+ msgstr "Réinitialiser {section}"
26090
+
24933
26091
  # Source-Hash: 01989595ee7c1dc0
24934
26092
  # Review: required
24935
26093
  # AI-Provider: claude-code
@@ -24960,6 +26118,16 @@ msgstr "Panneau segmenté"
24960
26118
  msgid "node.elevator.panel.service"
24961
26119
  msgstr "Desserte"
24962
26120
 
26121
+ # AI-Provider: claude-code
26122
+ # AI-Model: claude-opus-5-5
26123
+ # Source-Hash: 74ce52847ea1b4e0
26124
+ # Review: required
26125
+ # English: "Service-only access for {level}"
26126
+ #: packages/nodes/src/elevator/panel.tsx
26127
+ #, fuzzy
26128
+ msgid "node.elevator.panel.serviceOnlyAccessForLevel"
26129
+ msgstr "Accès de service uniquement pour {level}"
26130
+
24963
26131
  # Source-Hash: 4fc63ad21de30103
24964
26132
  # Review: required
24965
26133
  # AI-Provider: claude-code
@@ -24990,6 +26158,16 @@ msgstr "Profondeur de gaine"
24990
26158
  msgid "node.elevator.panel.shaftStyle"
24991
26159
  msgstr "Style de gaine"
24992
26160
 
26161
+ # AI-Provider: claude-code
26162
+ # AI-Model: claude-opus-5-5
26163
+ # Source-Hash: a7794a81141b4de4
26164
+ # Review: required
26165
+ # English: "Shaft style"
26166
+ #: packages/nodes/src/elevator/panel.tsx
26167
+ #, fuzzy
26168
+ msgid "node.elevator.panel.shaftStyle2"
26169
+ msgstr "Style de gaine"
26170
+
24993
26171
  # Source-Hash: 3dab61aeb47e504d
24994
26172
  # Review: required
24995
26173
  # AI-Provider: claude-code
@@ -25060,6 +26238,16 @@ msgstr "Vitesse"
25060
26238
  msgid "node.elevator.panel.stopStoporder"
25061
26239
  msgstr "Arrêt {stopOrder}"
25062
26240
 
26241
+ # AI-Provider: claude-code
26242
+ # AI-Model: claude-opus-5-5
26243
+ # Source-Hash: 31eedbbae787f6e7
26244
+ # Review: required
26245
+ # English: "The cab needs more headroom than one or more served floors provide. Check the floor heights."
26246
+ #: packages/nodes/src/elevator/panel.tsx
26247
+ #, fuzzy
26248
+ msgid "node.elevator.panel.theCabNeedsMoreHeadroomThan"
26249
+ msgstr "La cabine nécessite plus de hauteur libre qu’un ou plusieurs niveaux desservis n’en offrent. Vérifiez la hauteur des niveaux."
26250
+
25063
26251
  # Source-Hash: b3214a20e45a7aed
25064
26252
  # Review: required
25065
26253
  # AI-Provider: claude-code
@@ -25070,6 +26258,16 @@ msgstr "Arrêt {stopOrder}"
25070
26258
  msgid "node.elevator.panel.to"
25071
26259
  msgstr "Vers"
25072
26260
 
26261
+ # AI-Provider: claude-code
26262
+ # AI-Model: claude-opus-5-5
26263
+ # Source-Hash: c14c46fb8719cb48
26264
+ # Review: required
26265
+ # English: "To level"
26266
+ #: packages/nodes/src/elevator/panel.tsx
26267
+ #, fuzzy
26268
+ msgid "node.elevator.panel.toLevel"
26269
+ msgstr "Jusqu’au niveau"
26270
+
25073
26271
  # Source-Hash: 1a5ccd607c400d76
25074
26272
  # Review: required
25075
26273
  # AI-Provider: claude-code
@@ -25100,6 +26298,36 @@ msgstr "Largeur"
25100
26298
  msgid "node.elevator.panel.yaw"
25101
26299
  msgstr "Lacet"
25102
26300
 
26301
+ # AI-Provider: claude-code
26302
+ # AI-Model: claude-opus-5-5
26303
+ # Source-Hash: 8ab91094cf650204
26304
+ # Review: required
26305
+ # English: "Glass"
26306
+ #: packages/nodes/src/elevator/presets.ts
26307
+ #, fuzzy
26308
+ msgid "node.elevator.preset.glass"
26309
+ msgstr "Vitré"
26310
+
26311
+ # AI-Provider: claude-code
26312
+ # AI-Model: claude-opus-5-5
26313
+ # Source-Hash: 6f3a0cb35f471f06
26314
+ # Review: required
26315
+ # English: "Passenger"
26316
+ #: packages/nodes/src/elevator/presets.ts
26317
+ #, fuzzy
26318
+ msgid "node.elevator.preset.passenger"
26319
+ msgstr "Passagers"
26320
+
26321
+ # AI-Provider: claude-code
26322
+ # AI-Model: claude-opus-5-5
26323
+ # Source-Hash: aa7b49b13f96057f
26324
+ # Review: required
26325
+ # English: "Service"
26326
+ #: packages/nodes/src/elevator/presets.ts
26327
+ #, fuzzy
26328
+ msgid "node.elevator.preset.service"
26329
+ msgstr "Service"
26330
+
25103
26331
  # Source-Hash: 7b22c91cf520e161
25104
26332
  # Review: required
25105
26333
  # AI-Provider: claude-code
@@ -26617,15 +27845,245 @@ msgstr "⌥ axe"
26617
27845
  msgid "node.pipeFitting.tool.rTRotate"
26618
27846
  msgstr "R/T pivoter"
26619
27847
 
26620
- # Source-Hash: a0bb4762aa66fa3e
27848
+ # Source-Hash: a2d9b4f249d256a2
26621
27849
  # Review: required
26622
- # AI-Provider: claude-code
27850
+ # AI-Provider: cursor-agent
26623
27851
  # AI-Model: claude-opus-5-5
26624
- # English: "Drain / waste / vent pipe run — draw level or toggle a ¼″ per foot fall with S."
27852
+ # English: "Drain / waste / vent pipe run — draw level or choose grade and downhill direction."
26625
27853
  #: packages/nodes/src/i18n/definition-messages.ts
26626
27854
  #, fuzzy
26627
27855
  msgid "node.pipeSegment.description"
26628
- msgstr "Canalisation d’évacuation et de ventilation — tracez à plat ou basculez une pente de ¼″ par pied avec S."
27856
+ msgstr "Canalisation d’évacuation et de ventilation — tracez à plat ou choisissez la pente et le sens d’écoulement."
27857
+
27858
+ # Source-Hash: 1e023cceafd26c49
27859
+ # Review: required
27860
+ # AI-Provider: cursor-agent
27861
+ # AI-Model: claude-opus-5-5
27862
+ # English: "Choose an endpoint"
27863
+ #: packages/nodes/src/pipe-segment/grade-label.ts
27864
+ #, fuzzy
27865
+ msgid "node.pipeSegment.grade.chooseEndpoint"
27866
+ msgstr "Choisissez une extrémité"
27867
+
27868
+ # Source-Hash: 1d12cd840d742517
27869
+ # Review: required
27870
+ # AI-Provider: cursor-agent
27871
+ # AI-Model: claude-opus-5-5
27872
+ # English: "Level · no gravity fall"
27873
+ #: packages/nodes/src/pipe-segment/grade-label.ts
27874
+ #, fuzzy
27875
+ msgid "node.pipeSegment.grade.level"
27876
+ msgstr "À plat · pas d’écoulement gravitaire"
27877
+
27878
+ # Source-Hash: 9ded568026ac7088
27879
+ # Review: required
27880
+ # AI-Provider: cursor-agent
27881
+ # AI-Model: claude-opus-5-5
27882
+ # English: "{percent}%"
27883
+ #: packages/nodes/src/pipe-segment/grade-label.ts
27884
+ #, fuzzy
27885
+ msgid "node.pipeSegment.grade.percent"
27886
+ msgstr "{percent} %"
27887
+
27888
+ # Source-Hash: adba843f6e1128f2
27889
+ # Review: required
27890
+ # AI-Provider: cursor-agent
27891
+ # AI-Model: claude-opus-5-5
27892
+ # English: "{percent} · 1:{ratio} · {direction, select, forward {start → end} other {end → start}} (down)"
27893
+ #: packages/nodes/src/pipe-segment/grade-label.ts
27894
+ #, fuzzy
27895
+ msgid "node.pipeSegment.grade.sloped"
27896
+ msgstr "{percent} · 1:{ratio} · {direction, select, forward {début → fin} other {fin → début}} (descendant)"
27897
+
27898
+ # Source-Hash: b25fe0ebcdadc1a1
27899
+ # Review: required
27900
+ # AI-Provider: cursor-agent
27901
+ # AI-Model: claude-opus-5-5
27902
+ # English: "Vertical · {direction, select, forward {start → end} other {end → start}} (down)"
27903
+ #: packages/nodes/src/pipe-segment/grade-label.ts
27904
+ #, fuzzy
27905
+ msgid "node.pipeSegment.grade.vertical"
27906
+ msgstr "Vertical · {direction, select, forward {début → fin} other {fin → début}} (descendant)"
27907
+
27908
+ # Source-Hash: 1107996c9987dc5a
27909
+ # Review: required
27910
+ # AI-Provider: cursor-agent
27911
+ # AI-Model: claude-opus-5-5
27912
+ # English: "Apply grade to horizontal legs"
27913
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
27914
+ #, fuzzy
27915
+ msgid "node.pipeSegment.gradeInspector.applyGradeToHorizontalLegs"
27916
+ msgstr "Appliquer la pente aux tronçons horizontaux"
27917
+
27918
+ # Source-Hash: 6348d1ecbab8e926
27919
+ # Review: required
27920
+ # AI-Provider: cursor-agent
27921
+ # AI-Model: claude-opus-5-5
27922
+ # English: "Arrows show downhill direction. Level runs have no gravity fall. Editing a path point preserves each leg’s grade."
27923
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
27924
+ #, fuzzy
27925
+ msgid "node.pipeSegment.gradeInspector.arrowsShowDownhillDirectionLevelRuns"
27926
+ msgstr "Les flèches indiquent le sens de la pente. Les tronçons à plat n’ont pas d’écoulement gravitaire. Modifier un point du tracé conserve la pente de chaque tronçon."
27927
+
27928
+ # Source-Hash: 3c2d7360f5b0ec0f
27929
+ # Review: required
27930
+ # AI-Provider: cursor-agent
27931
+ # AI-Model: claude-opus-5-5
27932
+ # English: "Centerline elevations above level: start {start} m · end {end} m"
27933
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
27934
+ #, fuzzy
27935
+ msgid "node.pipeSegment.gradeInspector.centerlineElevations"
27936
+ msgstr "Altitudes de l’axe au-dessus du niveau : début {start} m · fin {end} m"
27937
+
27938
+ # Source-Hash: 13a82ce00378a76a
27939
+ # Review: required
27940
+ # AI-Provider: cursor-agent
27941
+ # AI-Model: claude-opus-5-5
27942
+ # English: "End elevation (m)"
27943
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
27944
+ #, fuzzy
27945
+ msgid "node.pipeSegment.gradeInspector.endElevation"
27946
+ msgstr "Altitude de fin (m)"
27947
+
27948
+ # Source-Hash: b9958602c0675e93
27949
+ # Review: required
27950
+ # AI-Provider: cursor-agent
27951
+ # AI-Model: claude-opus-5-5
27952
+ # English: "End → start"
27953
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
27954
+ #, fuzzy
27955
+ msgid "node.pipeSegment.gradeInspector.endStart"
27956
+ msgstr "Fin → début"
27957
+
27958
+ # Source-Hash: eac5f522f23d244b
27959
+ # Review: required
27960
+ # AI-Provider: cursor-agent
27961
+ # AI-Model: claude-opus-5-5
27962
+ # English: "Fixed pipe endpoint"
27963
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
27964
+ #, fuzzy
27965
+ msgid "node.pipeSegment.gradeInspector.fixedPipeEndpoint"
27966
+ msgstr "Extrémité fixe du tuyau"
27967
+
27968
+ # Source-Hash: f3d8fa71962558e5
27969
+ # Review: required
27970
+ # AI-Provider: cursor-agent
27971
+ # AI-Model: claude-opus-5-5
27972
+ # English: "Grade (%)"
27973
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
27974
+ #, fuzzy
27975
+ msgid "node.pipeSegment.gradeInspector.grade"
27976
+ msgstr "Pente (%)"
27977
+
27978
+ # Source-Hash: bf34bb5add643aeb
27979
+ # Review: required
27980
+ # AI-Provider: cursor-agent
27981
+ # AI-Model: claude-opus-5-5
27982
+ # English: "Grade and flow"
27983
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
27984
+ #, fuzzy
27985
+ msgid "node.pipeSegment.gradeInspector.gradeAndFlow"
27986
+ msgstr "Pente et écoulement"
27987
+
27988
+ # Source-Hash: ce41df161aeed7a6
27989
+ # Review: required
27990
+ # AI-Provider: cursor-agent
27991
+ # AI-Model: claude-opus-5-5
27992
+ # English: "Keep end elevation"
27993
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
27994
+ #, fuzzy
27995
+ msgid "node.pipeSegment.gradeInspector.keepEndElevation"
27996
+ msgstr "Conserver l’altitude de fin"
27997
+
27998
+ # Source-Hash: a73da2d9b324635d
27999
+ # Review: required
28000
+ # AI-Provider: cursor-agent
28001
+ # AI-Model: claude-opus-5-5
28002
+ # English: "Keep start elevation"
28003
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
28004
+ #, fuzzy
28005
+ msgid "node.pipeSegment.gradeInspector.keepStartElevation"
28006
+ msgstr "Conserver l’altitude de début"
28007
+
28008
+ # Source-Hash: 95b18c4f1c132276
28009
+ # Review: required
28010
+ # AI-Provider: cursor-agent
28011
+ # AI-Model: claude-opus-5-5
28012
+ # English: "Leg {number}: {grade}"
28013
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
28014
+ #, fuzzy
28015
+ msgid "node.pipeSegment.gradeInspector.leg"
28016
+ msgstr "Tronçon {number} : {grade}"
28017
+
28018
+ # Source-Hash: af7138d6a8a07914
28019
+ # Review: required
28020
+ # AI-Provider: cursor-agent
28021
+ # AI-Model: claude-opus-5-5
28022
+ # English: "Move elevation, keep grades"
28023
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
28024
+ #, fuzzy
28025
+ msgid "node.pipeSegment.gradeInspector.moveElevationKeepGrades"
28026
+ msgstr "Déplacer en altitude, conserver les pentes"
28027
+
28028
+ # Source-Hash: a61f74b4b445e76c
28029
+ # Review: required
28030
+ # AI-Provider: cursor-agent
28031
+ # AI-Model: claude-opus-5-5
28032
+ # English: "Pipe anchor elevation"
28033
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
28034
+ #, fuzzy
28035
+ msgid "node.pipeSegment.gradeInspector.pipeAnchorElevation"
28036
+ msgstr "Altitude d’ancrage du tuyau"
28037
+
28038
+ # Source-Hash: a3628871eae01da3
28039
+ # Review: required
28040
+ # AI-Provider: cursor-agent
28041
+ # AI-Model: claude-opus-5-5
28042
+ # English: "Pipe downhill flow"
28043
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
28044
+ #, fuzzy
28045
+ msgid "node.pipeSegment.gradeInspector.pipeDownhillFlow"
28046
+ msgstr "Sens d’écoulement du tuyau"
28047
+
28048
+ # Source-Hash: 10c942b544edcbd4
28049
+ # Review: required
28050
+ # AI-Provider: cursor-agent
28051
+ # AI-Model: claude-opus-5-5
28052
+ # English: "Pipe grade percent"
28053
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
28054
+ #, fuzzy
28055
+ msgid "node.pipeSegment.gradeInspector.pipeGradePercent"
28056
+ msgstr "Pente du tuyau en pourcentage"
28057
+
28058
+ # Source-Hash: acb2a9b9e601c85b
28059
+ # Review: required
28060
+ # AI-Provider: cursor-agent
28061
+ # AI-Model: claude-opus-5-5
28062
+ # English: "Start elevation (m)"
28063
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
28064
+ #, fuzzy
28065
+ msgid "node.pipeSegment.gradeInspector.startElevation"
28066
+ msgstr "Altitude de début (m)"
28067
+
28068
+ # Source-Hash: c742d28f93020b10
28069
+ # Review: required
28070
+ # AI-Provider: cursor-agent
28071
+ # AI-Model: claude-opus-5-5
28072
+ # English: "Start → end"
28073
+ #: packages/nodes/src/pipe-segment/grade-inspector.tsx
28074
+ #, fuzzy
28075
+ msgid "node.pipeSegment.gradeInspector.startEnd"
28076
+ msgstr "Début → fin"
28077
+
28078
+ # Source-Hash: 42b6489db22b36a3
28079
+ # Review: required
28080
+ # AI-Provider: cursor-agent
28081
+ # AI-Model: claude-opus-5-5
28082
+ # English: "This edit cannot preserve the pipe grade and connected collars. Adjust the fitting or use Grade and flow."
28083
+ #: packages/nodes/src/pipe-segment/grade-affordance.ts
28084
+ #, fuzzy
28085
+ msgid "node.pipeSegment.gradeNotice.blocked"
28086
+ msgstr "Cette modification ne peut pas conserver la pente du tuyau ni les colliers raccordés. Ajustez le raccord ou utilisez Pente et écoulement."
26629
28087
 
26630
28088
  # Source-Hash: 457155657704f7cc
26631
28089
  # Review: required
@@ -26637,6 +28095,286 @@ msgstr "Canalisation d’évacuation et de ventilation — tracez à plat ou bas
26637
28095
  msgid "node.pipeSegment.label"
26638
28096
  msgstr "Tuyau d’évacuation"
26639
28097
 
28098
+ # Source-Hash: 58c093b768f21b93
28099
+ # Review: required
28100
+ # AI-Provider: cursor-agent
28101
+ # AI-Model: claude-opus-5-5
28102
+ # English: "This move would change a connected pipe’s grade. Choose another position or press Esc to cancel."
28103
+ #: packages/nodes/src/pipe-segment/move-tool.tsx
28104
+ #, fuzzy
28105
+ msgid "node.pipeSegment.moveTool.connectedGradeBlocked"
28106
+ msgstr "Ce déplacement modifierait la pente d’un tuyau raccordé. Choisissez une autre position ou appuyez sur Échap pour annuler."
28107
+
28108
+ # Source-Hash: 012c10b3fb071052
28109
+ # Review: required
28110
+ # AI-Provider: cursor-agent
28111
+ # AI-Model: claude-opus-5-5
28112
+ # English: "Apply pipe offset"
28113
+ #: packages/nodes/src/pipe-segment/offset-inspector.tsx
28114
+ #, fuzzy
28115
+ msgid "node.pipeSegment.offsetInspector.applyPipeOffset"
28116
+ msgstr "Appliquer le décalage du tuyau"
28117
+
28118
+ # Source-Hash: 6abc3bcf60f7aed7
28119
+ # Review: required
28120
+ # AI-Provider: cursor-agent
28121
+ # AI-Model: claude-opus-5-5
28122
+ # English: "Check obstacle clearance. The preview does not detect collisions."
28123
+ #: packages/nodes/src/pipe-segment/offset-inspector.tsx
28124
+ #, fuzzy
28125
+ msgid "node.pipeSegment.offsetInspector.checkObstacleClearanceThePreviewDoes"
28126
+ msgstr "Vérifiez le dégagement autour de l’obstacle. L’aperçu ne détecte pas les collisions."
28127
+
28128
+ # Source-Hash: b23728d37200c667
28129
+ # Review: required
28130
+ # AI-Provider: cursor-agent
28131
+ # AI-Model: claude-opus-5-5
28132
+ # English: "Choose the first and last bend by horizontal distance from the start. Positive offset goes up; negative goes down. Each connector uses the offset height in horizontal travel."
28133
+ #: packages/nodes/src/pipe-segment/offset-inspector.tsx
28134
+ #, fuzzy
28135
+ msgid "node.pipeSegment.offsetInspector.chooseTheFirstAndLastBend"
28136
+ msgstr "Choisissez le premier et le dernier coude par leur distance horizontale depuis le début. Un décalage positif monte ; un décalage négatif descend. Chaque raccord parcourt horizontalement une distance égale à la hauteur du décalage."
28137
+
28138
+ # Source-Hash: 03528ff54200e797
28139
+ # Review: required
28140
+ # AI-Provider: cursor-agent
28141
+ # AI-Model: claude-opus-5-5
28142
+ # English: "First bend (m)"
28143
+ #: packages/nodes/src/pipe-segment/offset-inspector.tsx
28144
+ #, fuzzy
28145
+ msgid "node.pipeSegment.offsetInspector.firstBend"
28146
+ msgstr "Premier coude (m)"
28147
+
28148
+ # Source-Hash: 4e6b6ed646a449cc
28149
+ # Review: required
28150
+ # AI-Provider: cursor-agent
28151
+ # AI-Model: claude-opus-5-5
28152
+ # English: "Last bend (m)"
28153
+ #: packages/nodes/src/pipe-segment/offset-inspector.tsx
28154
+ #, fuzzy
28155
+ msgid "node.pipeSegment.offsetInspector.lastBend"
28156
+ msgstr "Dernier coude (m)"
28157
+
28158
+ # Source-Hash: 102ac6742f497c2e
28159
+ # Review: required
28160
+ # AI-Provider: cursor-agent
28161
+ # AI-Model: claude-opus-5-5
28162
+ # English: "Offset applied in one undo step. End connections stayed fixed."
28163
+ #: packages/nodes/src/pipe-segment/offset-inspector.tsx
28164
+ #, fuzzy
28165
+ msgid "node.pipeSegment.offsetInspector.offsetAppliedInOneUndoStep"
28166
+ msgstr "Décalage appliqué en une seule étape d’annulation. Les raccordements d’extrémité sont restés fixes."
28167
+
28168
+ # Source-Hash: aac8ab5c8fe8dc80
28169
+ # Review: required
28170
+ # AI-Provider: cursor-agent
28171
+ # AI-Model: claude-opus-5-5
28172
+ # English: "Offset around obstacle"
28173
+ #: packages/nodes/src/pipe-segment/offset-inspector.tsx
28174
+ #, fuzzy
28175
+ msgid "node.pipeSegment.offsetInspector.offsetAroundObstacle"
28176
+ msgstr "Contourner un obstacle"
28177
+
28178
+ # Source-Hash: d6638d559a15dc79
28179
+ # Review: required
28180
+ # AI-Provider: cursor-agent
28181
+ # AI-Model: claude-opus-5-5
28182
+ # English: "Pipe offset side profile preview"
28183
+ #: packages/nodes/src/pipe-segment/offset-inspector.tsx
28184
+ #, fuzzy
28185
+ msgid "node.pipeSegment.offsetInspector.pipeOffsetSideProfilePreview"
28186
+ msgstr "Aperçu du profil latéral du décalage de tuyau"
28187
+
28188
+ # Source-Hash: 93186c7801fe54b1
28189
+ # Review: required
28190
+ # AI-Provider: cursor-agent
28191
+ # AI-Model: claude-opus-5-5
28192
+ # English: "Side profile (schematic). Four bends · five pipe sections. Parallel sections keep the original grade; both end connections stay fixed."
28193
+ #: packages/nodes/src/pipe-segment/offset-inspector.tsx
28194
+ #, fuzzy
28195
+ msgid "node.pipeSegment.offsetInspector.sideProfileSchematicFourBendsFive"
28196
+ msgstr "Profil latéral (schématique). Quatre coudes · cinq tronçons de tuyau. Les tronçons parallèles conservent la pente d’origine ; les deux raccordements d’extrémité restent fixes."
28197
+
28198
+ # Source-Hash: ab6a00ca812999d5
28199
+ # Review: required
28200
+ # AI-Provider: cursor-agent
28201
+ # AI-Model: claude-opus-5-5
28202
+ # English: "This offset includes an uphill waste section. It does not provide continuous downhill drainage."
28203
+ #: packages/nodes/src/pipe-segment/offset-inspector.tsx
28204
+ #, fuzzy
28205
+ msgid "node.pipeSegment.offsetInspector.thisOffsetIncludesAnUphillWaste"
28206
+ msgstr "Ce décalage comprend un tronçon d’évacuation en contre-pente. Il n’assure pas un écoulement continu vers le bas."
28207
+
28208
+ # Source-Hash: 9da65d7ebc4d4ba1
28209
+ # Review: required
28210
+ # AI-Provider: cursor-agent
28211
+ # AI-Model: claude-opus-5-5
28212
+ # English: "Unable to apply offset."
28213
+ #: packages/nodes/src/pipe-segment/offset-inspector.tsx
28214
+ #, fuzzy
28215
+ msgid "node.pipeSegment.offsetInspector.unableToApplyOffset"
28216
+ msgstr "Impossible d’appliquer le décalage."
28217
+
28218
+ # Source-Hash: b9d942406a6029e3
28219
+ # Review: required
28220
+ # AI-Provider: cursor-agent
28221
+ # AI-Model: claude-opus-5-5
28222
+ # English: "Unable to plan offset."
28223
+ #: packages/nodes/src/pipe-segment/offset-inspector.tsx
28224
+ #, fuzzy
28225
+ msgid "node.pipeSegment.offsetInspector.unableToPlanOffset"
28226
+ msgstr "Impossible de préparer le décalage."
28227
+
28228
+ # Source-Hash: 2dad926bc0e26f4a
28229
+ # Review: required
28230
+ # AI-Provider: cursor-agent
28231
+ # AI-Model: claude-opus-5-5
28232
+ # English: "Vertical offset (m)"
28233
+ #: packages/nodes/src/pipe-segment/offset-inspector.tsx
28234
+ #, fuzzy
28235
+ msgid "node.pipeSegment.offsetInspector.verticalOffset"
28236
+ msgstr "Décalage vertical (m)"
28237
+
28238
+ # Source-Hash: ab7feb5e8b9ef232
28239
+ # Review: required
28240
+ # AI-Provider: cursor-agent
28241
+ # AI-Model: claude-opus-5-5
28242
+ # English: "Apply pipe size"
28243
+ #: packages/nodes/src/pipe-segment/resize-inspector.tsx
28244
+ #, fuzzy
28245
+ msgid "node.pipeSegment.resizeInspector.applyPipeSize"
28246
+ msgstr "Appliquer le diamètre"
28247
+
28248
+ # Source-Hash: 5a82f77707e6c422
28249
+ # Review: required
28250
+ # AI-Provider: cursor-agent
28251
+ # AI-Model: claude-opus-5-5
28252
+ # English: "Branches stop at junctions, size or material changes, and fixture connections. Reducers keep boundary collars fixed."
28253
+ #: packages/nodes/src/pipe-segment/resize-inspector.tsx
28254
+ #, fuzzy
28255
+ msgid "node.pipeSegment.resizeInspector.branchesStopAtJunctionsSizeOr"
28256
+ msgstr "Les branches s’arrêtent aux jonctions, aux changements de diamètre ou de matériau et aux raccordements d’appareils. Les réductions maintiennent fixes les colliers en limite."
28257
+
28258
+ # Source-Hash: 3406d3fb87431e87
28259
+ # Review: required
28260
+ # AI-Provider: cursor-agent
28261
+ # AI-Model: claude-opus-5-5
28262
+ # English: "Check resize"
28263
+ #: packages/nodes/src/pipe-segment/resize-inspector.tsx
28264
+ #, fuzzy
28265
+ msgid "node.pipeSegment.resizeInspector.checkResize"
28266
+ msgstr "Vérifier le redimensionnement"
28267
+
28268
+ # Source-Hash: 68e3596ff2fd6e60
28269
+ # Review: required
28270
+ # AI-Provider: cursor-agent
28271
+ # AI-Model: claude-opus-5-5
28272
+ # English: "Connected branch"
28273
+ #: packages/nodes/src/pipe-segment/resize-inspector.tsx
28274
+ #, fuzzy
28275
+ msgid "node.pipeSegment.resizeInspector.connectedBranch"
28276
+ msgstr "Branche raccordée"
28277
+
28278
+ # Source-Hash: c40570d3f7df8ad2
28279
+ # Review: required
28280
+ # AI-Provider: cursor-agent
28281
+ # AI-Model: claude-opus-5-5
28282
+ # English: "Current diameter: {diameter} in"
28283
+ #: packages/nodes/src/pipe-segment/resize-inspector.tsx
28284
+ #, fuzzy
28285
+ msgid "node.pipeSegment.resizeInspector.currentDiameter"
28286
+ msgstr "Diamètre actuel : {diameter} in"
28287
+
28288
+ # Source-Hash: e704515c0fe2a6ca
28289
+ # Review: required
28290
+ # AI-Provider: cursor-agent
28291
+ # AI-Model: claude-opus-5-5
28292
+ # English: "Diameter (in)"
28293
+ #: packages/nodes/src/pipe-segment/resize-inspector.tsx
28294
+ #, fuzzy
28295
+ msgid "node.pipeSegment.resizeInspector.diameterIn"
28296
+ msgstr "Diamètre (in)"
28297
+
28298
+ # Source-Hash: bf4fd51ca4d3d6c6
28299
+ # Review: required
28300
+ # AI-Provider: cursor-agent
28301
+ # AI-Model: claude-opus-5-5
28302
+ # English: "Pipe resize diameter"
28303
+ #: packages/nodes/src/pipe-segment/resize-inspector.tsx
28304
+ #, fuzzy
28305
+ msgid "node.pipeSegment.resizeInspector.pipeResizeDiameter"
28306
+ msgstr "Nouveau diamètre du tuyau"
28307
+
28308
+ # Source-Hash: e31a6978e4744398
28309
+ # Review: required
28310
+ # AI-Provider: cursor-agent
28311
+ # AI-Model: claude-opus-5-5
28312
+ # English: "Pipe resize scope"
28313
+ #: packages/nodes/src/pipe-segment/resize-inspector.tsx
28314
+ #, fuzzy
28315
+ msgid "node.pipeSegment.resizeInspector.pipeResizeScope"
28316
+ msgstr "Portée du redimensionnement du tuyau"
28317
+
28318
+ # Source-Hash: 8b5479cd8378bf76
28319
+ # Review: required
28320
+ # AI-Provider: cursor-agent
28321
+ # AI-Model: claude-opus-5-5
28322
+ # English: "Pipe size"
28323
+ #: packages/nodes/src/pipe-segment/resize-inspector.tsx
28324
+ #, fuzzy
28325
+ msgid "node.pipeSegment.resizeInspector.pipeSize"
28326
+ msgstr "Diamètre du tuyau"
28327
+
28328
+ # Source-Hash: ad7c5e79e9f545f2
28329
+ # Review: required
28330
+ # AI-Provider: cursor-agent
28331
+ # AI-Model: claude-opus-5-5
28332
+ # English: "Resized in one undo step. Grades and boundary connections preserved."
28333
+ #: packages/nodes/src/pipe-segment/resize-inspector.tsx
28334
+ #, fuzzy
28335
+ msgid "node.pipeSegment.resizeInspector.resized"
28336
+ msgstr "Redimensionné en une seule étape d’annulation. Pentes et raccordements en limite conservés."
28337
+
28338
+ # Source-Hash: 2681a615278ea7de
28339
+ # Review: required
28340
+ # AI-Provider: cursor-agent
28341
+ # AI-Model: claude-opus-5-5
28342
+ # English: "{runs, plural, one {# run} other {# runs}}, {fittings, plural, one {# fitting} other {# fittings}}, {reducers, plural, one {# new reducer} other {# new reducers}}. Grades stay unchanged."
28343
+ #: packages/nodes/src/pipe-segment/resize-inspector.tsx
28344
+ #, fuzzy
28345
+ msgid "node.pipeSegment.resizeInspector.resizeSummary"
28346
+ msgstr "{runs, plural, one {# tronçon} many {# tronçons} other {# tronçons}}, {fittings, plural, one {# raccord} many {# raccords} other {# raccords}}, {reducers, plural, one {# nouvelle réduction} many {# nouvelles réductions} other {# nouvelles réductions}}. Les pentes restent inchangées."
28347
+
28348
+ # Source-Hash: d271518d800f3e1c
28349
+ # Review: required
28350
+ # AI-Provider: cursor-agent
28351
+ # AI-Model: claude-opus-5-5
28352
+ # English: "This segment"
28353
+ #: packages/nodes/src/pipe-segment/resize-inspector.tsx
28354
+ #, fuzzy
28355
+ msgid "node.pipeSegment.resizeInspector.thisSegment"
28356
+ msgstr "Ce tronçon"
28357
+
28358
+ # Source-Hash: 0518760b3747bae1
28359
+ # Review: required
28360
+ # AI-Provider: cursor-agent
28361
+ # AI-Model: claude-opus-5-5
28362
+ # English: "Unable to resize pipe."
28363
+ #: packages/nodes/src/pipe-segment/resize-inspector.tsx
28364
+ #, fuzzy
28365
+ msgid "node.pipeSegment.resizeInspector.unableToResize"
28366
+ msgstr "Impossible de redimensionner le tuyau."
28367
+
28368
+ # Source-Hash: 4019007983696a57
28369
+ # Review: required
28370
+ # AI-Provider: cursor-agent
28371
+ # AI-Model: claude-opus-5-5
28372
+ # English: "{grade} · Start {start} m · End {end} m above level"
28373
+ #: packages/nodes/src/pipe-segment/tool.tsx
28374
+ #, fuzzy
28375
+ msgid "node.pipeSegment.tool.gradeDetail"
28376
+ msgstr "{grade} · Début {start} m · Fin {end} m au-dessus du niveau"
28377
+
26640
28378
  # Source-Hash: 6d0cdd14d0675e05
26641
28379
  # Review: required
26642
28380
  # AI-Provider: claude-code
@@ -26937,6 +28675,36 @@ msgstr "Hauteur"
26937
28675
  msgid "node.roof.description"
26938
28676
  msgstr "Toit en pente, en croupe ou à deux pans composé d’un ou plusieurs pans."
26939
28677
 
28678
+ # AI-Provider: claude-code
28679
+ # AI-Model: claude-opus-5-5
28680
+ # Source-Hash: ca5fae8856e13ced
28681
+ # Review: required
28682
+ # English: "Retry roof geometry"
28683
+ #: packages/nodes/src/roof/geometry-notice.tsx
28684
+ #, fuzzy
28685
+ msgid "node.roof.geometryNotice.retryRoofGeometry"
28686
+ msgstr "Réessayer la géométrie du toit"
28687
+
28688
+ # AI-Provider: claude-code
28689
+ # AI-Model: claude-opus-5-5
28690
+ # Source-Hash: 50b682dbab6737df
28691
+ # Review: required
28692
+ # English: "Roof geometry could not be rebuilt. The previous shape is still shown. Adjust the dimensions or intersections and retry."
28693
+ #: packages/nodes/src/roof/geometry-notice.tsx
28694
+ #, fuzzy
28695
+ msgid "node.roof.geometryNotice.roofGeometryCouldNotBeRebuilt"
28696
+ msgstr "Impossible de reconstruire la géométrie du toit. La forme précédente reste affichée. Ajustez les dimensions ou les intersections, puis réessayez."
28697
+
28698
+ # AI-Provider: claude-code
28699
+ # AI-Model: claude-opus-5-5
28700
+ # Source-Hash: 65436922f0b53083
28701
+ # Review: required
28702
+ # English: "Roof geometry is invalid. The previous shape is still shown. Adjust the dimensions or intersections and retry."
28703
+ #: packages/nodes/src/roof/geometry-notice.tsx
28704
+ #, fuzzy
28705
+ msgid "node.roof.geometryNotice.roofGeometryIsInvalidThePrevious"
28706
+ msgstr "La géométrie du toit n’est pas valide. La forme précédente reste affichée. Ajustez les dimensions ou les intersections, puis réessayez."
28707
+
26940
28708
  # Source-Hash: b5be04471fd3fb7a
26941
28709
  # Review: required
26942
28710
  # AI-Provider: claude-code
@@ -29050,6 +30818,36 @@ msgstr "{spacing} d’entraxe"
29050
30818
  msgid "node.shared.buildUpControls.woodPlank"
29051
30819
  msgstr "Lambris"
29052
30820
 
30821
+ # Source-Hash: 0fe1b70953df9304
30822
+ # Review: required
30823
+ # AI-Provider: cursor-agent
30824
+ # AI-Model: claude-opus-5-5
30825
+ # English: "Route preview"
30826
+ #: packages/nodes/src/shared/connection-feedback.tsx
30827
+ #, fuzzy
30828
+ msgid "node.shared.connectionFeedback.routePreview"
30829
+ msgstr "Aperçu du tracé"
30830
+
30831
+ # Source-Hash: d4da45e25561382c
30832
+ # Review: required
30833
+ # AI-Provider: cursor-agent
30834
+ # AI-Model: claude-opus-5-5
30835
+ # English: "{system, select, return {Return} other {Supply}} · {size} in · {state, select, connected {Connected} other {Draw from collar}}"
30836
+ #: packages/nodes/src/shared/duct-collar-inspector.tsx
30837
+ #, fuzzy
30838
+ msgid "node.shared.ductCollarInspector.collarButton"
30839
+ msgstr "{system, select, return {Reprise} other {Soufflage}} · {size} in · {state, select, connected {Raccordé} other {Tracer depuis le collier}}"
30840
+
30841
+ # Source-Hash: 8ef43378888dba30
30842
+ # Review: required
30843
+ # AI-Provider: cursor-agent
30844
+ # AI-Model: claude-opus-5-5
30845
+ # English: "Connect duct"
30846
+ #: packages/nodes/src/shared/duct-collar-inspector.tsx
30847
+ #, fuzzy
30848
+ msgid "node.shared.ductCollarInspector.connectDuct"
30849
+ msgstr "Raccorder une gaine"
30850
+
29053
30851
  # Source-Hash: e7512c891d8da7d8
29054
30852
  # Review: required
29055
30853
  # AI-Provider: claude-code
@@ -29100,6 +30898,26 @@ msgstr "Largeur"
29100
30898
  msgid "node.shared.openingDepthPosition.depthPosition"
29101
30899
  msgstr "Position en profondeur"
29102
30900
 
30901
+ # Source-Hash: dde1a07755fd0e6e
30902
+ # Review: required
30903
+ # AI-Provider: cursor-agent
30904
+ # AI-Model: claude-opus-5-5
30905
+ # English: "{port, select, inlet {Inlet} outlet {Outlet} branch {Branch} branch2 {Second branch} other {Collar {number}}} · {diameter} in · {elevation} m · {state, select, connected {Connected} other {Draw from collar}}"
30906
+ #: packages/nodes/src/shared/pipe-collar-inspector.tsx
30907
+ #, fuzzy
30908
+ msgid "node.shared.pipeCollarInspector.collarButton"
30909
+ msgstr "{port, select, inlet {Entrée} outlet {Sortie} branch {Piquage} branch2 {Second piquage} other {Collier {number}}} · {diameter} in · {elevation} m · {state, select, connected {Raccordé} other {Tracer depuis le collier}}"
30910
+
30911
+ # Source-Hash: 88a982140de95dcc
30912
+ # Review: required
30913
+ # AI-Provider: cursor-agent
30914
+ # AI-Model: claude-opus-5-5
30915
+ # English: "Connect pipe"
30916
+ #: packages/nodes/src/shared/pipe-collar-inspector.tsx
30917
+ #, fuzzy
30918
+ msgid "node.shared.pipeCollarInspector.connectPipe"
30919
+ msgstr "Raccorder un tuyau"
30920
+
29103
30921
  # Source-Hash: ee1c8bc3e27fb550
29104
30922
  # Review: required
29105
30923
  # AI-Provider: claude-code
@@ -34411,6 +36229,16 @@ msgstr "Dimensions"
34411
36229
  msgid "node.wall.panel.drywall"
34412
36230
  msgstr "Plaque de plâtre"
34413
36231
 
36232
+ # Source-Hash: 99ae1e9f13fca0ad
36233
+ # Review: required
36234
+ # AI-Provider: claude-code
36235
+ # AI-Model: claude-opus-5-5
36236
+ # English: "End height offset"
36237
+ #: packages/nodes/src/wall/panel.tsx
36238
+ #, fuzzy
36239
+ msgid "node.wall.panel.endHeightOffset"
36240
+ msgstr "Décalage de hauteur à l’extrémité"
36241
+
34414
36242
  # Source-Hash: d6ba089e1ca40cdf
34415
36243
  # Review: required
34416
36244
  # AI-Provider: claude-code
@@ -36694,37 +38522,37 @@ msgstr "Fenêtre oscillo-battante"
36694
38522
  # Source-Hash: 8bf25afa3cb8baea
36695
38523
  # Review: human
36696
38524
  # English: "Orbit left"
36697
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
38525
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
36698
38526
  msgid "viewer.camera.orbitLeft"
36699
38527
  msgstr "Pivoter à gauche"
36700
38528
 
36701
38529
  # Source-Hash: b9cc64c1d1bb0d46
36702
38530
  # Review: human
36703
38531
  # English: "Orbit right"
36704
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
38532
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
36705
38533
  msgid "viewer.camera.orbitRight"
36706
38534
  msgstr "Pivoter à droite"
36707
38535
 
36708
38536
  # Source-Hash: 1ab1eb3a14f4b0e0
36709
38537
  # Review: human
36710
38538
  # English: "Top view"
36711
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
38539
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
36712
38540
  msgid "viewer.camera.topView"
36713
38541
  msgstr "Vue de dessus"
36714
38542
 
36715
38543
  # Source-Hash: 50accd740fa2e736
36716
38544
  # Review: human
36717
38545
  # English: "Off"
36718
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
36719
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
38546
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
38547
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
36720
38548
  msgid "viewer.common.off"
36721
38549
  msgstr "Désactivé"
36722
38550
 
36723
38551
  # Source-Hash: 9cc01faad79c28da
36724
38552
  # Review: human
36725
38553
  # English: "On"
36726
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
36727
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
38554
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
38555
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
36728
38556
  msgid "viewer.common.on"
36729
38557
  msgstr "Activé"
36730
38558
 
@@ -36733,7 +38561,7 @@ msgstr "Activé"
36733
38561
  # AI-Provider: claude-code
36734
38562
  # AI-Model: claude-opus-5-5
36735
38563
  # English: "Sun position is approximate"
36736
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
38564
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
36737
38565
  #, fuzzy
36738
38566
  msgid "viewer.daylight.location.approximate"
36739
38567
  msgstr "Position du soleil approximative"
@@ -36743,7 +38571,7 @@ msgstr "Position du soleil approximative"
36743
38571
  # AI-Provider: claude-code
36744
38572
  # AI-Model: claude-opus-5-5
36745
38573
  # English: "Sun follows your location"
36746
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
38574
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
36747
38575
  #, fuzzy
36748
38576
  msgid "viewer.daylight.location.device"
36749
38577
  msgstr "Le soleil suit votre position"
@@ -36753,8 +38581,8 @@ msgstr "Le soleil suit votre position"
36753
38581
  # AI-Provider: claude-code
36754
38582
  # AI-Model: claude-opus-5-5
36755
38583
  # English: "Use my location"
36756
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
36757
- #: packages/editor/src/components/viewer/sky-control.tsx
38584
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
38585
+ #: packages/viewer/src/ui/components/sky-control.tsx
36758
38586
  #, fuzzy
36759
38587
  msgid "viewer.daylight.location.use"
36760
38588
  msgstr "Utiliser ma position"
@@ -36764,7 +38592,7 @@ msgstr "Utiliser ma position"
36764
38592
  # AI-Provider: claude-code
36765
38593
  # AI-Model: claude-opus-5-5
36766
38594
  # English: "Afternoon"
36767
- #: packages/editor/src/components/viewer/sky-control.tsx
38595
+ #: packages/viewer/src/ui/components/sky-control.tsx
36768
38596
  #, fuzzy
36769
38597
  msgid "viewer.daylight.phase.afternoon"
36770
38598
  msgstr "Après-midi"
@@ -36774,7 +38602,7 @@ msgstr "Après-midi"
36774
38602
  # AI-Provider: claude-code
36775
38603
  # AI-Model: claude-opus-5-5
36776
38604
  # English: "Morning"
36777
- #: packages/editor/src/components/viewer/sky-control.tsx
38605
+ #: packages/viewer/src/ui/components/sky-control.tsx
36778
38606
  #, fuzzy
36779
38607
  msgid "viewer.daylight.phase.morning"
36780
38608
  msgstr "Matin"
@@ -36784,7 +38612,7 @@ msgstr "Matin"
36784
38612
  # AI-Provider: claude-code
36785
38613
  # AI-Model: claude-opus-5-5
36786
38614
  # English: "Auto"
36787
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
38615
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
36788
38616
  #, fuzzy
36789
38617
  msgid "viewer.daylight.quality.auto"
36790
38618
  msgstr "Auto"
@@ -36794,7 +38622,7 @@ msgstr "Auto"
36794
38622
  # AI-Provider: claude-code
36795
38623
  # AI-Model: claude-opus-5-5
36796
38624
  # English: "Picked for this device: {tier}"
36797
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
38625
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
36798
38626
  #, fuzzy
36799
38627
  msgid "viewer.daylight.quality.autoDetail"
36800
38628
  msgstr "Choisie pour cet appareil : {tier}"
@@ -36804,7 +38632,7 @@ msgstr "Choisie pour cet appareil : {tier}"
36804
38632
  # AI-Provider: claude-code
36805
38633
  # AI-Model: claude-opus-5-5
36806
38634
  # English: "High"
36807
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
38635
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
36808
38636
  #, fuzzy
36809
38637
  msgid "viewer.daylight.quality.high"
36810
38638
  msgstr "Haute"
@@ -36814,7 +38642,7 @@ msgstr "Haute"
36814
38642
  # AI-Provider: claude-code
36815
38643
  # AI-Model: claude-opus-5-5
36816
38644
  # English: "Lighting-aware ambient occlusion and bloom"
36817
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
38645
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
36818
38646
  #, fuzzy
36819
38647
  msgid "viewer.daylight.quality.highDetail"
36820
38648
  msgstr "Occlusion ambiante liée à l'éclairage et bloom"
@@ -36824,7 +38652,7 @@ msgstr "Occlusion ambiante liée à l'éclairage et bloom"
36824
38652
  # AI-Provider: claude-code
36825
38653
  # AI-Model: claude-opus-5-5
36826
38654
  # English: "Low"
36827
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
38655
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
36828
38656
  #, fuzzy
36829
38657
  msgid "viewer.daylight.quality.low"
36830
38658
  msgstr "Basse"
@@ -36834,7 +38662,7 @@ msgstr "Basse"
36834
38662
  # Source-Hash: 8b94a0f7e27f671d
36835
38663
  # Review: required
36836
38664
  # English: "Fastest — no ambient occlusion or bloom"
36837
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
38665
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
36838
38666
  #, fuzzy
36839
38667
  msgid "viewer.daylight.quality.lowDetail"
36840
38668
  msgstr "Le plus rapide — ni occlusion ambiante ni bloom"
@@ -36844,7 +38672,7 @@ msgstr "Le plus rapide — ni occlusion ambiante ni bloom"
36844
38672
  # AI-Provider: claude-code
36845
38673
  # AI-Model: claude-opus-5-5
36846
38674
  # English: "Medium"
36847
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
38675
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
36848
38676
  #, fuzzy
36849
38677
  msgid "viewer.daylight.quality.medium"
36850
38678
  msgstr "Moyenne"
@@ -36854,7 +38682,7 @@ msgstr "Moyenne"
36854
38682
  # AI-Provider: claude-code
36855
38683
  # AI-Model: claude-opus-5-5
36856
38684
  # English: "Half-resolution ambient occlusion"
36857
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
38685
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
36858
38686
  #, fuzzy
36859
38687
  msgid "viewer.daylight.quality.mediumDetail"
36860
38688
  msgstr "Occlusion ambiante en demi-résolution"
@@ -36864,7 +38692,7 @@ msgstr "Occlusion ambiante en demi-résolution"
36864
38692
  # AI-Provider: claude-code
36865
38693
  # AI-Model: claude-opus-5-5
36866
38694
  # English: "Quality"
36867
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
38695
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
36868
38696
  #, fuzzy
36869
38697
  msgid "viewer.daylight.quality.title"
36870
38698
  msgstr "Qualité"
@@ -36874,7 +38702,7 @@ msgstr "Qualité"
36874
38702
  # AI-Provider: claude-code
36875
38703
  # AI-Model: claude-opus-5-5
36876
38704
  # English: "Drag the sun to set the time"
36877
- #: packages/editor/src/components/viewer/sky-control.tsx
38705
+ #: packages/viewer/src/ui/components/sky-control.tsx
36878
38706
  #, fuzzy
36879
38707
  msgid "viewer.daylight.sky.arc"
36880
38708
  msgstr "Faites glisser le soleil pour régler l'heure"
@@ -36884,7 +38712,7 @@ msgstr "Faites glisser le soleil pour régler l'heure"
36884
38712
  # AI-Provider: claude-code
36885
38713
  # AI-Model: claude-opus-5-5
36886
38714
  # English: "Close"
36887
- #: packages/editor/src/components/viewer/sky-control.tsx
38715
+ #: packages/viewer/src/ui/components/sky-control.tsx
36888
38716
  #, fuzzy
36889
38717
  msgid "viewer.daylight.sky.close"
36890
38718
  msgstr "Fermer"
@@ -36894,7 +38722,7 @@ msgstr "Fermer"
36894
38722
  # AI-Provider: claude-code
36895
38723
  # AI-Model: claude-opus-5-5
36896
38724
  # English: "Cloud cover"
36897
- #: packages/editor/src/components/viewer/sky-control.tsx
38725
+ #: packages/viewer/src/ui/components/sky-control.tsx
36898
38726
  #, fuzzy
36899
38727
  msgid "viewer.daylight.sky.cloudCover"
36900
38728
  msgstr "Couverture nuageuse"
@@ -36904,7 +38732,7 @@ msgstr "Couverture nuageuse"
36904
38732
  # AI-Provider: claude-code
36905
38733
  # AI-Model: claude-opus-5-5
36906
38734
  # English: "Cloud cover: {current}. Change to {next}"
36907
- #: packages/editor/src/components/viewer/sky-control.tsx
38735
+ #: packages/viewer/src/ui/components/sky-control.tsx
36908
38736
  #, fuzzy
36909
38737
  msgid "viewer.daylight.sky.cycleWeather"
36910
38738
  msgstr "Couverture nuageuse : {current}. Passer à {next}"
@@ -36914,7 +38742,7 @@ msgstr "Couverture nuageuse : {current}. Passer à {next}"
36914
38742
  # AI-Provider: claude-code
36915
38743
  # AI-Model: claude-opus-5-5
36916
38744
  # English: "Cycle cloud cover"
36917
- #: packages/editor/src/components/viewer/sky-control.tsx
38745
+ #: packages/viewer/src/ui/components/sky-control.tsx
36918
38746
  #, fuzzy
36919
38747
  msgid "viewer.daylight.sky.cycleWeatherTip"
36920
38748
  msgstr "Changer la couverture nuageuse"
@@ -36924,7 +38752,7 @@ msgstr "Changer la couverture nuageuse"
36924
38752
  # AI-Provider: claude-code
36925
38753
  # AI-Model: claude-opus-5-5
36926
38754
  # English: "Follow the clock"
36927
- #: packages/editor/src/components/viewer/sky-control.tsx
38755
+ #: packages/viewer/src/ui/components/sky-control.tsx
36928
38756
  #, fuzzy
36929
38757
  msgid "viewer.daylight.sky.followClock"
36930
38758
  msgstr "Suivre l'horloge"
@@ -36934,7 +38762,7 @@ msgstr "Suivre l'horloge"
36934
38762
  # AI-Provider: claude-code
36935
38763
  # AI-Model: claude-opus-5-5
36936
38764
  # English: "The sun moves with your local clock."
36937
- #: packages/editor/src/components/viewer/sky-control.tsx
38765
+ #: packages/viewer/src/ui/components/sky-control.tsx
36938
38766
  #, fuzzy
36939
38767
  msgid "viewer.daylight.sky.followClockDetail"
36940
38768
  msgstr "Le soleil suit votre horloge locale."
@@ -36944,7 +38772,7 @@ msgstr "Le soleil suit votre horloge locale."
36944
38772
  # AI-Provider: claude-code
36945
38773
  # AI-Model: claude-opus-5-5
36946
38774
  # English: "In viewport"
36947
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
38775
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
36948
38776
  #, fuzzy
36949
38777
  msgid "viewer.daylight.sky.inViewport"
36950
38778
  msgstr "Dans la vue"
@@ -36954,7 +38782,7 @@ msgstr "Dans la vue"
36954
38782
  # AI-Provider: claude-code
36955
38783
  # AI-Model: claude-opus-5-5
36956
38784
  # English: "Follows your local clock. Sun position is approximate."
36957
- #: packages/editor/src/components/viewer/sky-control.tsx
38785
+ #: packages/viewer/src/ui/components/sky-control.tsx
36958
38786
  #, fuzzy
36959
38787
  msgid "viewer.daylight.sky.liveDetail"
36960
38788
  msgstr "Suit votre horloge locale. La position du soleil est approximative."
@@ -36964,7 +38792,7 @@ msgstr "Suit votre horloge locale. La position du soleil est approximative."
36964
38792
  # AI-Provider: claude-code
36965
38793
  # AI-Model: claude-opus-5-5
36966
38794
  # English: "Time & weather"
36967
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
38795
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
36968
38796
  #, fuzzy
36969
38797
  msgid "viewer.daylight.sky.menuItem"
36970
38798
  msgstr "Heure et météo"
@@ -36974,7 +38802,7 @@ msgstr "Heure et météo"
36974
38802
  # AI-Provider: claude-code
36975
38803
  # AI-Model: claude-opus-5-5
36976
38804
  # English: "Time and weather"
36977
- #: packages/editor/src/components/viewer/sky-control.tsx
38805
+ #: packages/viewer/src/ui/components/sky-control.tsx
36978
38806
  #, fuzzy
36979
38807
  msgid "viewer.daylight.sky.open"
36980
38808
  msgstr "Heure et météo"
@@ -36984,7 +38812,7 @@ msgstr "Heure et météo"
36984
38812
  # AI-Provider: claude-code
36985
38813
  # AI-Model: claude-opus-5-5
36986
38814
  # English: "Reset"
36987
- #: packages/editor/src/components/viewer/sky-control.tsx
38815
+ #: packages/viewer/src/ui/components/sky-control.tsx
36988
38816
  #, fuzzy
36989
38817
  msgid "viewer.daylight.sky.reset"
36990
38818
  msgstr "Réinitialiser"
@@ -36994,7 +38822,7 @@ msgstr "Réinitialiser"
36994
38822
  # AI-Provider: claude-code
36995
38823
  # AI-Model: claude-opus-5-5
36996
38824
  # English: "Light and weather for this view"
36997
- #: packages/editor/src/components/viewer/sky-control.tsx
38825
+ #: packages/viewer/src/ui/components/sky-control.tsx
36998
38826
  #, fuzzy
36999
38827
  msgid "viewer.daylight.sky.subtitle"
37000
38828
  msgstr "Lumière et météo de cette vue"
@@ -37004,7 +38832,7 @@ msgstr "Lumière et météo de cette vue"
37004
38832
  # AI-Provider: claude-code
37005
38833
  # AI-Model: claude-opus-5-5
37006
38834
  # English: "Sunrise"
37007
- #: packages/editor/src/components/viewer/sky-control.tsx
38835
+ #: packages/viewer/src/ui/components/sky-control.tsx
37008
38836
  #, fuzzy
37009
38837
  msgid "viewer.daylight.sky.sunrise"
37010
38838
  msgstr "Lever"
@@ -37014,7 +38842,7 @@ msgstr "Lever"
37014
38842
  # AI-Provider: claude-code
37015
38843
  # AI-Model: claude-opus-5-5
37016
38844
  # English: "Sunset"
37017
- #: packages/editor/src/components/viewer/sky-control.tsx
38845
+ #: packages/viewer/src/ui/components/sky-control.tsx
37018
38846
  #, fuzzy
37019
38847
  msgid "viewer.daylight.sky.sunset"
37020
38848
  msgstr "Coucher"
@@ -37024,7 +38852,7 @@ msgstr "Coucher"
37024
38852
  # AI-Provider: claude-code
37025
38853
  # AI-Model: claude-opus-5-5
37026
38854
  # English: "Sky"
37027
- #: packages/editor/src/components/viewer/sky-control.tsx
38855
+ #: packages/viewer/src/ui/components/sky-control.tsx
37028
38856
  #, fuzzy
37029
38857
  msgid "viewer.daylight.sky.title"
37030
38858
  msgstr "Ciel"
@@ -37034,8 +38862,8 @@ msgstr "Ciel"
37034
38862
  # AI-Provider: claude-code
37035
38863
  # AI-Model: claude-opus-5-5
37036
38864
  # English: "Blue hour"
37037
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
37038
- #: packages/editor/src/components/viewer/sky-control.tsx
38865
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
38866
+ #: packages/viewer/src/ui/components/sky-control.tsx
37039
38867
  #, fuzzy
37040
38868
  msgid "viewer.daylight.time.blue"
37041
38869
  msgstr "Heure bleue"
@@ -37045,8 +38873,8 @@ msgstr "Heure bleue"
37045
38873
  # AI-Provider: claude-code
37046
38874
  # AI-Model: claude-opus-5-5
37047
38875
  # English: "Golden hour"
37048
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
37049
- #: packages/editor/src/components/viewer/sky-control.tsx
38876
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
38877
+ #: packages/viewer/src/ui/components/sky-control.tsx
37050
38878
  #, fuzzy
37051
38879
  msgid "viewer.daylight.time.golden"
37052
38880
  msgstr "Heure dorée"
@@ -37056,8 +38884,8 @@ msgstr "Heure dorée"
37056
38884
  # AI-Provider: claude-code
37057
38885
  # AI-Model: claude-opus-5-5
37058
38886
  # English: "Midday"
37059
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
37060
- #: packages/editor/src/components/viewer/sky-control.tsx
38887
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
38888
+ #: packages/viewer/src/ui/components/sky-control.tsx
37061
38889
  #, fuzzy
37062
38890
  msgid "viewer.daylight.time.midday"
37063
38891
  msgstr "Midi"
@@ -37067,8 +38895,8 @@ msgstr "Midi"
37067
38895
  # AI-Provider: claude-code
37068
38896
  # AI-Model: claude-opus-5-5
37069
38897
  # English: "Night"
37070
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
37071
- #: packages/editor/src/components/viewer/sky-control.tsx
38898
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
38899
+ #: packages/viewer/src/ui/components/sky-control.tsx
37072
38900
  #, fuzzy
37073
38901
  msgid "viewer.daylight.time.night"
37074
38902
  msgstr "Nuit"
@@ -37078,8 +38906,8 @@ msgstr "Nuit"
37078
38906
  # AI-Provider: claude-code
37079
38907
  # AI-Model: claude-opus-5-5
37080
38908
  # English: "Time of day"
37081
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
37082
- #: packages/editor/src/components/viewer/sky-control.tsx
38909
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
38910
+ #: packages/viewer/src/ui/components/sky-control.tsx
37083
38911
  #, fuzzy
37084
38912
  msgid "viewer.daylight.time.title"
37085
38913
  msgstr "Moment de la journée"
@@ -37089,8 +38917,8 @@ msgstr "Moment de la journée"
37089
38917
  # AI-Provider: claude-code
37090
38918
  # AI-Model: claude-opus-5-5
37091
38919
  # English: "Clear"
37092
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
37093
- #: packages/editor/src/components/viewer/sky-control.tsx
38920
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
38921
+ #: packages/viewer/src/ui/components/sky-control.tsx
37094
38922
  #, fuzzy
37095
38923
  msgid "viewer.daylight.weather.clear"
37096
38924
  msgstr "Dégagé"
@@ -37100,8 +38928,8 @@ msgstr "Dégagé"
37100
38928
  # AI-Provider: claude-code
37101
38929
  # AI-Model: claude-opus-5-5
37102
38930
  # English: "Cloudy"
37103
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
37104
- #: packages/editor/src/components/viewer/sky-control.tsx
38931
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
38932
+ #: packages/viewer/src/ui/components/sky-control.tsx
37105
38933
  #, fuzzy
37106
38934
  msgid "viewer.daylight.weather.cloudy"
37107
38935
  msgstr "Nuageux"
@@ -37111,8 +38939,8 @@ msgstr "Nuageux"
37111
38939
  # AI-Provider: claude-code
37112
38940
  # AI-Model: claude-opus-5-5
37113
38941
  # English: "Fair"
37114
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
37115
- #: packages/editor/src/components/viewer/sky-control.tsx
38942
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
38943
+ #: packages/viewer/src/ui/components/sky-control.tsx
37116
38944
  #, fuzzy
37117
38945
  msgid "viewer.daylight.weather.fair"
37118
38946
  msgstr "Beau temps"
@@ -37122,8 +38950,8 @@ msgstr "Beau temps"
37122
38950
  # AI-Provider: claude-code
37123
38951
  # AI-Model: claude-opus-5-5
37124
38952
  # English: "Overcast"
37125
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
37126
- #: packages/editor/src/components/viewer/sky-control.tsx
38953
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
38954
+ #: packages/viewer/src/ui/components/sky-control.tsx
37127
38955
  #, fuzzy
37128
38956
  msgid "viewer.daylight.weather.overcast"
37129
38957
  msgstr "Couvert"
@@ -37133,7 +38961,7 @@ msgstr "Couvert"
37133
38961
  # AI-Provider: claude-code
37134
38962
  # AI-Model: claude-opus-5-5
37135
38963
  # English: "Weather"
37136
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
38964
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
37137
38965
  #, fuzzy
37138
38966
  msgid "viewer.daylight.weather.title"
37139
38967
  msgstr "Météo"
@@ -37141,63 +38969,63 @@ msgstr "Météo"
37141
38969
  # Source-Hash: 14622745dbf93f4c
37142
38970
  # Review: human
37143
38971
  # English: "Camera"
37144
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
38972
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37145
38973
  msgid "viewer.display.camera"
37146
38974
  msgstr "Caméra"
37147
38975
 
37148
38976
  # Source-Hash: d3d478fa6c6d7ddc
37149
38977
  # Review: human
37150
38978
  # English: "Colored"
37151
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
38979
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37152
38980
  msgid "viewer.display.colored"
37153
38981
  msgstr "En couleur"
37154
38982
 
37155
38983
  # Source-Hash: 82b74c4f5ef43336
37156
38984
  # Review: human
37157
38985
  # English: "Colors"
37158
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
38986
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37159
38987
  msgid "viewer.display.colors"
37160
38988
  msgstr "Couleurs"
37161
38989
 
37162
38990
  # Source-Hash: 027bbc8b7287c06a
37163
38991
  # Review: human
37164
38992
  # English: "Edges"
37165
- #: packages/editor/src/components/viewer/render-settings-menu.tsx
38993
+ #: packages/viewer/src/ui/components/render-settings-menu.tsx
37166
38994
  msgid "viewer.display.edges.title"
37167
38995
  msgstr "Arêtes"
37168
38996
 
37169
38997
  # Source-Hash: ecde2f7c26914be3
37170
38998
  # Review: human
37171
38999
  # English: "Monochrome"
37172
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39000
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37173
39001
  msgid "viewer.display.monochrome"
37174
39002
  msgstr "Monochrome"
37175
39003
 
37176
39004
  # Source-Hash: ed59dd8ce7797a66
37177
39005
  # Review: human
37178
39006
  # English: "Orthographic"
37179
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39007
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37180
39008
  msgid "viewer.display.orthographic"
37181
39009
  msgstr "Orthographique"
37182
39010
 
37183
39011
  # Source-Hash: 316e25993ff72b88
37184
39012
  # Review: human
37185
39013
  # English: "Perspective"
37186
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39014
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37187
39015
  msgid "viewer.display.perspective"
37188
39016
  msgstr "Perspective"
37189
39017
 
37190
39018
  # Source-Hash: 4c6bcb30b40047fc
37191
39019
  # Review: human
37192
39020
  # English: "Shadows"
37193
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39021
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37194
39022
  msgid "viewer.display.shadows"
37195
39023
  msgstr "Ombres"
37196
39024
 
37197
39025
  # Source-Hash: d0db46f206a88e2e
37198
39026
  # Review: human
37199
39027
  # English: "Display settings"
37200
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39028
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37201
39029
  msgid "viewer.display.title"
37202
39030
  msgstr "Paramètres d’affichage"
37203
39031
 
@@ -37206,7 +39034,7 @@ msgstr "Paramètres d’affichage"
37206
39034
  # AI-Provider: claude-code
37207
39035
  # AI-Model: claude-opus-5-5
37208
39036
  # English: "Drone: {state}"
37209
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39037
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37210
39038
  #, fuzzy
37211
39039
  msgid "viewer.drone.label"
37212
39040
  msgstr "Drone : {state}"
@@ -37214,252 +39042,252 @@ msgstr "Drone : {state}"
37214
39042
  # Source-Hash: 2bdf83801d4a40af
37215
39043
  # Review: human
37216
39044
  # English: "Align view to north"
37217
- #: packages/editor/src/components/viewer/floorplan-compass-button.tsx
39045
+ #: packages/viewer/src/ui/components/floorplan-compass-button.tsx
37218
39046
  msgid "viewer.floorplan.alignNorth"
37219
39047
  msgstr "Orienter la vue vers le nord"
37220
39048
 
37221
39049
  # Source-Hash: 286a757d8b52bb02
37222
39050
  # Review: human
37223
39051
  # English: "No floor plans are available for this scene."
37224
- #: packages/editor/src/components/viewer/floorplan-preview.tsx
39052
+ #: packages/viewer/src/ui/floorplan/floorplan-preview.tsx
37225
39053
  msgid "viewer.floorplan.empty"
37226
39054
  msgstr "Aucun plan d’étage n’est disponible pour cette scène."
37227
39055
 
37228
39056
  # Source-Hash: bf63c679ab94dbcd
37229
39057
  # Review: human
37230
39058
  # English: "Fit floor plan"
37231
- #: packages/editor/src/components/viewer/floorplan-preview.tsx
39059
+ #: packages/viewer/src/ui/floorplan/floorplan-preview.tsx
37232
39060
  msgid "viewer.floorplan.fit"
37233
39061
  msgstr "Ajuster le plan"
37234
39062
 
37235
39063
  # Source-Hash: d7148fa065bc709b
37236
39064
  # Review: human
37237
39065
  # English: "Floor"
37238
- #: packages/editor/src/components/viewer/floorplan-preview.tsx
39066
+ #: packages/viewer/src/ui/floorplan/floorplan-preview.tsx
37239
39067
  msgid "viewer.floorplan.floor"
37240
39068
  msgstr "Niveau"
37241
39069
 
37242
39070
  # Source-Hash: fee6203bb9046929
37243
39071
  # Review: human
37244
39072
  # English: "Floor plan"
37245
- #: packages/editor/src/components/viewer/floorplan-preview.tsx
39073
+ #: packages/viewer/src/ui/floorplan/floorplan-preview.tsx
37246
39074
  msgid "viewer.floorplan.floorPlan"
37247
39075
  msgstr "Plan d’étage"
37248
39076
 
37249
39077
  # Source-Hash: 28b255b7bf5f1084
37250
39078
  # Review: human
37251
39079
  # English: "{floor} 2D view"
37252
- #: packages/editor/src/components/viewer/floorplan-preview.tsx
39080
+ #: packages/viewer/src/ui/floorplan/floorplan-preview.tsx
37253
39081
  msgid "viewer.floorplan.viewLabel"
37254
39082
  msgstr "Vue 2D — {floor}"
37255
39083
 
37256
39084
  # Source-Hash: d17804412f8dd081
37257
39085
  # Review: human
37258
39086
  # English: "Zoom in"
37259
- #: packages/editor/src/components/viewer/floorplan-preview.tsx
39087
+ #: packages/viewer/src/ui/floorplan/floorplan-preview.tsx
37260
39088
  msgid "viewer.floorplan.zoomIn"
37261
39089
  msgstr "Zoom avant"
37262
39090
 
37263
39091
  # Source-Hash: 23b012a283b2c14a
37264
39092
  # Review: human
37265
39093
  # English: "Zoom out"
37266
- #: packages/editor/src/components/viewer/floorplan-preview.tsx
39094
+ #: packages/viewer/src/ui/floorplan/floorplan-preview.tsx
37267
39095
  msgid "viewer.floorplan.zoomOut"
37268
39096
  msgstr "Zoom arrière"
37269
39097
 
37270
39098
  # Source-Hash: 7ceade8f25b58fe9
37271
39099
  # Review: human
37272
39100
  # English: "Back"
37273
- #: packages/editor/src/components/viewer/viewer-scene-header.tsx
39101
+ #: packages/viewer/src/ui/components/viewer-scene-header.tsx
37274
39102
  msgid "viewer.header.back"
37275
39103
  msgstr "Retour"
37276
39104
 
37277
39105
  # Source-Hash: cc3d601d59e2e26c
37278
39106
  # Review: human
37279
39107
  # English: "Levels"
37280
- #: packages/editor/src/components/viewer/viewer-scene-header.tsx
39108
+ #: packages/viewer/src/ui/components/viewer-scene-header.tsx
37281
39109
  msgid "viewer.header.levels"
37282
39110
  msgstr "Niveaux"
37283
39111
 
37284
39112
  # Source-Hash: 3e7408ed44676176
37285
39113
  # Review: human
37286
39114
  # English: "Rooms"
37287
- #: packages/editor/src/components/viewer/viewer-scene-header.tsx
39115
+ #: packages/viewer/src/ui/components/viewer-scene-header.tsx
37288
39116
  msgid "viewer.header.rooms"
37289
39117
  msgstr "Pièces"
37290
39118
 
37291
39119
  # Source-Hash: 170b2049ef0f9131
37292
39120
  # Review: human
37293
39121
  # English: "Selection"
37294
- #: packages/editor/src/components/viewer/viewer-scene-header.tsx
39122
+ #: packages/viewer/src/ui/components/viewer-scene-header.tsx
37295
39123
  msgid "viewer.header.selection"
37296
39124
  msgstr "Sélection"
37297
39125
 
37298
39126
  # Source-Hash: b404dded35241274
37299
39127
  # Review: human
37300
39128
  # English: "Units"
37301
- #: packages/editor/src/components/viewer/viewer-scene-header.tsx
39129
+ #: packages/viewer/src/ui/components/viewer-scene-header.tsx
37302
39130
  msgid "viewer.header.units"
37303
39131
  msgstr "Unités"
37304
39132
 
37305
39133
  # Source-Hash: 6547a4c0c368042a
37306
39134
  # Review: human
37307
39135
  # English: "Untitled"
37308
- #: packages/editor/src/components/viewer/viewer-scene-header.tsx
39136
+ #: packages/viewer/src/ui/components/viewer-scene-header.tsx
37309
39137
  msgid "viewer.header.untitled"
37310
39138
  msgstr "Sans titre"
37311
39139
 
37312
39140
  # Source-Hash: 665db49a26f81425
37313
39141
  # Review: human
37314
39142
  # English: "Zones"
37315
- #: packages/editor/src/components/viewer/viewer-scene-header.tsx
39143
+ #: packages/viewer/src/ui/components/viewer-scene-header.tsx
37316
39144
  msgid "viewer.header.zones"
37317
39145
  msgstr "Zones"
37318
39146
 
37319
39147
  # Source-Hash: be12f8788f1f0a05
37320
39148
  # Review: human
37321
39149
  # English: "Exploded"
37322
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39150
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37323
39151
  msgid "viewer.levels.exploded"
37324
39152
  msgstr "Éclatés"
37325
39153
 
37326
39154
  # Source-Hash: 4bf4a6861d7d633e
37327
39155
  # Review: human
37328
39156
  # English: "Levels: {mode}"
37329
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39157
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37330
39158
  msgid "viewer.levels.label"
37331
39159
  msgstr "Niveaux : {mode}"
37332
39160
 
37333
39161
  # Source-Hash: 387082cd5f118bed
37334
39162
  # Review: human
37335
39163
  # English: "Manual"
37336
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39164
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37337
39165
  msgid "viewer.levels.manual"
37338
39166
  msgstr "Manuel"
37339
39167
 
37340
39168
  # Source-Hash: e9f59b513f2f45ac
37341
39169
  # Review: human
37342
39170
  # English: "Solo"
37343
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39171
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37344
39172
  msgid "viewer.levels.solo"
37345
39173
  msgstr "Isolé"
37346
39174
 
37347
39175
  # Source-Hash: c203c84eee18c0f6
37348
39176
  # Review: human
37349
39177
  # English: "Stacked"
37350
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39178
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37351
39179
  msgid "viewer.levels.stacked"
37352
39180
  msgstr "Superposés"
37353
39181
 
37354
39182
  # Source-Hash: 9dd21ca47cffa3b8
37355
39183
  # Review: human
37356
39184
  # English: "Viewer layout"
37357
- #: packages/editor/src/components/viewer/viewer-stage-switcher.tsx
39185
+ #: packages/viewer/src/ui/components/viewer-stage-switcher.tsx
37358
39186
  msgid "viewer.stage.layout"
37359
39187
  msgstr "Disposition des vues"
37360
39188
 
37361
39189
  # Source-Hash: e4cd64b1680ac0d2
37362
39190
  # Review: human
37363
39191
  # English: "Split"
37364
- #: packages/editor/src/components/viewer/viewer-stage-switcher.tsx
39192
+ #: packages/viewer/src/ui/components/viewer-stage-switcher.tsx
37365
39193
  msgid "viewer.stage.split"
37366
39194
  msgstr "Partagé"
37367
39195
 
37368
39196
  # Source-Hash: f14b89d713d2528a
37369
39197
  # Review: human
37370
39198
  # English: "Blueprint"
37371
- #: packages/editor/src/i18n/scene-theme-name.ts
39199
+ #: packages/viewer/src/ui/lib/scene-theme-name.ts
37372
39200
  msgid "viewer.theme.blueprint"
37373
39201
  msgstr "Plan"
37374
39202
 
37375
39203
  # Source-Hash: 142bcb2841f423c5
37376
39204
  # Review: human
37377
39205
  # English: "Mediterranean"
37378
- #: packages/editor/src/i18n/scene-theme-name.ts
39206
+ #: packages/viewer/src/ui/lib/scene-theme-name.ts
37379
39207
  msgid "viewer.theme.mediterranean"
37380
39208
  msgstr "Méditerranéen"
37381
39209
 
37382
39210
  # Source-Hash: b399942ec5d7e1ba
37383
39211
  # Review: human
37384
39212
  # English: "Night"
37385
- #: packages/editor/src/i18n/scene-theme-name.ts
39213
+ #: packages/viewer/src/ui/lib/scene-theme-name.ts
37386
39214
  msgid "viewer.theme.night"
37387
39215
  msgstr "Nuit"
37388
39216
 
37389
39217
  # Source-Hash: f512d1b947b8ae5a
37390
39218
  # Review: human
37391
39219
  # English: "Overcast"
37392
- #: packages/editor/src/i18n/scene-theme-name.ts
39220
+ #: packages/viewer/src/ui/lib/scene-theme-name.ts
37393
39221
  msgid "viewer.theme.overcast"
37394
39222
  msgstr "Ciel couvert"
37395
39223
 
37396
39224
  # Source-Hash: 583542b3bc837192
37397
39225
  # Review: human
37398
39226
  # English: "Paper"
37399
- #: packages/editor/src/i18n/scene-theme-name.ts
39227
+ #: packages/viewer/src/ui/lib/scene-theme-name.ts
37400
39228
  msgid "viewer.theme.paper"
37401
39229
  msgstr "Papier"
37402
39230
 
37403
39231
  # Source-Hash: 7abc2dc6e39b1747
37404
39232
  # Review: human
37405
39233
  # English: "Studio"
37406
- #: packages/editor/src/i18n/scene-theme-name.ts
39234
+ #: packages/viewer/src/ui/lib/scene-theme-name.ts
37407
39235
  msgid "viewer.theme.studio"
37408
39236
  msgstr "Studio"
37409
39237
 
37410
39238
  # Source-Hash: efe94d3ec8d8c44e
37411
39239
  # Review: human
37412
39240
  # English: "Sunset"
37413
- #: packages/editor/src/i18n/scene-theme-name.ts
39241
+ #: packages/viewer/src/ui/lib/scene-theme-name.ts
37414
39242
  msgid "viewer.theme.sunset"
37415
39243
  msgstr "Coucher de soleil"
37416
39244
 
37417
39245
  # Source-Hash: 82720864e5034398
37418
39246
  # Review: human
37419
39247
  # English: "Scene theme"
37420
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39248
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37421
39249
  msgid "viewer.theme.title"
37422
39250
  msgstr "Ambiance"
37423
39251
 
37424
39252
  # Source-Hash: 4c10ea0aa0e2ea41
37425
39253
  # Review: human
37426
39254
  # English: "Twilight"
37427
- #: packages/editor/src/i18n/scene-theme-name.ts
39255
+ #: packages/viewer/src/ui/lib/scene-theme-name.ts
37428
39256
  msgid "viewer.theme.twilight"
37429
39257
  msgstr "Crépuscule"
37430
39258
 
37431
39259
  # Source-Hash: f9592fb0672740c0
37432
39260
  # Review: human
37433
39261
  # English: "Verdant"
37434
- #: packages/editor/src/i18n/scene-theme-name.ts
39262
+ #: packages/viewer/src/ui/lib/scene-theme-name.ts
37435
39263
  msgid "viewer.theme.verdant"
37436
39264
  msgstr "Verdoyant"
37437
39265
 
37438
39266
  # Source-Hash: 892d5dd34372028b
37439
39267
  # Review: human
37440
39268
  # English: "Guides"
37441
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39269
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37442
39270
  msgid "viewer.visibility.guides"
37443
39271
  msgstr "Repères"
37444
39272
 
37445
39273
  # Source-Hash: 3260bfa69cca50e5
37446
39274
  # Review: human
37447
39275
  # English: "Scans"
37448
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39276
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37449
39277
  msgid "viewer.visibility.scans"
37450
39278
  msgstr "Relevés 3D"
37451
39279
 
37452
39280
  # Source-Hash: 2cefbb554eadbb6e
37453
39281
  # Review: human
37454
39282
  # English: "Visibility"
37455
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39283
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37456
39284
  msgid "viewer.visibility.title"
37457
39285
  msgstr "Visibilité"
37458
39286
 
37459
39287
  # Source-Hash: 31afd9dee47ba943
37460
39288
  # Review: human
37461
39289
  # English: "Walkthrough: {state}"
37462
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39290
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37463
39291
  msgid "viewer.walkthrough.label"
37464
39292
  msgstr "Visite : {state}"
37465
39293
 
@@ -37475,27 +39303,27 @@ msgstr "Volets"
37475
39303
  # Source-Hash: 4da8b3678ed77b45
37476
39304
  # Review: human
37477
39305
  # English: "Cutaway"
37478
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39306
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37479
39307
  msgid "viewer.walls.cutaway"
37480
39308
  msgstr "Vue en coupe"
37481
39309
 
37482
39310
  # Source-Hash: 131bac2467f4fdf6
37483
39311
  # Review: human
37484
39312
  # English: "Full height"
37485
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39313
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37486
39314
  msgid "viewer.walls.fullHeight"
37487
39315
  msgstr "Pleine hauteur"
37488
39316
 
37489
39317
  # Source-Hash: 32f3d058cf2526d2
37490
39318
  # Review: human
37491
39319
  # English: "Walls: {mode}"
37492
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39320
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37493
39321
  msgid "viewer.walls.label"
37494
39322
  msgstr "Murs : {mode}"
37495
39323
 
37496
39324
  # Source-Hash: 803532407fb5962b
37497
39325
  # Review: human
37498
39326
  # English: "Low"
37499
- #: packages/editor/src/components/viewer/viewer-controls-bar.tsx
39327
+ #: packages/viewer/src/ui/components/viewer-controls-bar.tsx
37500
39328
  msgid "viewer.walls.low"
37501
39329
  msgstr "Bas"