diff --git a/apps/editor/components/build-tab.tsx b/apps/editor/components/build-tab.tsx
index c829be78af..bfc8ced4ed 100644
--- a/apps/editor/components/build-tab.tsx
+++ b/apps/editor/components/build-tab.tsx
@@ -219,9 +219,13 @@ export function BuildTab() {
<>
{buildTypes
- .filter((type) =>
- i18n._(type.label).toLocaleLowerCase().includes(buildSearch.toLocaleLowerCase()),
- )
+ .filter((type) => {
+ // The English name matches too, so shared or remembered terms work in any UI language.
+ const query = buildSearch.toLocaleLowerCase()
+ return [i18n._(type.label), type.label.message ?? ''].some((name) =>
+ name.toLocaleLowerCase().includes(query),
+ )
+ })
.map(renderTile)}
diff --git a/i18n/literal-baseline.json b/i18n/literal-baseline.json
index 2c702b21c9..c1eb8ece46 100644
--- a/i18n/literal-baseline.json
+++ b/i18n/literal-baseline.json
@@ -127,8 +127,7 @@
"Extrusion height"
],
"packages/editor/src/components/editor-2d/floorplan-open-wall-ends-layer.tsx": [
- "Wall end not joined",
- "{?}{opacity:0.4}"
+ "Wall end not joined"
],
"packages/editor/src/components/editor-2d/renderers/floorplan-dimension-edit-overlay.tsx": [
"Cannot read \"{?}\""
@@ -365,9 +364,6 @@
"Undo anyway",
"You've changed the scene since. Undoing also removes those changes."
],
- "packages/editor/src/components/point-ask/point-ask-layer.tsx": [
- "{?}{?}\n.pa-layer[data-calm] .pa-hlabel{transform:none;transition-property:opacity}\n.pa-layer[data-calm] .pa-send,.pa-layer[data-calm] .pa-dict,.pa-layer[data-calm] .pa-btn,.pa-layer[data-calm] .pa-hold{transform:none;transition-property:opacity,color,background}\n.pa-layer[data-calm] .pa-pk,.pa-layer[data-calm] .pa-edgemark{transition:none}\n"
- ],
"packages/editor/src/components/procedural-items/inspector.tsx": [
"Adjust design",
"Back",
@@ -1088,9 +1084,6 @@
"Update snapshot",
"View snapshot"
],
- "packages/editor/src/components/ui/sidebar/panels/site-panel/tree-node-drag.tsx": [
- "* { cursor: grabbing !important; }"
- ],
"packages/editor/src/components/ui/sidebar/panels/site-panel/unit-tree-node.tsx": [
"Delete unit",
"Focused",
diff --git a/packages/editor/src/components/ui/action-menu/view-toggles.tsx b/packages/editor/src/components/ui/action-menu/view-toggles.tsx
index f36210e019..f525d49ecb 100644
--- a/packages/editor/src/components/ui/action-menu/view-toggles.tsx
+++ b/packages/editor/src/components/ui/action-menu/view-toggles.tsx
@@ -936,7 +936,7 @@ function ReferenceFloorControl() {
)}
/>
{levelName}
- {index + 1}{' '}{i18n._({ id: 'editor.actionMenu.viewToggles.below', message: 'below' })}
+ {i18n._({ id: 'editor.actionMenu.viewToggles.levelsBelow', message: '{count} below', values: { count: index + 1 } })}
)
})}
diff --git a/packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx b/packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
index 50e46073f4..e3d28907a3 100644
--- a/packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+++ b/packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
@@ -372,7 +372,25 @@ function PaintScopeChip() {
const paintMode = usePaintRegionMode((s) => s.mode)
const paintEraser = paintMode === 'erase'
const picking = paintMode === 'pick'
- const verb = picking ? 'Pick' : paintEraser ? 'Erase' : 'Paint'
+ const verb = picking ? 'pick' : paintEraser ? 'erase' : 'paint'
+ const scopeText = (scope: PaintScope) =>
+ ({
+ pick: i18n._({
+ id: 'editor.helpers.contextualHelperPanel.pickScope',
+ message: 'Pick: {scope}',
+ values: { scope: paintScopeLabel(scope, paintHover!) },
+ }),
+ erase: i18n._({
+ id: 'editor.helpers.contextualHelperPanel.eraseScope',
+ message: 'Erase: {scope}',
+ values: { scope: paintScopeLabel(scope, paintHover!) },
+ }),
+ paint: i18n._({
+ id: 'editor.helpers.contextualHelperPanel.paintScope',
+ message: 'Paint: {scope}',
+ values: { scope: paintScopeLabel(scope, paintHover!) },
+ }),
+ })[verb]
// Nothing to paint with yet (no material picked, not erasing) → the first step
// is choosing a material, so say that before anything about scope or hovering.
@@ -408,19 +426,27 @@ function PaintScopeChip() {
return (
)
}
return (
cyclePaintScope()}
shortcut="Shift"
- tooltip={i18n._({ id: 'editor.helpers.contextualHelperPanel.verbScopeClickOrPressShift', message: '{verb} scope — click or press Shift to cycle', values: { verb } })}
+ tooltip={
+ paintEraser
+ ? i18n._({ id: 'editor.helpers.contextualHelperPanel.eraseScopeClickOrPressShift', message: 'Erase scope — click or press Shift to cycle' })
+ : i18n._({ id: 'editor.helpers.contextualHelperPanel.paintScopeClickOrPressShift', message: 'Paint scope — click or press Shift to cycle' })
+ }
/>
)
}
diff --git a/packages/editor/src/i18n/locales/en-XA/messages.ts b/packages/editor/src/i18n/locales/en-XA/messages.ts
index 8e299158fa..c81cb6a2d1 100644
--- a/packages/editor/src/i18n/locales/en-XA/messages.ts
+++ b/packages/editor/src/i18n/locales/en-XA/messages.ts
@@ -1 +1 @@
-/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"app.appShell.pascalHome\":[\"[Þášçáļ ĥöɱé ~~~]\"],\"app.buildTab.addGate\":[\"[Åðð Ĝáţé ~~~]\"],\"app.buildTab.addOpenPassage\":[\"[Åðð Öþéñ Þáššáĝé ~~~~~]\"],\"app.buildTab.addToRooms\":[\"[Åðð ţö ŕööɱš ~~~]\"],\"app.buildTab.allBuildTools\":[\"[← Åļļ ƀûîļð ţööļš ~~~~]\"],\"app.buildTab.chooseGateOrOpenPassageThen\":[\"[Çĥööšé Ĝáţé öŕ Öþéñ Þáššáĝé, ţĥéñ çļîçķ îţš þöšîţîöñ öñ áñý ƒéñçé. Ƒîñð þļáçéð ĝáţéš áñð öþéñîñĝš ûñðéŕ ţĥéîŕ ƒéñçé îñ ţĥé šçéñé ĝŕáþĥ. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~]\"],\"app.buildTab.clickALinesetToLayThe\":[\"[Çļîçķ á ļîñéšéţ ţö ļáý ţĥé ļîñé ƀéšîðé îţ. ~~~~~~~~~~]\"],\"app.buildTab.doubleGate\":[\"[Ðöûƀļé ĝáţé ~~~]\"],\"app.buildTab.featuresExtensions\":[\"[Ƒéáţûŕéš & éẋţéñšîöñš ~~~~~~]\"],\"app.buildTab.fenceFeatures\":[\"[Ƒéñçé ƒéáţûŕéš ~~~~]\"],\"app.buildTab.followLineset\":[\"[Ƒöļļöŵ ļîñéšéţ ~~~~]\"],\"app.buildTab.gate\":[\"[Ĝáţé ~~]\"],\"app.buildTab.gateStyle\":[\"[Ĝáţé šţýļé ~~~]\"],\"app.buildTab.horizontalBoards\":[\"[Ĥöŕîžöñţáļ ƀöáŕðš ~~~~~]\"],\"app.buildTab.hoverAFenceToPreviewClick\":[\"[Ĥöṽéŕ á ƒéñçé ţö þŕéṽîéŵ. Çļîçķ ţö þļáçé. Éšç çáñçéļš. Ļéáṽé ŕööɱ ƀéţŵééñ öþéñîñĝš. ~~~~~~~~~~~~~~~~~~~~]\"],\"app.buildTab.leaves\":[\"[Ļéáṽéš ~~]\"],\"app.buildTab.liquidLine\":[\"[Ļîǫûîð Ļîñé ~~~]\"],\"app.buildTab.matchFenceStyle\":[\"[Ṁáţçĥ ƒéñçé šţýļé ~~~~~]\"],\"app.buildTab.mep\":[\"[ṀÉÞ ~]\"],\"app.buildTab.off\":[\"[Öƒƒ ~]\"],\"app.buildTab.on\":[\"[Öñ ~]\"],\"app.buildTab.openRails\":[\"[Öþéñ ŕáîļš ~~~]\"],\"app.buildTab.opening\":[\"[Öþéñîñĝ ~~~]\"],\"app.buildTab.openingWidthM\":[\"[Öþéñîñĝ ŵîðţĥ (ɱ) ~~~~]\"],\"app.buildTab.outdoor\":[\"[Öûţðööŕ ~~~]\"],\"app.buildTab.picket\":[\"[Þîçķéţ ~~]\"],\"app.buildTab.roofType\":[\"[Ŕööƒ ţýþé ~~~]\"],\"app.buildTab.roomsAlreadyCreateTheirFloorAnd\":[\"[Ŕööɱš áļŕéáðý çŕéáţé ţĥéîŕ ƒļööŕ áñð çéîļîñĝ. Ûšé ţĥéšé ƒöŕ þļáţƒöŕɱš áñð öñé-öƒƒ šţŕûçţûŕé. ~~~~~~~~~~~~~~~~~~~~~~~]\"],\"app.buildTab.searchBuildToolsAndKitchenItems\":[\"[Šéáŕçĥ ƀûîļð ţööļš áñð ķîţçĥéñ îţéɱš ~~~~~~~~~~]\"],\"app.buildTab.searchToolsFridgeSink\":[\"[Šéáŕçĥ ţööļš, ƒŕîðĝé, šîñķ… ~~~~~~~]\"],\"app.buildTab.selectACurvedWallToMatch\":[\"[Šéļéçţ á çûŕṽéð ŵáļļ ţö ɱáţçĥ îţš ŕáðîûš áñð áŕç. ~~~~~~~~~~~~]\"],\"app.buildTab.singleGate\":[\"[Šîñĝļé ĝáţé ~~~]\"],\"app.buildTab.slabCeilingColumn\":[\"[Šļáƀ, çéîļîñĝ, çöļûɱñ… ~~~~~~]\"],\"app.buildTab.solidPrivacy\":[\"[Šöļîð þŕîṽáçý ~~~~]\"],\"app.buildTab.traceALineAlongsideAnExisting\":[\"[Ţŕáçé á ļîñé áļöñĝšîðé áñ éẋîšţîñĝ ļîñéšéţ (Ƒ). ~~~~~~~~~~~~]\"],\"app.buildTab.verticalSlats\":[\"[Ṽéŕţîçáļ šļáţš ~~~~]\"],\"app.editorNavbar.allProjects\":[\"[Åļļ þŕöĵéçţš ~~~~]\"],\"app.editorNavbar.preview\":[\"[Þŕéṽîéŵ ~~~]\"],\"app.editorNavbar.projectName\":[\"[Þŕöĵéçţ ñáɱé ~~~~]\"],\"app.editorNavbar.renameProject\":[\"[Ŕéñáɱé þŕöĵéçţ ~~~~]\"],\"app.editorNavbar.share\":[\"[Šĥáŕé ~~]\"],\"app.kitchenBrowser.addLabel\":[\"[Åðð \",[\"label\"],\" ~]\"],\"app.kitchenBrowser.addToKitchen\":[\"[Åðð ţö ķîţçĥéñ ~~~~]\"],\"app.kitchenBrowser.chooseAnItemThenClickTo\":[\"[Çĥööšé áñ îţéɱ, ţĥéñ çļîçķ ţö þļáçé îţ. Åþþļîáñçéš îñçļûðé ţĥéîŕ çáƀîñéţŕý. ~~~~~~~~~~~~~~~~~~~]\"],\"app.kitchenBrowser.findInThisProjectLength\":[\"[Ƒîñð îñ ţĥîš þŕöĵéçţ · \",[\"length\"],\" ~~~~~~]\"],\"app.kitchenBrowser.findName\":[\"[Ƒîñð \",[\"name\"],\" ~~]\"],\"app.kitchenBrowser.groupAdd\":[\"[Ķîţçĥéñ · Åðð ~~~]\"],\"app.kitchenBrowser.groupInThisProject\":[\"[Ķîţçĥéñ · Îñ ţĥîš þŕöĵéçţ ~~~~~~]\"],\"app.kitchenBrowser.kitchenCabinet\":[\"[Ķîţçĥéñ çáƀîñéţ ~~~~~]\"],\"app.kitchenBrowser.noMatchingKitchenItemsPlacedYet\":[\"[Ñö ɱáţçĥîñĝ ķîţçĥéñ îţéɱš þļáçéð ýéţ. ~~~~~~~~~~]\"],\"app.kitchenBrowser.selectAndShowInScene\":[\"[Šéļéçţ áñð šĥöŵ îñ šçéñé ~~~~~~]\"],\"app.lib.buildPalette.ceiling\":[\"[Çéîļîñĝ ~~~]\"],\"app.lib.buildPalette.column\":[\"[Çöļûɱñ ~~]\"],\"app.lib.buildPalette.door\":[\"[Ðööŕ ~~]\"],\"app.lib.buildPalette.duct\":[\"[Ðûçţ ~~]\"],\"app.lib.buildPalette.dwvPipe\":[\"[ÐŴṼ Þîþé ~~~]\"],\"app.lib.buildPalette.elevator\":[\"[Éļéṽáţöŕ ~~~]\"],\"app.lib.buildPalette.fence\":[\"[Ƒéñçé ~~]\"],\"app.lib.buildPalette.hvacUnit\":[\"[ĤṼÅÇ Ûñîţ ~~~]\"],\"app.lib.buildPalette.kitchen\":[\"[Ķîţçĥéñ ~~~]\"],\"app.lib.buildPalette.lineset\":[\"[Ļîñéšéţ ~~~]\"],\"app.lib.buildPalette.liquidLine\":[\"[Ļîǫûîð Ļîñé ~~~]\"],\"app.lib.buildPalette.mep\":[\"[ṀÉÞ ~]\"],\"app.lib.buildPalette.register\":[\"[Ŕéĝîšţéŕ ~~~]\"],\"app.lib.buildPalette.roof\":[\"[Ŕööƒ ~~]\"],\"app.lib.buildPalette.shelf\":[\"[Šĥéļƒ ~~]\"],\"app.lib.buildPalette.slab\":[\"[Šļáƀ ~~]\"],\"app.lib.buildPalette.spawnPoint\":[\"[Šþáŵñ þöîñţ ~~~]\"],\"app.lib.buildPalette.stairs\":[\"[Šţáîŕš ~~]\"],\"app.lib.buildPalette.terrace\":[\"[Ţéŕŕáçé ~~~]\"],\"app.lib.buildPalette.terrain\":[\"[Ţéŕŕáîñ ~~~]\"],\"app.lib.buildPalette.wall\":[\"[Ŵáļļ ~~]\"],\"app.lib.buildPalette.window\":[\"[Ŵîñðöŵ ~~]\"],\"app.lib.buildPanelModel.addFitting\":[\"[Åðð Ƒîţţîñĝ ~~~]\"],\"app.lib.buildPanelModel.addGate\":[\"[Åðð Ĝáţé ~~~]\"],\"app.lib.buildPanelModel.addOpenPassage\":[\"[Åðð Öþéñ Þáššáĝé ~~~~~]\"],\"app.lib.buildPanelModel.addTrap\":[\"[Åðð Ţŕáþ ~~~]\"],\"app.lib.buildPanelModel.build\":[\"[Ɓûîļð ~~]\"],\"app.lib.buildPanelModel.createFrom\":[\"[Çŕéáţé ƒŕöɱ ~~~]\"],\"app.lib.buildPanelModel.drawTheRoofFootprintWithTwo\":[\"[Ðŕáŵ ţĥé ŕööƒ ƒööţþŕîñţ ŵîţĥ ţŵö çöŕñéŕ çļîçķš. ~~~~~~~~~~~~]\"],\"app.lib.buildPanelModel.duct\":[\"[Ðûçţ ~~]\"],\"app.lib.buildPanelModel.dwvPipe\":[\"[ÐŴṼ Þîþé ~~~]\"],\"app.lib.buildPanelModel.featuresExtensions\":[\"[Ƒéáţûŕéš & éẋţéñšîöñš ~~~~~~]\"],\"app.lib.buildPanelModel.fence\":[\"[Ƒéñçé ~~]\"],\"app.lib.buildPanelModel.followLineset\":[\"[Ƒöļļöŵ ļîñéšéţ ~~~~]\"],\"app.lib.buildPanelModel.gatesOpenings\":[\"[Ĝáţéš & öþéñîñĝš ~~~~]\"],\"app.lib.buildPanelModel.hoverARoomToPreviewIts\":[\"[Ĥöṽéŕ á ŕööɱ ţö þŕéṽîéŵ îţš ƀöûñðáŕý, ţĥéñ çļîçķ ţö þļáçé. ~~~~~~~~~~~~~~]\"],\"app.lib.buildPanelModel.kitchen\":[\"[Ķîţçĥéñ ~~~]\"],\"app.lib.buildPanelModel.mep\":[\"[ṀÉÞ ~]\"],\"app.lib.buildPanelModel.modularCabinet\":[\"[Ṁöðûļáŕ Çáƀîñéţ ~~~~~]\"],\"app.lib.buildPanelModel.off\":[\"[Öƒƒ ~]\"],\"app.lib.buildPanelModel.on\":[\"[Öñ ~]\"],\"app.lib.buildPanelModel.painting\":[\"[Þáîñţîñĝ ~~~]\"],\"app.lib.buildPanelModel.roof\":[\"[Ŕööƒ ~~]\"],\"app.lib.buildPanelModel.roofType\":[\"[Ŕööƒ ţýþé ~~~]\"],\"app.lib.buildPanelModel.toolCount\":[\"[\",[\"count\",\"plural\",{\"one\":[\"#\",\" ţööļ\"],\"other\":[\"#\",\" ţööļš\"]}],\" ~~~]\"],\"app.lib.buildTabState.conical\":[\"[Çöñîçáļ ~~~]\"],\"app.lib.buildTabState.draw\":[\"[Ðŕáŵ ~~]\"],\"app.lib.buildTabState.dutch\":[\"[Ðûţçĥ ~~]\"],\"app.lib.buildTabState.flat\":[\"[Ƒļáţ ~~]\"],\"app.lib.buildTabState.gable\":[\"[Ĝáƀļé ~~]\"],\"app.lib.buildTabState.gambrel\":[\"[Ĝáɱƀŕéļ ~~~]\"],\"app.lib.buildTabState.hip\":[\"[Ĥîþ ~]\"],\"app.lib.buildTabState.mansard\":[\"[Ṁáñšáŕð ~~~]\"],\"app.lib.buildTabState.room\":[\"[Ŕööɱ ~~]\"],\"app.lib.buildTabState.shed\":[\"[Šĥéð ~~]\"],\"app.lib.buildTabState.wall\":[\"[Ŵáļļ ~~]\"],\"app.sharePanel.anyoneWithTheLinkCanView\":[\"[Åñýöñé ŵîţĥ ţĥé ļîñķ çáñ ṽîéŵ ţĥîš þŕöĵéçţ. Ţĥéý çáññöţ éðîţ îţ. ~~~~~~~~~~~~~~~~]\"],\"app.sharePanel.copied\":[\"[Çöþîéð ~~]\"],\"app.sharePanel.copy\":[\"[Çöþý ~~]\"],\"app.sharePanel.couldNotReadTheSharingState\":[\"[Çöûļð ñöţ ŕéáð ţĥé šĥáŕîñĝ šţáţé. ~~~~~~~~~]\"],\"app.sharePanel.couldNotTurnOffThePublic\":[\"[Çöûļð ñöţ ţûŕñ öƒƒ ţĥé þûƀļîç ļîñķ. ~~~~~~~~~]\"],\"app.sharePanel.couldNotTurnOnThePublic\":[\"[Çöûļð ñöţ ţûŕñ öñ ţĥé þûƀļîç ļîñķ. ~~~~~~~~~]\"],\"app.sharePanel.embedCode\":[\"[Éɱƀéð çöðé ~~~]\"],\"app.sharePanel.embedLink\":[\"[Éɱƀéð ļîñķ ~~~]\"],\"app.sharePanel.hideControls\":[\"[Ĥîðé çöñţŕöļš ~~~~]\"],\"app.sharePanel.link\":[\"[Ļîñķ ~~]\"],\"app.sharePanel.onlyThe3dViewNoHeader\":[\"[Öñļý ţĥé 3Ð ṽîéŵ, ñö ĥéáðéŕ öŕ ţööļƀáŕ. ~~~~~~~~~]\"],\"app.sharePanel.open\":[\"[Öþéñ ~~]\"],\"app.sharePanel.publicLink\":[\"[Þûƀļîç ļîñķ ~~~]\"],\"app.sharePanel.shareProject\":[\"[Šĥáŕé þŕöĵéçţ ~~~~]\"],\"app.viewerToolbar.automaticDimensions\":[\"[Åûţöɱáţîç ðîɱéñšîöñš ~~~~~~]\"],\"app.viewerToolbar.camera\":[\"[Çáɱéŕá ~~]\"],\"app.viewerToolbar.cleanPlanDimensionsAppearWithSelection\":[\"[Çļéáñ þļáñ; ðîɱéñšîöñš áþþéáŕ ŵîţĥ šéļéçţîöñ ~~~~~~~~~~~~]\"],\"app.viewerToolbar.collapseSidebar\":[\"[Çöļļáþšé šîðéƀáŕ ~~~~~]\"],\"app.viewerToolbar.crispOpaqueEdgeLines\":[\"[Çŕîšþ, öþáǫûé éðĝé ļîñéš ~~~~~~]\"],\"app.viewerToolbar.cutaway\":[\"[Çûţáŵáý ~~~]\"],\"app.viewerToolbar.default\":[\"[Ðéƒáûļţ ~~~]\"],\"app.viewerToolbar.display\":[\"[Ðîšþļáý ~~~]\"],\"app.viewerToolbar.displaySettings\":[\"[Ðîšþļáý šéţţîñĝš ~~~~~]\"],\"app.viewerToolbar.doorWindowMarks\":[\"[Ðööŕ/ŵîñðöŵ ɱáŕķš ~~~~~]\"],\"app.viewerToolbar.edges\":[\"[Éðĝéš ~~]\"],\"app.viewerToolbar.enterVr\":[\"[Éñţéŕ ṼŔ ~~~]\"],\"app.viewerToolbar.exitVr\":[\"[Éẋîţ ṼŔ ~~]\"],\"app.viewerToolbar.expandSidebar\":[\"[Éẋþáñð šîðéƀáŕ ~~~~]\"],\"app.viewerToolbar.expert\":[\"[Éẋþéŕţ ~~]\"],\"app.viewerToolbar.exploded\":[\"[Éẋþļöðéð ~~~]\"],\"app.viewerToolbar.faceOfStud\":[\"[Ƒáçé öƒ šţûð ~~~]\"],\"app.viewerToolbar.faintOutlineOfMajorCreases\":[\"[Ƒáîñţ öûţļîñé öƒ ɱáĵöŕ çŕéášéš ~~~~~~~~]\"],\"app.viewerToolbar.feetInches\":[\"[Ƒééţ & îñçĥéš ~~~]\"],\"app.viewerToolbar.finishedFaces\":[\"[Ƒîñîšĥéð ƒáçéš ~~~~]\"],\"app.viewerToolbar.flatAndFastNoAmbientOcclusion\":[\"[Ƒļáţ áñð ƒášţ — ñö áɱƀîéñţ öççļûšîöñ ~~~~~~~~~]\"],\"app.viewerToolbar.floorPlanAnnotations\":[\"[Ƒļööŕ þļáñ áññöţáţîöñš ~~~~~~]\"],\"app.viewerToolbar.floorPlanMode\":[\"[Ƒļööŕ þļáñ ɱöðé ~~~~]\"],\"app.viewerToolbar.fullAmbientOcclusion\":[\"[Ƒûļļ áɱƀîéñţ öççļûšîöñ ~~~~~~]\"],\"app.viewerToolbar.fullDocumentationAndAnnotationControls\":[\"[Ƒûļļ ðöçûɱéñţáţîöñ áñð áññöţáţîöñ çöñţŕöļš ~~~~~~~~~~~~]\"],\"app.viewerToolbar.fullHeight\":[\"[Ƒûļļ ĥéîĝĥţ ~~~]\"],\"app.viewerToolbar.fullWallThickness\":[\"[Ƒûļļ ŵáļļ ţĥîçķñéšš ~~~~~~]\"],\"app.viewerToolbar.grid\":[\"[Ĝŕîð ~~]\"],\"app.viewerToolbar.levelsMode\":[\"[Ļéṽéļš: \",[\"mode\"],\" ~~]\"],\"app.viewerToolbar.low\":[\"[Ļöŵ ~]\"],\"app.viewerToolbar.magneticSnap\":[\"[Ṁáĝñéţîç šñáþ ~~~~]\"],\"app.viewerToolbar.manual\":[\"[Ṁáñûáļ ~~]\"],\"app.viewerToolbar.manualDimensions\":[\"[Ṁáñûáļ ðîɱéñšîöñš ~~~~~]\"],\"app.viewerToolbar.measurements\":[\"[Ṁéášûŕéɱéñţš ~~~~]\"],\"app.viewerToolbar.meters\":[\"[Ṁéţéŕš ~~]\"],\"app.viewerToolbar.millimeters\":[\"[Ṁîļļîɱéţéŕš ~~~~]\"],\"app.viewerToolbar.n3dMeasurements\":[\"[3Ð ɱéášûŕéɱéñţš ~~~~]\"],\"app.viewerToolbar.noEdgeLines\":[\"[Ñö éðĝé ļîñéš ~~~~]\"],\"app.viewerToolbar.off\":[\"[Öƒƒ ~]\"],\"app.viewerToolbar.on\":[\"[Öñ ~]\"],\"app.viewerToolbar.orthographic\":[\"[Öŕţĥöĝŕáþĥîç ~~~~]\"],\"app.viewerToolbar.perspective\":[\"[Þéŕšþéçţîṽé ~~~~]\"],\"app.viewerToolbar.preview\":[\"[Þŕéṽîéŵ ~~~]\"],\"app.viewerToolbar.previewMode\":[\"[Þŕéṽîéŵ ɱöðé ~~~~]\"],\"app.viewerToolbar.render\":[\"[Ŕéñðéŕ ~~]\"],\"app.viewerToolbar.rendered\":[\"[Ŕéñðéŕéð ~~~]\"],\"app.viewerToolbar.roomLabels\":[\"[Ŕööɱ ļáƀéļš ~~~]\"],\"app.viewerToolbar.sceneTheme\":[\"[Šçéñé ţĥéɱé ~~~]\"],\"app.viewerToolbar.shadows\":[\"[Šĥáðöŵš ~~~]\"],\"app.viewerToolbar.singleWallAxis\":[\"[Šîñĝļé ŵáļļ áẋîš ~~~~~]\"],\"app.viewerToolbar.soft\":[\"[Šöƒţ ~~]\"],\"app.viewerToolbar.solid\":[\"[Šöļîð ~~]\"],\"app.viewerToolbar.solo\":[\"[Šöļö ~~]\"],\"app.viewerToolbar.stack\":[\"[Šţáçķ ~~]\"],\"app.viewerToolbar.stairAnnotations\":[\"[Šţáîŕ áññöţáţîöñš ~~~~~]\"],\"app.viewerToolbar.strong\":[\"[Šţŕöñĝ ~~]\"],\"app.viewerToolbar.structuralCoreFace\":[\"[Šţŕûçţûŕáļ çöŕé ƒáçé ~~~~~~]\"],\"app.viewerToolbar.structuralGridsColumnCenters\":[\"[Šţŕûçţûŕáļ ĝŕîðš & çöļûɱñ çéñţéŕš ~~~~~~~~~]\"],\"app.viewerToolbar.translucent\":[\"[Ţŕáñšļûçéñţ ~~~~]\"],\"app.viewerToolbar.units\":[\"[Ûñîţš ~~]\"],\"app.viewerToolbar.walkthrough\":[\"[Ŵáļķţĥŕöûĝĥ ~~~~]\"],\"app.viewerToolbar.wallCenterline\":[\"[Ŵáļļ çéñţéŕļîñé ~~~~~]\"],\"app.viewerToolbar.wallDimensions\":[\"[Ŵáļļ ðîɱéñšîöñš ~~~~~]\"],\"app.viewerToolbar.wallsLabel\":[\"[Ŵáļļš: \",[\"label\"],\" ~~]\"],\"core.level.basement\":[\"[Ɓášéɱéñţ ~~~]\"],\"core.level.basementNumber\":[\"[Ɓášéɱéñţ \",[\"number\"],\" ~~~]\"],\"core.level.floorNumber\":[\"[Ƒļööŕ \",[\"number\"],\" ~~]\"],\"core.level.groundFloor\":[\"[Ĝŕöûñð ƒļööŕ ~~~~]\"],\"editor.actionMenu.cameraActions.orbitLeft\":[\"[Öŕƀîţ Ļéƒţ ~~~]\"],\"editor.actionMenu.cameraActions.orbitRight\":[\"[Öŕƀîţ Ŕîĝĥţ ~~~]\"],\"editor.actionMenu.cameraActions.topView\":[\"[Ţöþ Ṽîéŵ ~~~]\"],\"editor.actionMenu.controlModes.delete\":[\"[Ðéļéţé ~~]\"],\"editor.actionMenu.controlModes.select\":[\"[Šéļéçţ ~~]\"],\"editor.actionMenu.followPascalPill.resumeFollowing\":[\"[Ŕéšûɱé ƒöļļöŵîñĝ ~~~~~]\"],\"editor.actionMenu.followPascalToggle.off\":[\"[Ƒöļļöŵ Þášçáļ: Öƒƒ ~~~~~]\"],\"editor.actionMenu.followPascalToggle.on\":[\"[Ƒöļļöŵ Þášçáļ: Öñ ~~~~~]\"],\"editor.actionMenu.furnishTools.appliance\":[\"[Åþþļîáñçé ~~~]\"],\"editor.actionMenu.furnishTools.bathroom\":[\"[Ɓáţĥŕööɱ ~~~]\"],\"editor.actionMenu.furnishTools.furniture\":[\"[Ƒûŕñîţûŕé ~~~]\"],\"editor.actionMenu.furnishTools.kitchen\":[\"[Ķîţçĥéñ ~~~]\"],\"editor.actionMenu.furnishTools.outdoor\":[\"[Öûţðööŕ ~~~]\"],\"editor.actionMenu.measurementControl.angle\":[\"[Åñĝļé ~~]\"],\"editor.actionMenu.measurementControl.angularDimension\":[\"[Åñĝûļáŕ ðîɱéñšîöñ ~~~~~]\"],\"editor.actionMenu.measurementControl.arcLength\":[\"[Åŕç ļéñĝţĥ ~~~]\"],\"editor.actionMenu.measurementControl.area\":[\"[Åŕéá ~~]\"],\"editor.actionMenu.measurementControl.centerMark\":[\"[Çéñţéŕ ɱáŕķ ~~~]\"],\"editor.actionMenu.measurementControl.chordDimension\":[\"[Çĥöŕð ðîɱéñšîöñ ~~~~~]\"],\"editor.actionMenu.measurementControl.continuousDimension\":[\"[Çöñţîñûöûš ðîɱéñšîöñ ~~~~~~]\"],\"editor.actionMenu.measurementControl.coordinateDimensions\":[\"[Çööŕðîñáţé ðîɱéñšîöñš ~~~~~~]\"],\"editor.actionMenu.measurementControl.diameterDimension\":[\"[Ðîáɱéţéŕ ðîɱéñšîöñ ~~~~~~]\"],\"editor.actionMenu.measurementControl.distance\":[\"[Ðîšţáñçé ~~~]\"],\"editor.actionMenu.measurementControl.floorPlan\":[\"[Ƒļööŕ þļáñ ~~~]\"],\"editor.actionMenu.measurementControl.linearDimension\":[\"[Ļîñéáŕ ðîɱéñšîöñ ~~~~~]\"],\"editor.actionMenu.measurementControl.measureSelectedlabel\":[\"[Ṁéášûŕé: \",[\"selectedLabel\"],\" ~~~]\"],\"editor.actionMenu.measurementControl.measurementOptions\":[\"[Ṁéášûŕéɱéñţ öþţîöñš ~~~~~~]\"],\"editor.actionMenu.measurementControl.measurementType\":[\"[Ṁéášûŕéɱéñţ ţýþé ~~~~~]\"],\"editor.actionMenu.measurementControl.perimeter\":[\"[Þéŕîɱéţéŕ ~~~]\"],\"editor.actionMenu.measurementControl.radiusDimension\":[\"[Ŕáðîûš ðîɱéñšîöñ ~~~~~]\"],\"editor.actionMenu.measurementControl.smart\":[\"[Šɱáŕţ ~~]\"],\"editor.actionMenu.measurementControl.volume\":[\"[Ṽöļûɱé ~~]\"],\"editor.actionMenu.pointAskButton.pointAndAsk\":[\"[Þöîñţ áñð ášķ ~~~~]\"],\"editor.actionMenu.pointAskButton.pointAndAskC\":[\"[Þöîñţ áñð ášķ (Ç) ~~~~]\"],\"editor.actionMenu.pointAskButton.pointAndAskWorksInThe\":[\"[Þöîñţ áñð ášķ ŵöŕķš îñ ţĥé 3Ð ṽîéŵ ~~~~~~~~]\"],\"editor.actionMenu.structureTools.ceiling\":[\"[Çéîļîñĝ ~~~]\"],\"editor.actionMenu.structureTools.column\":[\"[Çöļûɱñ ~~]\"],\"editor.actionMenu.structureTools.door\":[\"[Ðööŕ ~~]\"],\"editor.actionMenu.structureTools.duct\":[\"[Ðûçţ ~~]\"],\"editor.actionMenu.structureTools.ductFitting\":[\"[Ðûçţ Ƒîţţîñĝ ~~~~]\"],\"editor.actionMenu.structureTools.dwvPipe\":[\"[ÐŴṼ Þîþé ~~~]\"],\"editor.actionMenu.structureTools.elevator\":[\"[Éļéṽáţöŕ ~~~]\"],\"editor.actionMenu.structureTools.fence\":[\"[Ƒéñçé ~~]\"],\"editor.actionMenu.structureTools.gableRoof\":[\"[Ĝáƀļé Ŕööƒ ~~~]\"],\"editor.actionMenu.structureTools.hvacUnit\":[\"[ĤṼÅÇ Ûñîţ ~~~]\"],\"editor.actionMenu.structureTools.lineset\":[\"[Ļîñéšéţ ~~~]\"],\"editor.actionMenu.structureTools.liquidLine\":[\"[Ļîǫûîð Ļîñé ~~~]\"],\"editor.actionMenu.structureTools.pipeFitting\":[\"[Þîþé Ƒîţţîñĝ ~~~~]\"],\"editor.actionMenu.structureTools.register\":[\"[Ŕéĝîšţéŕ ~~~]\"],\"editor.actionMenu.structureTools.shelf\":[\"[Šĥéļƒ ~~]\"],\"editor.actionMenu.structureTools.slab\":[\"[Šļáƀ ~~]\"],\"editor.actionMenu.structureTools.spawnPoint\":[\"[Šþáŵñ Þöîñţ ~~~]\"],\"editor.actionMenu.structureTools.stairs\":[\"[Šţáîŕš ~~]\"],\"editor.actionMenu.structureTools.trap\":[\"[Ţŕáþ ~~]\"],\"editor.actionMenu.structureTools.wall\":[\"[Ŵáļļ ~~]\"],\"editor.actionMenu.structureTools.window\":[\"[Ŵîñðöŵ ~~]\"],\"editor.actionMenu.structureTools.zone\":[\"[Žöñé ~~]\"],\"editor.actionMenu.viewToggles.below\":[\"[ƀéļöŵ ~~]\"],\"editor.actionMenu.viewToggles.deleteGuideImage\":[\"[Ðéļéţé ĝûîðé îɱáĝé ~~~~~]\"],\"editor.actionMenu.viewToggles.deleteScan\":[\"[Ðéļéţé šçáñ ~~~]\"],\"editor.actionMenu.viewToggles.guideCount\":[\"[\",[\"count\",\"plural\",{\"one\":[\"#\",\" ĝûîðé îɱáĝé öñ ţĥîš ļéṽéļ\"],\"other\":[\"#\",\" ĝûîðé îɱáĝéš öñ ţĥîš ļéṽéļ\"]}],\" ~~~~~~~~~~~~~]\"],\"editor.actionMenu.viewToggles.guideImageNumber\":[\"[Ĝûîðé îɱáĝé \",[\"number\"],\" ~~~]\"],\"editor.actionMenu.viewToggles.guideImageSettings\":[\"[Ĝûîðé îɱáĝé šéţţîñĝš ~~~~~~]\"],\"editor.actionMenu.viewToggles.guideImages\":[\"[Ĝûîðé îɱáĝéš ~~~~]\"],\"editor.actionMenu.viewToggles.guides\":[\"[Ĝûîðéš ~~]\"],\"editor.actionMenu.viewToggles.guidesHidden\":[\"[Ĝûîðéš: Ĥîððéñ ~~~~]\"],\"editor.actionMenu.viewToggles.guidesVisible\":[\"[Ĝûîðéš: Ṽîšîƀļé ~~~~]\"],\"editor.actionMenu.viewToggles.hideGuideImages\":[\"[Ĥîðé ĝûîðé îɱáĝéš ~~~~~]\"],\"editor.actionMenu.viewToggles.hideReferenceFloor\":[\"[Ĥîðé ŕéƒéŕéñçé ƒļööŕ ~~~~~~]\"],\"editor.actionMenu.viewToggles.hideScans\":[\"[Ĥîðé šçáñš ~~~]\"],\"editor.actionMenu.viewToggles.noLowerFloorAvailable\":[\"[Ñö ļöŵéŕ ƒļööŕ áṽáîļáƀļé. ~~~~~~~]\"],\"editor.actionMenu.viewToggles.opacity\":[\"[Öþáçîţý ~~~]\"],\"editor.actionMenu.viewToggles.referenceFloor\":[\"[Ŕéƒéŕéñçé ƒļööŕ ~~~~~]\"],\"editor.actionMenu.viewToggles.referenceFloorSelectedlevelname\":[\"[Ŕéƒéŕéñçé ƒļööŕ: \",[\"selectedLevelName\"],\" ~~~~~]\"],\"editor.actionMenu.viewToggles.referenceFloorSettings\":[\"[Ŕéƒéŕéñçé ƒļööŕ šéţţîñĝš ~~~~~~~]\"],\"editor.actionMenu.viewToggles.referenceSettings\":[\"[Ŕéƒéŕéñçé šéţţîñĝš ~~~~~~]\"],\"editor.actionMenu.viewToggles.references\":[\"[Ŕéƒéŕéñçéš ~~~]\"],\"editor.actionMenu.viewToggles.referencesEmpty\":[\"[Ûþļöáð ĜĻƁ ɱéšĥéš áš šçáñ ŕéƒéŕéñçéš öŕ ƀļûéþŕîñţ îɱáĝéš áš ĝûîðé ŕéƒéŕéñçéš. ~~~~~~~~~~~~~~~~~~~~]\"],\"editor.actionMenu.viewToggles.referencesHidden\":[\"[Ŕéƒéŕéñçéš: Ĥîððéñ ~~~~~]\"],\"editor.actionMenu.viewToggles.referencesVisible\":[\"[Ŕéƒéŕéñçéš: Ṽîšîƀļé ~~~~~~]\"],\"editor.actionMenu.viewToggles.riserDiagram\":[\"[Ŕîšéŕ ðîáĝŕáɱ ~~~~]\"],\"editor.actionMenu.viewToggles.scanCount\":[\"[\",[\"count\",\"plural\",{\"one\":[\"#\",\" šçáñ öñ ţĥîš ļéṽéļ\"],\"other\":[\"#\",\" šçáñš öñ ţĥîš ļéṽéļ\"]}],\" ~~~~~~~~~~]\"],\"editor.actionMenu.viewToggles.scanNumber\":[\"[Šçáñ \",[\"number\"],\" ~~]\"],\"editor.actionMenu.viewToggles.scanSettings\":[\"[Šçáñ šéţţîñĝš ~~~~]\"],\"editor.actionMenu.viewToggles.scans\":[\"[Šçáñš ~~]\"],\"editor.actionMenu.viewToggles.scansHidden\":[\"[Šçáñš: Ĥîððéñ ~~~~]\"],\"editor.actionMenu.viewToggles.scansVisible\":[\"[Šçáñš: Ṽîšîƀļé ~~~~]\"],\"editor.actionMenu.viewToggles.showGuideImages\":[\"[Šĥöŵ ĝûîðé îɱáĝéš ~~~~~]\"],\"editor.actionMenu.viewToggles.showReferenceFloor\":[\"[Šĥöŵ ŕéƒéŕéñçé ƒļööŕ ~~~~~~]\"],\"editor.actionMenu.viewToggles.showScans\":[\"[Šĥöŵ šçáñš ~~~]\"],\"editor.actionMenu.viewToggles.uploadScanOrGuideImage\":[\"[Ûþļöáð šçáñ öŕ ĝûîðé îɱáĝé ~~~~~~~]\"],\"editor.backToHome\":[\"[Ɓáçķ ţö ĥöɱé ~~~]\"],\"editor.buildPanel.advanced\":[\"[Åðṽáñçéð ~~~]\"],\"editor.buildPanel.rooms.hint\":[\"[ŵáļļš · ƒļööŕ · çéîļîñĝ ~~~~~~]\"],\"editor.buildPanel.rooms.idle\":[\"[Þîçķ á šĥáþé ţö šţáŕţ. Éṽéŕý ŕööɱ ƀŕîñĝš îţš öŵñ ŵáļļš, ƒļööŕ áñð çéîļîñĝ. ~~~~~~~~~~~~~~~~~~]\"],\"editor.buildPanel.rooms.polygon.caption\":[\"[\",[\"lead\"],\" ţĥéñ ţĥé ƒîŕšţ öñé áĝáîñ ţö çļöšé. Ƒöŕ Ļ-šĥáþéš áñð áñĝļéð ŕööɱš. ~~~~~~~~~~~~~~~~]\"],\"editor.buildPanel.rooms.polygon.label\":[\"[Þöļýĝöñ ~~~]\"],\"editor.buildPanel.rooms.polygon.lead\":[\"[Çļîçķ éáçĥ çöŕñéŕ, ~~~~~]\"],\"editor.buildPanel.rooms.polygon.title\":[\"[Þöļýĝöñ ŕööɱ ~~~~]\"],\"editor.buildPanel.rooms.rectangle.caption\":[\"[\",[\"lead\"],\" öñ ţĥé ĝŕîð. Ŵáļļš, ƒļööŕ áñð çéîļîñĝ áŕé çŕéáţéð ţöĝéţĥéŕ. ~~~~~~~~~~~~~~~]\"],\"editor.buildPanel.rooms.rectangle.label\":[\"[Ŕéçţáñĝļé ~~~]\"],\"editor.buildPanel.rooms.rectangle.lead\":[\"[Çļîçķ ţŵö çöŕñéŕš ~~~~~]\"],\"editor.buildPanel.rooms.rectangle.title\":[\"[Ŕéçţáñĝļé ŕööɱ ~~~~]\"],\"editor.buildPanel.rooms.title\":[\"[Ŕööɱš ~~]\"],\"editor.buildPanel.rooms.walls.caption\":[\"[\",[\"lead\"],\" Çļöšé á ļööþ áñð îţ ƀéçöɱéš á ŕööɱ; ļéáṽé îţ öþéñ ƒöŕ þáŕţîţîöñš. ~~~~~~~~~~~~~~~~]\"],\"editor.buildPanel.rooms.walls.label\":[\"[Ŵáļļš ~~]\"],\"editor.buildPanel.rooms.walls.lead\":[\"[Ðŕáŵ öñé ŵáļļ áţ á ţîɱé. ~~~~~~]\"],\"editor.buildPanel.rooms.walls.title\":[\"[Ŵáļļš ~~]\"],\"editor.cameraControlsHint\":[\"[Çáɱéŕá çöñţŕöļš ĥîñţ ~~~~~~]\"],\"editor.cameraHint.pan\":[\"[Þáñ ~]\"],\"editor.cameraHint.rotate\":[\"[Ŕöţáţé ~~]\"],\"editor.cameraHint.zoom\":[\"[Žööɱ ~~]\"],\"editor.dismiss\":[\"[Ðîšɱîšš ~~~]\"],\"editor.dismissCameraControlsHint\":[\"[Ðîšɱîšš çáɱéŕá çöñţŕöļš ĥîñţ ~~~~~~~~]\"],\"editor.expandSidebar\":[\"[Éẋþáñð šîðéƀáŕ ~~~~]\"],\"editor.floatingActionMenu.axis\":[\"[Åẋîš ~~]\"],\"editor.floatingActionMenu.axis2\":[\"[⌥ áẋîš ~~]\"],\"editor.floatingActionMenu.noEquipment\":[\"[⚠ ñö éǫûîþɱéñţ ~~~~]\"],\"editor.floatingActionMenu.rTRotate\":[\"[Ŕ/Ţ ŕöţáţé ~~~]\"],\"editor.floatingActionMenu.registerCount\":[\"[\",[\"count\",\"plural\",{\"one\":[\"#\",\" ŕéĝîšţéŕ\"],\"other\":[\"#\",\" ŕéĝîšţéŕš\"]}],\" ~~~~~~]\"],\"editor.floatingActionMenu.runCount\":[\"[\",[\"count\",\"plural\",{\"one\":[\"#\",\" ŕûñ\"],\"other\":[\"#\",\" ŕûñš\"]}],\" ~~~]\"],\"editor.floatingActionMenu.system\":[\"[Šýšţéɱ ~~]\"],\"editor.helpers.buildingHelper.cancel\":[\"[Çáñçéļ ~~]\"],\"editor.helpers.buildingHelper.placeBuilding\":[\"[Þļáçé ƀûîļðîñĝ ~~~~]\"],\"editor.helpers.buildingHelper.rotate\":[\"[Ŕöţáţé ~~]\"],\"editor.helpers.contextualHelperPanel.cancelPlacement\":[\"[Çáñçéļ þļáçéɱéñţ ~~~~~]\"],\"editor.helpers.contextualHelperPanel.continuationClickOrPressCTo\":[\"[Çöñţîñûáţîöñ — çļîçķ öŕ þŕéšš Ç ţö çýçļé ~~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.continuationLabel\":[\"[Çöñţîñûáţîöñ: \",[\"label\"],\" ~~~~]\"],\"editor.helpers.contextualHelperPanel.dragToDrawFence\":[\"[Ðŕáĝ ţö ðŕáŵ ƒéñçé ~~~~~]\"],\"editor.helpers.contextualHelperPanel.fenceTypeClickOrPressT\":[\"[Ƒéñçé ţýþé — çļîçķ öŕ þŕéšš Ţ ţö šŵîţçĥ ƀéţŵééñ šţŕáîĝĥţ, çûŕṽéð áñð ƒŕééĥáñð ~~~~~~~~~~~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.fewerShortcuts\":[\"[Ƒéŵéŕ šĥöŕţçûţš ~~~~~]\"],\"editor.helpers.contextualHelperPanel.finishCurveOrDoubleClick\":[\"[Ƒîñîšĥ çûŕṽé (öŕ ðöûƀļé-çļîçķ) ~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.gridLength\":[\"[Ĝŕîð: \",[\"length\"],\" ~~]\"],\"editor.helpers.contextualHelperPanel.gridStepClickOrTapCtrl\":[\"[Ĝŕîð šţéþ — çļîçķ öŕ ţáþ Çţŕļ ţö çýçļé ~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.gridStepLength\":[\"[Ĝŕîð šţéþ: \",[\"length\"],\" ~~~]\"],\"editor.helpers.contextualHelperPanel.hoverAPaintedSurfaceToErase\":[\"[Ĥöṽéŕ á þáîñţéð šûŕƒáçé ţö éŕášé ~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.hoverASurfaceToPaint\":[\"[Ĥöṽéŕ á šûŕƒáçé ţö þáîñţ ~~~~~~]\"],\"editor.helpers.contextualHelperPanel.hoverASurfaceToPickIts\":[\"[Ĥöṽéŕ á šûŕƒáçé ţö þîçķ îţš ɱáţéŕîáļ ~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.moreShortcuts\":[\"[Ṁöŕé šĥöŕţçûţš ~~~~]\"],\"editor.helpers.contextualHelperPanel.placeGateOnAFence\":[\"[Þļáçé ĝáţé öñ á ƒéñçé ~~~~~~]\"],\"editor.helpers.contextualHelperPanel.placePassageOnAFence\":[\"[Þļáçé þáššáĝé öñ á ƒéñçé ~~~~~~]\"],\"editor.helpers.contextualHelperPanel.selectAMaterialToPaint\":[\"[Šéļéçţ á ɱáţéŕîáļ ţö þáîñţ ~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.snappingAngles\":[\"[Šñáþþîñĝ: Åñĝļéš ~~~~~]\"],\"editor.helpers.contextualHelperPanel.snappingGrid\":[\"[Šñáþþîñĝ: Ĝŕîð ~~~~]\"],\"editor.helpers.contextualHelperPanel.snappingLines\":[\"[Šñáþþîñĝ: Ļîñéš ~~~~]\"],\"editor.helpers.contextualHelperPanel.snappingModeClickOrPressShift\":[\"[Šñáþþîñĝ ɱöðé — çļîçķ öŕ þŕéšš Šĥîƒţ ţö çýçļé ~~~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.snappingOff\":[\"[Šñáþþîñĝ: Öƒƒ ~~~~]\"],\"editor.helpers.contextualHelperPanel.straightContinuationIsUnavailableForCurved\":[\"[Šţŕáîĝĥţ çöñţîñûáţîöñ îš ûñáṽáîļáƀļé ƒöŕ çûŕṽéð öŕ ƒŕééĥáñð ƒéñçéš ~~~~~~~~~~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.straightContinuous\":[\"[Šţŕáîĝĥţ: Çöñţîñûöûš ~~~~~~]\"],\"editor.helpers.contextualHelperPanel.straightFenceContinuationClickOrPress\":[\"[Šţŕáîĝĥţ ƒéñçé çöñţîñûáţîöñ — çļîçķ öŕ þŕéšš Ç ţö ţöĝĝļé ~~~~~~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.straightSingle\":[\"[Šţŕáîĝĥţ: Šîñĝļé ~~~~~]\"],\"editor.helpers.contextualHelperPanel.verbScopeClickOrPressShift\":[\"[\",[\"verb\"],\" šçöþé — çļîçķ öŕ þŕéšš Šĥîƒţ ţö çýçļé ~~~~~~~~~]\"],\"editor.helpers.helperManager.addPoint\":[\"[Åðð þöîñţ ~~~]\"],\"editor.helpers.helperManager.addPointClickTheFirstTo\":[\"[Åðð þöîñţ · çļîçķ ţĥé ƒîŕšţ ţö çļöšé ~~~~~~~~~]\"],\"editor.helpers.helperManager.brushSize\":[\"[Ɓŕûšĥ šîžé ~~~]\"],\"editor.helpers.helperManager.cancel\":[\"[Çáñçéļ ~~]\"],\"editor.helpers.helperManager.cancelPicking\":[\"[Çáñçéļ þîçķîñĝ ~~~~]\"],\"editor.helpers.helperManager.cancelStroke\":[\"[Çáñçéļ šţŕöķé ~~~~]\"],\"editor.helpers.helperManager.done\":[\"[Ðöñé ~~]\"],\"editor.helpers.helperManager.drawTheMezzanine\":[\"[Ðŕáŵ ţĥé ɱéžžáñîñé ~~~~~]\"],\"editor.helpers.helperManager.drawTheOpening\":[\"[Ðŕáŵ ţĥé öþéñîñĝ ~~~~~]\"],\"editor.helpers.helperManager.drawTheTerrace\":[\"[Ðŕáŵ ţĥé ţéŕŕáçé ~~~~~]\"],\"editor.helpers.helperManager.exitSmartMeasure\":[\"[Éẋîţ šɱáŕţ ɱéášûŕé ~~~~~]\"],\"editor.helpers.helperManager.finish\":[\"[Ƒîñîšĥ ~~]\"],\"editor.helpers.helperManager.finishAtTheEdge\":[\"[Ƒîñîšĥ áţ ţĥé éðĝé ~~~~~]\"],\"editor.helpers.helperManager.freeMove\":[\"[Ƒŕéé ɱöṽé ~~~]\"],\"editor.helpers.helperManager.freeMoveSlideDoorsAndWindows\":[\"[Ƒŕéé ɱöṽé · šļîðé ðööŕš áñð ŵîñðöŵš ~~~~~~~~~]\"],\"editor.helpers.helperManager.holdToPickAMaterial\":[\"[Ĥöļð ţö þîçķ á ɱáţéŕîáļ ~~~~~~]\"],\"editor.helpers.helperManager.inspectSurfaceDimensions\":[\"[Îñšþéçţ šûŕƒáçé ðîɱéñšîöñš ~~~~~~~~]\"],\"editor.helpers.helperManager.paintWithThisMaterial\":[\"[Þáîñţ ŵîţĥ ţĥîš ɱáţéŕîáļ ~~~~~~~]\"],\"editor.helpers.helperManager.pickTargetHeight\":[\"[Þîçķ ţáŕĝéţ ĥéîĝĥţ ~~~~~]\"],\"editor.helpers.helperManager.pinMeasurementLens\":[\"[Þîñ ɱéášûŕéɱéñţ ļéñš ~~~~~~]\"],\"editor.helpers.helperManager.place\":[\"[Þļáçé ~~]\"],\"editor.helpers.helperManager.placeInsideTheRoom\":[\"[Þļáçé îñšîðé ţĥé ŕööɱ ~~~~~~]\"],\"editor.helpers.helperManager.pressAnywhereDragToTheOpposite\":[\"[Þŕéšš áñýŵĥéŕé, ðŕáĝ ţö ţĥé öþþöšîţé çöŕñéŕ ~~~~~~~~~~~]\"],\"editor.helpers.helperManager.raiseOrLower\":[\"[Ŕáîšé öŕ ļöŵéŕ ~~~~]\"],\"editor.helpers.helperManager.removeAPaintedPartOrReset\":[\"[Ŕéɱöṽé á þáîñţéð þáŕţ, öŕ ŕéšéţ á šûŕƒáçé ~~~~~~~~~~]\"],\"editor.helpers.helperManager.removeLastPoint\":[\"[Ŕéɱöṽé ļášţ þöîñţ ~~~~~]\"],\"editor.helpers.helperManager.resize\":[\"[Ŕéšîžé ~~]\"],\"editor.helpers.helperManager.rotate45\":[\"[Ŕöţáţé ±45° ~~]\"],\"editor.helpers.helperManager.rotateTheSelection45\":[\"[Ŕöţáţé ţĥé šéļéçţîöñ ±45° ~~~~~~]\"],\"editor.helpers.helperManager.setOneCornerThenTheOpposite\":[\"[Šéţ öñé çöŕñéŕ, ţĥéñ ţĥé öþþöšîţé ~~~~~~~~~]\"],\"editor.helpers.itemHelper.cancel\":[\"[Çáñçéļ ~~]\"],\"editor.helpers.itemHelper.forcePlace\":[\"[Ƒöŕçé þļáçé ~~~]\"],\"editor.helpers.itemHelper.place\":[\"[Þļáçé ~~]\"],\"editor.helpers.itemHelper.rotate\":[\"[Ŕöţáţé ~~]\"],\"editor.helpers.registeredToolHelper.guidedConstraintsBypassed\":[\"[Ĝûîðéð çöñšţŕáîñţš ƀýþáššéð ~~~~~~~~]\"],\"editor.lib.contextualHelp.addOrRemoveObjectsFromThe\":[\"[Åðð öŕ ŕéɱöṽé öƀĵéçţš ƒŕöɱ ţĥé šéļéçţîöñ ~~~~~~~~~~~]\"],\"editor.lib.contextualHelp.adjustOneSideSCornerRadius\":[\"[Åðĵûšţ öñé šîðé’š çöŕñéŕ ŕáðîûš ~~~~~~~~]\"],\"editor.lib.contextualHelp.clearTheSelectionOrClickOutside\":[\"[Çļéáŕ ţĥé šéļéçţîöñ (öŕ çļîçķ öûţšîðé) ~~~~~~~~~~]\"],\"editor.lib.contextualHelp.clickAHandleDotToShow\":[\"[Çļîçķ á ĥáñðļé ðöţ ţö šĥöŵ ɱöṽé áŕŕöŵš ~~~~~~~~~~]\"],\"editor.lib.contextualHelp.clickOrDragTheSelectionTo\":[\"[Çļîçķ öŕ ðŕáĝ ţĥé šéļéçţîöñ ţö ɱöṽé îţ áš öñé ~~~~~~~~~~~]\"],\"editor.lib.contextualHelp.clickTheHandleDotToShow\":[\"[Çļîçķ ţĥé ĥáñðļé ðöţ ţö šĥöŵ ɱöṽé + ŕöţáţé ĥáñðļéš ~~~~~~~~~~~~]\"],\"editor.lib.contextualHelp.detachTheJointWhileDraggingAn\":[\"[Ðéţáçĥ ţĥé ĵöîñţ ŵĥîļé ðŕáĝĝîñĝ áñ áŕŕöŵ ~~~~~~~~~~~]\"],\"editor.lib.contextualHelp.dragLeftOrRightToRotate\":[\"[Ðŕáĝ ļéƒţ öŕ ŕîĝĥţ ţö ŕöţáţé šéļéçţéð öƀĵéçţ ~~~~~~~~~~~~]\"],\"editor.lib.contextualHelp.dragSelectedMovableObject\":[\"[Ðŕáĝ šéļéçţéð ɱöṽáƀļé öƀĵéçţ ~~~~~~~~]\"],\"editor.lib.contextualHelp.groupSelectionSessionOnly\":[\"[Ĝŕöûþ šéļéçţîöñ (šéššîöñ öñļý) ~~~~~~~~]\"],\"editor.lib.contextualHelp.holdToRotateFreely\":[\"[Ĥöļð ţö ŕöţáţé ƒŕééļý ~~~~~~]\"],\"editor.lib.contextualHelp.rotate45\":[\"[Ŕöţáţé ±45° ~~]\"],\"editor.lib.contextualHelp.rotateTheSelection45\":[\"[Ŕöţáţé ţĥé šéļéçţîöñ ±45° ~~~~~~]\"],\"editor.lib.contextualHelp.rotatingFreely\":[\"[Ŕöţáţîñĝ ƒŕééļý (ñö áñĝļé šţéþ) ~~~~~~~~]\"],\"editor.lib.contextualHelp.switchTheRotationAxisYX\":[\"[Šŵîţçĥ ţĥé ŕöţáţîöñ áẋîš (Ý → Ẋ → Ž) ~~~~~~~~]\"],\"editor.lib.contextualHelp.ungroupSessionSelection\":[\"[Ûñĝŕöûþ šéššîöñ šéļéçţîöñ ~~~~~~~]\"],\"editor.lib.continuation.continuous\":[\"[Çöñţîñûöûš ~~~]\"],\"editor.lib.continuation.continuousCanopy\":[\"[Çöñţîñûöûš çáñöþý ~~~~~]\"],\"editor.lib.continuation.continuousRun\":[\"[Çöñţîñûöûš ŕûñ ~~~~]\"],\"editor.lib.continuation.curvedFence\":[\"[Çûŕṽéð ƒéñçé ~~~~]\"],\"editor.lib.continuation.freehandFence\":[\"[Ƒŕééĥáñð ƒéñçé ~~~~]\"],\"editor.lib.continuation.placeMultiple\":[\"[Þļáçé ɱûļţîþļé ~~~~]\"],\"editor.lib.continuation.placeOnce\":[\"[Þļáçé öñçé ~~~]\"],\"editor.lib.continuation.polygonRoom\":[\"[Þöļýĝöñ ŕööɱ ~~~~]\"],\"editor.lib.continuation.rectangleRoom\":[\"[Ŕéçţáñĝļé ŕööɱ ~~~~]\"],\"editor.lib.continuation.singleCabinet\":[\"[Šîñĝļé çáƀîñéţ ~~~~]\"],\"editor.lib.continuation.singleCanopy\":[\"[Šîñĝļé çáñöþý ~~~~]\"],\"editor.lib.continuation.singleFence\":[\"[Šîñĝļé ƒéñçé ~~~~]\"],\"editor.lib.continuation.walls\":[\"[Ŵáļļš ~~]\"],\"editor.lib.hudTitle.cutOpening\":[\"[Çûţ öþéñîñĝ ~~~]\"],\"editor.lib.hudTitle.divideRoom\":[\"[Ðîṽîðé ŕööɱ ~~~]\"],\"editor.lib.hudTitle.editKind\":[\"[Éðîţ \",[\"kind\"],\" ~~]\"],\"editor.lib.hudTitle.erase\":[\"[Éŕášé ~~]\"],\"editor.lib.hudTitle.levelTerrain\":[\"[Ļéṽéļ ţéŕŕáîñ ~~~~]\"],\"editor.lib.hudTitle.lowerTerrain\":[\"[Ļöŵéŕ ţéŕŕáîñ ~~~~]\"],\"editor.lib.hudTitle.mezzanine\":[\"[Ṁéžžáñîñé ~~~]\"],\"editor.lib.hudTitle.moveKind\":[\"[Ṁöṽé \",[\"kind\"],\" ~~]\"],\"editor.lib.hudTitle.moveRoom\":[\"[Ṁöṽé ŕööɱ ~~~]\"],\"editor.lib.hudTitle.moveSelection\":[\"[Ṁöṽé šéļéçţîöñ ~~~~]\"],\"editor.lib.hudTitle.paint\":[\"[Þáîñţ ~~]\"],\"editor.lib.hudTitle.paintARectangle\":[\"[Þáîñţ á ŕéçţáñĝļé ~~~~~]\"],\"editor.lib.hudTitle.paintAShape\":[\"[Þáîñţ á šĥáþé ~~~~]\"],\"editor.lib.hudTitle.pickMaterial\":[\"[Þîçķ ɱáţéŕîáļ ~~~~]\"],\"editor.lib.hudTitle.raiseTerrain\":[\"[Ŕáîšé ţéŕŕáîñ ~~~~]\"],\"editor.lib.hudTitle.resize\":[\"[Ŕéšîžé ~~]\"],\"editor.lib.hudTitle.rotate\":[\"[Ŕöţáţé ~~]\"],\"editor.lib.hudTitle.select\":[\"[Šéļéçţ ~~]\"],\"editor.lib.hudTitle.smartMeasure\":[\"[Šɱáŕţ ɱéášûŕé ~~~~]\"],\"editor.lib.hudTitle.smoothTerrain\":[\"[Šɱööţĥ ţéŕŕáîñ ~~~~]\"],\"editor.lib.hudTitle.splitKind\":[\"[Šþļîţ \",[\"kind\"],\" ~~]\"],\"editor.lib.hudTitle.terrace\":[\"[Ţéŕŕáçé ~~~]\"],\"editor.lib.wallDrawVariant.polygonRoom\":[\"[Þöļýĝöñ ŕööɱ ~~~~]\"],\"editor.lib.wallDrawVariant.rectangleRoom\":[\"[Ŕéçţáñĝļé ŕööɱ ~~~~]\"],\"editor.lib.wallDrawVariant.walls\":[\"[Ŵáļļš ~~]\"],\"editor.reloadEditor\":[\"[Ŕéļöáð éðîţöŕ ~~~~]\"],\"editor.theEditorSceneFailedToRender\":[\"[Ţĥé éðîţöŕ šçéñé ƒáîļéð ţö ŕéñðéŕ ~~~~~~~~~]\"],\"editor.toolHint.aCurtainWallTakesNoCorner\":[\"[Å çûŕţáîñ ŵáļļ ţáķéš ñö çöŕñéŕ ŵîñðöŵ ~~~~~~~~~~]\"],\"editor.toolHint.aCurvedWallTakesNoCorner\":[\"[Å çûŕṽéð ŵáļļ ţáķéš ñö çöŕñéŕ ŵîñðöŵ ~~~~~~~~~]\"],\"editor.toolHint.addACornerClickTheFirst\":[\"[Åðð á çöŕñéŕ · çļîçķ ţĥé ƒîŕšţ ţö çļöšé ~~~~~~~~~]\"],\"editor.toolHint.anotherOpeningIsInTheWay\":[\"[Åñöţĥéŕ öþéñîñĝ îš îñ ţĥé ŵáý áţ ţĥé çöŕñéŕ ~~~~~~~~~~~]\"],\"editor.toolHint.autoHangers\":[\"[Åûţö ĥáñĝéŕš ~~~~]\"],\"editor.toolHint.autoHangersClickOrPressH\":[\"[Åûţö ĥáñĝéŕš - çļîçķ öŕ þŕéšš Ĥ ţö ţöĝĝļé ~~~~~~~~~~]\"],\"editor.toolHint.autoHangersOff\":[\"[Åûţö ĥáñĝéŕš: Öƒƒ ~~~~~]\"],\"editor.toolHint.autoHangersOn\":[\"[Åûţö ĥáñĝéŕš: Öñ ~~~~]\"],\"editor.toolHint.bypassSnapping\":[\"[Ɓýþášš šñáþþîñĝ ~~~~~]\"],\"editor.toolHint.cancel\":[\"[Çáñçéļ ~~]\"],\"editor.toolHint.cancelMove\":[\"[Çáñçéļ ɱöṽé ~~~]\"],\"editor.toolHint.cancelRunExit\":[\"[Çáñçéļ ŕûñ / éẋîţ ~~~~]\"],\"editor.toolHint.cancelStartPoint\":[\"[Çáñçéļ šţáŕţ þöîñţ ~~~~~]\"],\"editor.toolHint.cornerWindow\":[\"[Çöŕñéŕ ŵîñðöŵ ~~~~]\"],\"editor.toolHint.cuts\":[\"[Çûţš ~~]\"],\"editor.toolHint.cutsValue\":[\"[Çûţš: \",[\"value\"],\" ~~]\"],\"editor.toolHint.cutsValueEven\":[\"[Çûţš: \",[\"value\"],\", éṽéñ ~~~]\"],\"editor.toolHint.cycleMonoGableButterfly\":[\"[Çýçļé ɱöñö / ĝáƀļé / ƀûţţéŕƒļý ~~~~~~~]\"],\"editor.toolHint.cycleSnappingMode\":[\"[Çýçļé šñáþþîñĝ ɱöðé ~~~~~~]\"],\"editor.toolHint.doorStyleClickOrPressL\":[\"[Ðööŕ šţýļé — çļîçķ öŕ þŕéšš Ļ ţö çýçļé ~~~~~~~~~]\"],\"editor.toolHint.doorTypeClickOrPressO\":[\"[Ðööŕ ţýþé — çļîçķ öŕ þŕéšš Ö ţö çýçļé ~~~~~~~~~]\"],\"editor.toolHint.dropDownspoutFromOutlet\":[\"[Ðŕöþ ðöŵñšþöûţ ƒŕöɱ öûţļéţ ~~~~~~~]\"],\"editor.toolHint.ductDiameterDownUp\":[\"[Ðûçţ ðîáɱéţéŕ ðöŵñ / ûþ ~~~~~~]\"],\"editor.toolHint.endRunCancel\":[\"[Éñð ŕûñ / çáñçéļ ~~~~]\"],\"editor.toolHint.exit\":[\"[Éẋîţ ~~]\"],\"editor.toolHint.exitDrawing\":[\"[Éẋîţ ðŕáŵîñĝ ~~~~]\"],\"editor.toolHint.finishAndContinue\":[\"[Ƒîñîšĥ áñð çöñţîñûé ~~~~~~]\"],\"editor.toolHint.finishCeiling\":[\"[Ƒîñîšĥ çéîļîñĝ ~~~~]\"],\"editor.toolHint.finishGridAxis\":[\"[Ƒîñîšĥ ĝŕîð áẋîš ~~~~~]\"],\"editor.toolHint.finishMeasurement\":[\"[Ƒîñîšĥ ɱéášûŕéɱéñţ ~~~~~~]\"],\"editor.toolHint.finishMultiPointWitnesses\":[\"[Ƒîñîšĥ ɱûļţî-þöîñţ ŵîţñéššéš ~~~~~~~~]\"],\"editor.toolHint.finishSlab\":[\"[Ƒîñîšĥ šļáƀ ~~~]\"],\"editor.toolHint.flipSide\":[\"[Ƒļîþ šîðé ~~~]\"],\"editor.toolHint.followTraceALineset\":[\"[Ƒöļļöŵ: ţŕáçé á ļîñéšéţ ~~~~~~]\"],\"editor.toolHint.forcePlace\":[\"[Ƒöŕçé þļáçé ~~~]\"],\"editor.toolHint.freePlacement\":[\"[Ƒŕéé þļáçéɱéñţ ~~~~]\"],\"editor.toolHint.goVerticalClickToPlace\":[\"[Ĝö ṽéŕţîçáļ ↕, çļîçķ ţö þļáçé ~~~~~~~]\"],\"editor.toolHint.highlightOutlet\":[\"[Ĥîĝĥļîĝĥţ öûţļéţ ~~~~~]\"],\"editor.toolHint.joinAsACornerWindow\":[\"[Ĵöîñ áš á çöŕñéŕ ŵîñðöŵ ~~~~~~]\"],\"editor.toolHint.key.altDrag\":[\"[Åļţ + ðŕáĝ ~~~]\"],\"editor.toolHint.key.backspace\":[\"[Ɓáçķšþáçé ~~~]\"],\"editor.toolHint.key.click\":[\"[Çļîçķ ~~]\"],\"editor.toolHint.key.clickAgain\":[\"[Çļîçķ áĝáîñ ~~~]\"],\"editor.toolHint.key.command\":[\"[Çöɱɱáñð ~~~]\"],\"editor.toolHint.key.control\":[\"[Çöñţŕöļ ~~~]\"],\"editor.toolHint.key.delete\":[\"[Ðéļéţé ~~]\"],\"editor.toolHint.key.doubleClick\":[\"[Ðöûƀļé çļîçķ ~~~~]\"],\"editor.toolHint.key.drag\":[\"[Ðŕáĝ ~~]\"],\"editor.toolHint.key.enter\":[\"[Éñţéŕ ~~]\"],\"editor.toolHint.key.hover\":[\"[Ĥöṽéŕ ~~]\"],\"editor.toolHint.key.hoverADuctEnd\":[\"[Ĥöṽéŕ á ðûçţ éñð ~~~~]\"],\"editor.toolHint.key.hoverAPipeEnd\":[\"[Ĥöṽéŕ á þîþé éñð ~~~~]\"],\"editor.toolHint.key.hoverGutter\":[\"[Ĥöṽéŕ ĝûţţéŕ ~~~~]\"],\"editor.toolHint.key.leftClick\":[\"[Ļéƒţ çļîçķ ~~~]\"],\"editor.toolHint.key.middleClick\":[\"[Ṁîððļé çļîçķ ~~~~]\"],\"editor.toolHint.key.rShiftR\":[\"[Ŕ / Šĥîƒţ+Ŕ ~~~]\"],\"editor.toolHint.key.rightClick\":[\"[Ŕîĝĥţ çļîçķ ~~~]\"],\"editor.toolHint.key.scroll\":[\"[Šçŕöļļ ~~]\"],\"editor.toolHint.key.scrollWheel\":[\"[Šçŕöļļ ŵĥééļ ~~~~]\"],\"editor.toolHint.key.space\":[\"[Šþáçé ~~]\"],\"editor.toolHint.key.tab\":[\"[Ţáƀ ~]\"],\"editor.toolHint.mountFloorCeilingWall\":[\"[Ṁöûñţ: ƒļööŕ / çéîļîñĝ / ŵáļļ ~~~~~~~]\"],\"editor.toolHint.noRoomForTheMatchingWindow\":[\"[Ñö ŕööɱ ƒöŕ ţĥé ɱáţçĥîñĝ ŵîñðöŵ öñ ţĥé öţĥéŕ ŵáļļ ~~~~~~~~~~~~]\"],\"editor.toolHint.noWallMeetsHere\":[\"[Ñö ŵáļļ ɱééţš ĥéŕé ~~~~~]\"],\"editor.toolHint.numberOfCutsScrollOrClick\":[\"[Ñûɱƀéŕ öƒ çûţš — šçŕöļļ öŕ çļîçķ ţö çĥáñĝé ~~~~~~~~~~]\"],\"editor.toolHint.pickWitnessPoint\":[\"[Þîçķ ŵîţñéšš þöîñţ ~~~~~]\"],\"editor.toolHint.pipeSizeDownUp\":[\"[Þîþé šîžé ðöŵñ / ûþ ~~~~~]\"],\"editor.toolHint.placeAndContinue\":[\"[Þļáçé áñð çöñţîñûé ~~~~~]\"],\"editor.toolHint.placeBlock\":[\"[Þļáçé ƀļöçķ ~~~]\"],\"editor.toolHint.placeBoxVentOnRoof\":[\"[Þļáçé ƀöẋ ṽéñţ öñ ŕööƒ ~~~~~~]\"],\"editor.toolHint.placeCabinet\":[\"[Þļáçé çáƀîñéţ ~~~~]\"],\"editor.toolHint.placeCanopyOrSetTheNext\":[\"[Þļáçé çáñöþý öŕ šéţ ţĥé ñéẋţ ŕûñ þöîñţ ~~~~~~~~~~]\"],\"editor.toolHint.placeChimneyOnRoof\":[\"[Þļáçé çĥîɱñéý öñ ŕööƒ ~~~~~~]\"],\"editor.toolHint.placeColumn\":[\"[Þļáçé çöļûɱñ ~~~~]\"],\"editor.toolHint.placeCupolaOnRoof\":[\"[Þļáçé çûþöļá öñ ŕööƒ ~~~~~~]\"],\"editor.toolHint.placeDimensionLineWhenNeeded\":[\"[Þļáçé ðîɱéñšîöñ ļîñé ŵĥéñ ñééðéð ~~~~~~~~~]\"],\"editor.toolHint.placeDoorOnWall\":[\"[Þļáçé ðööŕ öñ ŵáļļ ~~~~~]\"],\"editor.toolHint.placeDormerOnRoof\":[\"[Þļáçé ðöŕɱéŕ öñ ŕööƒ ~~~~~~]\"],\"editor.toolHint.placeElevator\":[\"[Þļáçé éļéṽáţöŕ ~~~~]\"],\"editor.toolHint.placeEyebrowVentOnRoof\":[\"[Þļáçé éýéƀŕöŵ ṽéñţ öñ ŕööƒ ~~~~~~~]\"],\"editor.toolHint.placeFitting\":[\"[Þļáçé ƒîţţîñĝ ~~~~]\"],\"editor.toolHint.placeGutterOnRoofEave\":[\"[Þļáçé ĝûţţéŕ öñ ŕööƒ éáṽé ~~~~~~~]\"],\"editor.toolHint.placeItLockedTo45\":[\"[Þļáçé îţ (ļöçķéð ţö 45°) ~~~~~]\"],\"editor.toolHint.placeItem\":[\"[Þļáçé îţéɱ ~~~]\"],\"editor.toolHint.placeMeasurementPoint\":[\"[Þļáçé ɱéášûŕéɱéñţ þöîñţ ~~~~~~~]\"],\"editor.toolHint.placeOnAFence\":[\"[Þļáçé öñ á ƒéñçé ~~~~]\"],\"editor.toolHint.placeRegister\":[\"[Þļáçé ŕéĝîšţéŕ ~~~~]\"],\"editor.toolHint.placeRidgeVentOnRoof\":[\"[Þļáçé ŕîðĝé ṽéñţ öñ ŕööƒ ~~~~~~]\"],\"editor.toolHint.placeShelf\":[\"[Þļáçé šĥéļƒ ~~~]\"],\"editor.toolHint.placeSkylightOnRoof\":[\"[Þļáçé šķýļîĝĥţ öñ ŕööƒ ~~~~~~]\"],\"editor.toolHint.placeSolarPanelArrayOnRoof\":[\"[Þļáçé šöļáŕ þáñéļ áŕŕáý öñ ŕööƒ ~~~~~~~~]\"],\"editor.toolHint.placeSpawnPoint\":[\"[Þļáçé šþáŵñ þöîñţ ~~~~~]\"],\"editor.toolHint.placeStairs\":[\"[Þļáçé šţáîŕš ~~~~]\"],\"editor.toolHint.placeTrap\":[\"[Þļáçé ţŕáþ ~~~]\"],\"editor.toolHint.placeTurbineVentOnRoof\":[\"[Þļáçé ţûŕƀîñé ṽéñţ öñ ŕööƒ ~~~~~~~]\"],\"editor.toolHint.placeUnit\":[\"[Þļáçé ûñîţ ~~~]\"],\"editor.toolHint.placeWindowOnWall\":[\"[Þļáçé ŵîñðöŵ öñ ŵáļļ ~~~~~~]\"],\"editor.toolHint.placeWithoutTheCornerSnap\":[\"[Þļáçé ŵîţĥöûţ ţĥé çöŕñéŕ šñáþ ~~~~~~~~]\"],\"editor.toolHint.placement\":[\"[Þļáçéɱéñţ ~~~]\"],\"editor.toolHint.placementAuto\":[\"[Þļáçéɱéñţ: Åûţö ~~~~]\"],\"editor.toolHint.placementGround\":[\"[Þļáçéɱéñţ: Ĝŕöûñð ~~~~~]\"],\"editor.toolHint.placementRoof\":[\"[Þļáçéɱéñţ: Ŕööƒ ~~~~]\"],\"editor.toolHint.placementSurfaceClickOrPressP\":[\"[Þļáçéɱéñţ šûŕƒáçé - çļîçķ öŕ þŕéšš Þ ţö çýçļé ~~~~~~~~~~~]\"],\"editor.toolHint.placementType\":[\"[Þļáçéɱéñţ ţýþé ~~~~]\"],\"editor.toolHint.placementTypeClickOrPressI\":[\"[Þļáçéɱéñţ ţýþé — çļîçķ öŕ þŕéšš Î ţö ţöĝĝļé ~~~~~~~~~~~]\"],\"editor.toolHint.removeLastPoint\":[\"[Ŕéɱöṽé ļášţ þöîñţ ~~~~~]\"],\"editor.toolHint.removeLastWitness\":[\"[Ŕéɱöṽé ļášţ ŵîţñéšš ~~~~~~]\"],\"editor.toolHint.rotate\":[\"[Ŕöţáţé ~~]\"],\"editor.toolHint.rotate45\":[\"[Ŕöţáţé ±45° ~~]\"],\"editor.toolHint.rotate45FloorCeiling\":[\"[Ŕöţáţé ±45° (ƒļööŕ / çéîļîñĝ) ~~~~~~]\"],\"editor.toolHint.rotateGhost15\":[\"[Ŕöţáţé ĝĥöšţ ±15° ~~~~]\"],\"editor.toolHint.rotateOrFlipTheRunSide\":[\"[Ŕöţáţé öŕ ƒļîþ ţĥé ŕûñ šîðé ~~~~~~~]\"],\"editor.toolHint.rotateRoofDirection90\":[\"[Ŕöţáţé ŕööƒ ðîŕéçţîöñ 90° ~~~~~~]\"],\"editor.toolHint.rotateSpawnPoint\":[\"[Ŕöţáţé šþáŵñ þöîñţ ~~~~~]\"],\"editor.toolHint.roundRectangularOval\":[\"[Ŕöûñð / ŕéçţáñĝûļáŕ / öṽáļ ~~~~~~]\"],\"editor.toolHint.setFenceStartEnd\":[\"[Šéţ ƒéñçé šţáŕţ / éñð ~~~~~]\"],\"editor.toolHint.setOneCornerThenTheOpposite\":[\"[Šéţ öñé çöŕñéŕ, ţĥéñ ţĥé öþþöšîţé ~~~~~~~~~]\"],\"editor.toolHint.setRoofFootprint\":[\"[Šéţ ŕööƒ ƒööţþŕîñţ ~~~~~]\"],\"editor.toolHint.setWallStartEnd\":[\"[Šéţ ŵáļļ šţáŕţ / éñð ~~~~~]\"],\"editor.toolHint.slopeLevel\":[\"[Šļöþé / ļéṽéļ ~~~]\"],\"editor.toolHint.snapOntoTheRun\":[\"[Šñáþ öñţö ţĥé ŕûñ ~~~~~]\"],\"editor.toolHint.splitAtTheMarks\":[\"[Šþļîţ áţ ţĥé ɱáŕķš ~~~~~]\"],\"editor.toolHint.startGridAxis\":[\"[Šţáŕţ ĝŕîð áẋîš ~~~~]\"],\"editor.toolHint.startLineset\":[\"[Šţáŕţ ļîñéšéţ ~~~~]\"],\"editor.toolHint.startLiquidLine\":[\"[Šţáŕţ ļîǫûîð ļîñé ~~~~~]\"],\"editor.toolHint.startRun\":[\"[Šţáŕţ ŕûñ ~~~]\"],\"editor.toolHint.startSegment\":[\"[Šţáŕţ šéĝɱéñţ ~~~~]\"],\"editor.toolHint.stepBackOrCancel\":[\"[Šţéþ ƀáçķ öŕ çáñçéļ ~~~~~]\"],\"editor.toolHint.style\":[\"[Šţýļé ~~]\"],\"editor.toolHint.styleBarn\":[\"[Šţýļé: Ɓáŕñ ~~~]\"],\"editor.toolHint.styleCasement\":[\"[Šţýļé: Çášéɱéñţ ~~~~]\"],\"editor.toolHint.styleCraftsman\":[\"[Šţýļé: Çŕáƒţšɱáñ ~~~~~]\"],\"editor.toolHint.styleDoubleHung\":[\"[Šţýļé: Ðöûƀļé-ĥûñĝ ~~~~~]\"],\"editor.toolHint.styleFrench\":[\"[Šţýļé: Ƒŕéñçĥ ~~~~]\"],\"editor.toolHint.styleGlass\":[\"[Šţýļé: Ĝļášš ~~~]\"],\"editor.toolHint.styleGrid\":[\"[Šţýļé: Ĝŕîð ~~~]\"],\"editor.toolHint.styleHalfLouvered\":[\"[Šţýļé: Ĥáļƒ-ļöûṽéŕéð ~~~~~~]\"],\"editor.toolHint.styleHorizontalBands\":[\"[Šţýļé: Ĥöŕîžöñţáļ ƀáñðš ~~~~~~]\"],\"editor.toolHint.styleModern\":[\"[Šţýļé: Ṁöðéŕñ ~~~~]\"],\"editor.toolHint.stylePanel\":[\"[Šţýļé: Þáñéļ ~~~]\"],\"editor.toolHint.stylePaneledGlass\":[\"[Šţýļé: Þáñéļéð ĝļášš ~~~~~~]\"],\"editor.toolHint.styleShaker\":[\"[Šţýļé: Šĥáķéŕ ~~~~]\"],\"editor.toolHint.styleSingle\":[\"[Šţýļé: Šîñĝļé ~~~~]\"],\"editor.toolHint.styleSixPanel\":[\"[Šţýļé: Šîẋ-þáñéļ ~~~~]\"],\"editor.toolHint.styleSliding\":[\"[Šţýļé: Šļîðîñĝ ~~~~]\"],\"editor.toolHint.styleTallGrid\":[\"[Šţýļé: Ţáļļ ĝŕîð ~~~~]\"],\"editor.toolHint.styleTransom\":[\"[Šţýļé: Ţŕáñšöɱ ~~~~]\"],\"editor.toolHint.styleTripleHung\":[\"[Šţýļé: Ţŕîþļé-ĥûñĝ ~~~~~]\"],\"editor.toolHint.styleWideGrid\":[\"[Šţýļé: Ŵîðé ĝŕîð ~~~~]\"],\"editor.toolHint.switchRotationAxisYXZ\":[\"[Šŵîţçĥ ŕöţáţîöñ áẋîš (Ý → Ẋ → Ž) ~~~~~~~]\"],\"editor.toolHint.theWallsMeetAtTooSharp\":[\"[Ţĥé ŵáļļš ɱééţ áţ ţöö šĥáŕþ öŕ ţöö ƒļáţ áñ áñĝļé ~~~~~~~~~~~~]\"],\"editor.toolHint.theWindowWaitingThereIsTaller\":[\"[Ţĥé ŵîñðöŵ ŵáîţîñĝ ţĥéŕé îš ţáļļéŕ ţĥáñ ţĥîš ŵáļļ ~~~~~~~~~~~~~]\"],\"editor.toolHint.threeOrMoreWallsMeetHere\":[\"[Ţĥŕéé öŕ ɱöŕé ŵáļļš ɱééţ ĥéŕé ~~~~~~~~]\"],\"editor.toolHint.traceCeilingOutline\":[\"[Ţŕáçé çéîļîñĝ öûţļîñé ~~~~~~]\"],\"editor.toolHint.traceSlabOutline\":[\"[Ţŕáçé šļáƀ öûţļîñé ~~~~~]\"],\"editor.toolHint.type\":[\"[Ţýþé ~~]\"],\"editor.toolHint.typeAwning\":[\"[Ţýþé: Åŵñîñĝ ~~~]\"],\"editor.toolHint.typeBarn\":[\"[Ţýþé: Ɓáŕñ ~~~]\"],\"editor.toolHint.typeBay\":[\"[Ţýþé: Ɓáý ~~~]\"],\"editor.toolHint.typeBow\":[\"[Ţýþé: Ɓöŵ ~~~]\"],\"editor.toolHint.typeCabinet\":[\"[Ţýþé: Çáƀîñéţ ~~~~]\"],\"editor.toolHint.typeCasement\":[\"[Ţýþé: Çášéɱéñţ ~~~~]\"],\"editor.toolHint.typeDouble\":[\"[Ţýþé: Ðöûƀļé ~~~]\"],\"editor.toolHint.typeDoubleHung\":[\"[Ţýþé: Ðöûƀļé Ĥûñĝ ~~~~~]\"],\"editor.toolHint.typeFixed\":[\"[Ţýþé: Ƒîẋéð ~~~]\"],\"editor.toolHint.typeFolding\":[\"[Ţýþé: Ƒöļðîñĝ ~~~~]\"],\"editor.toolHint.typeFrench\":[\"[Ţýþé: Ƒŕéñçĥ ~~~]\"],\"editor.toolHint.typeHinged\":[\"[Ţýþé: Ĥîñĝéð ~~~]\"],\"editor.toolHint.typeIsland\":[\"[Ţýþé: Κļáñð ~~~]\"],\"editor.toolHint.typeLouvered\":[\"[Ţýþé: Ļöûṽéŕéð ~~~~]\"],\"editor.toolHint.typePocket\":[\"[Ţýþé: Þöçķéţ ~~~]\"],\"editor.toolHint.typeSingleHung\":[\"[Ţýþé: Šîñĝļé Ĥûñĝ ~~~~~]\"],\"editor.toolHint.typeSliding\":[\"[Ţýþé: Šļîðîñĝ ~~~~]\"],\"editor.toolHint.verticalStackClickToPlace\":[\"[Ṽéŕţîçáļ šţáçķ ↕, çļîçķ ţö þļáçé ~~~~~~~~]\"],\"editor.toolHint.wasteVent\":[\"[Ŵášţé / ṽéñţ ~~~]\"],\"editor.toolHint.windowStyleClickOrPressL\":[\"[Ŵîñðöŵ šţýļé — çļîçķ öŕ þŕéšš Ļ ţö çýçļé ~~~~~~~~~~]\"],\"editor.toolHint.windowTypeClickOrPressO\":[\"[Ŵîñðöŵ ţýþé — çļîçķ öŕ þŕéšš Ö ţö çýçļé ~~~~~~~~~]\"],\"editor.views.plugins\":[\"[Þļûĝîñš ~~~]\"],\"editor.views.view2d\":[\"[2Ð ~]\"],\"editor.views.view3d\":[\"[3Ð ~]\"],\"editor.views.viewBar.auto\":[\"[Åûţö ~~]\"],\"editor.views.viewBar.browsePlugins\":[\"[Ɓŕöŵšé þļûĝîñš ~~~~]\"],\"editor.views.viewBar.closeLabel\":[\"[Çļöšé \",[\"label\"],\" ~~]\"],\"editor.views.viewBar.closeSplit\":[\"[Çļöšé šþļîţ (\\\\) ~~~]\"],\"editor.views.viewBar.ground\":[\"[Ĝŕöûñð ~~]\"],\"editor.views.viewBar.groundSolid\":[\"[\",[\"standing\",\"select\",{\"partly\":[\"Þáŕţļý ƀéļöŵ ĝŕáðé · ĝŕöûñð šöļîð\"],\"below\":[\"Ɓéļöŵ ĝŕáðé · ĝŕöûñð šöļîð\"],\"other\":[\"Ĝŕöûñð šöļîð\"]}],\" ~~~~~~~~~~~~~~~~~~]\"],\"editor.views.viewBar.groundVeiled\":[\"[\",[\"standing\",\"select\",{\"partly\":[\"Þáŕţļý ƀéļöŵ ĝŕáðé · ĝŕöûñð ṽéîļéð\"],\"below\":[\"Ɓéļöŵ ĝŕáðé · ĝŕöûñð ṽéîļéð\"],\"other\":[\"Ĝŕöûñð ṽéîļéð\"]}],\" ~~~~~~~~~~~~~~~~~~~]\"],\"editor.views.viewBar.keepTheGroundSolid\":[\"[Ķééþ ţĥé ĝŕöûñð šöļîð ~~~~~~]\"],\"editor.views.viewBar.moreViews\":[\"[Ṁöŕé ṽîéŵš ~~~]\"],\"editor.views.viewBar.paneViews\":[\"[Þáñé \",[\"pane\"],\" ṽîéŵš ~~~]\"],\"editor.views.viewBar.pinLabel\":[\"[Þîñ \",[\"label\"],\" ~]\"],\"editor.views.viewBar.pinToTheViewBar\":[\"[Þîñ ţö ţĥé ṽîéŵ ƀáŕ ~~~~~]\"],\"editor.views.viewBar.solid\":[\"[Šöļîð ~~]\"],\"editor.views.viewBar.split\":[\"[Šþļîţ (\\\\) ~~]\"],\"editor.views.viewBar.split2\":[\"[Šþļîţ ~~]\"],\"editor.views.viewBar.swapPanes\":[\"[Šŵáþ þáñéš ~~~]\"],\"editor.views.viewBar.unpinFromTheViewBar\":[\"[Ûñþîñ ƒŕöɱ ţĥé ṽîéŵ ƀáŕ ~~~~~~]\"],\"editor.views.viewBar.unpinLabel\":[\"[Ûñþîñ \",[\"label\"],\" ~~]\"],\"editor.views.viewBar.veilTheGroundOverALevel\":[\"[Ṽéîļ ţĥé ĝŕöûñð öṽéŕ á ļéṽéļ ƀéļöŵ ĝŕáðé ~~~~~~~~~~]\"],\"editor.views.viewBar.views\":[\"[Ṽîéŵš ~~]\"],\"editor.youCanRetryTheSceneOr\":[\"[Ýöû çáñ ŕéţŕý ţĥé šçéñé öŕ ŕéţûŕñ ĥöɱé ŵîţĥöûţ ŕéļöáðîñĝ ţĥé ŵĥöļé áþþ šĥéļļ. ~~~~~~~~~~~~~~~~~~~]\"],\"node.block.description\":[\"[Å ţöþöļöĝý-ƀáçķéð šöļîð éðîţéð ðîŕéçţļý îñ ţĥé çáñṽáš. ~~~~~~~~~~~~~~]\"],\"node.block.label\":[\"[Ɓļöçķ ~~]\"],\"node.boxVent.description\":[\"[Šɱáļļ ļöûṽéŕéð éẋĥáûšţ ṽéñţ ţĥáţ šîţš öñ á ŕööƒ šļöþé. ~~~~~~~~~~~~~~]\"],\"node.boxVent.label\":[\"[Ɓöẋ Ṽéñţ ~~~]\"],\"node.building.description\":[\"[Å ƀûîļðîñĝ çöñţáîñéŕ ĥöļðîñĝ öñé öŕ ɱöŕé ļéṽéļš. ~~~~~~~~~~~~]\"],\"node.building.label\":[\"[Ɓûîļðîñĝ ~~~]\"],\"node.cabinet.description\":[\"[Å çöñƒîĝûŕáƀļé þáŕáɱéţŕîç ƀášé çáƀîñéţ. ~~~~~~~~~~~]\"],\"node.cabinet.label\":[\"[Ṁöðûļáŕ Çáƀîñéţ ~~~~~]\"],\"node.cabinetModule.description\":[\"[Åñ éðîţáƀļé ɱöðûļé îñšîðé á ɱöðûļáŕ çáƀîñéţ ŕûñ. ~~~~~~~~~~~~]\"],\"node.cabinetModule.label\":[\"[Çáƀîñéţ Ṁöðûļé ~~~~]\"],\"node.ceiling.description\":[\"[Å þöļýĝöñ-ƀöûñðéð çéîļîñĝ šûŕƒáçé ţĥáţ ĥöšţš çéîļîñĝ-ɱöûñţéð îţéɱš. ~~~~~~~~~~~~~~~~~~]\"],\"node.ceiling.label\":[\"[Çéîļîñĝ ~~~]\"],\"node.chimney.description\":[\"[Ṽéŕţîçáļ ɱášöñŕý šţáçķ öñ á ŕööƒ šéĝɱéñţ. ~~~~~~~~~~~]\"],\"node.chimney.label\":[\"[Çĥîɱñéý ~~~]\"],\"node.column.description\":[\"[Å þáŕáɱéţŕîç çöļûɱñ ŵîţĥ çöñƒîĝûŕáƀļé çŕöšš-šéçţîöñ, ƀášé, áñð çáþîţáļ. ~~~~~~~~~~~~~~~~~~]\"],\"node.column.label\":[\"[Çöļûɱñ ~~]\"],\"node.constructionDimension.description\":[\"[Åššöçîáţîṽé ļîñéáŕ, çûŕṽéð, çîŕçûļáŕ, áñĝûļáŕ, öŕ çööŕðîñáţé þļáñ ðîɱéñšîöñ. ~~~~~~~~~~~~~~~~~~~]\"],\"node.constructionDimension.label\":[\"[Çöñšţŕûçţîöñ Ðîɱéñšîöñ ~~~~~~~]\"],\"node.cupola.description\":[\"[Ļöûṽéŕéð ŕööƒ ļáñţéŕñ ŵîţĥ á ðöɱé öŕ þýŕáɱîð çáþ áñð öþţîöñáļ ƒîñîáļ. ~~~~~~~~~~~~~~~~~~]\"],\"node.cupola.label\":[\"[Çûþöļá ~~]\"],\"node.door.description\":[\"[Å ðööŕ çûţ îñţö á ŵáļļ. Åñîɱáţéð öþéñ/çļöšé šţáţé. ~~~~~~~~~~~~]\"],\"node.door.label\":[\"[Ðööŕ ~~]\"],\"node.dormer.description\":[\"[Ĥöûšé-šĥáþéð þŕöţŕûšîöñ öñ á ŕööƒ šéĝɱéñţ. ~~~~~~~~~~~]\"],\"node.dormer.label\":[\"[Ðöŕɱéŕ ~~]\"],\"node.downspout.description\":[\"[Ṽéŕţîçáļ ðŕöþ þîþé ƒŕöɱ á ĝûţţéŕ öûţļéţ ţö ţĥé ĝŕöûñð. ~~~~~~~~~~~~~~]\"],\"node.downspout.label\":[\"[Ðöŵñšþöûţ ~~~]\"],\"node.ductFitting.description\":[\"[Éļƀöŵ, ţéé, ŕéðûçéŕ, öŕ šǫûáŕé-ţö-ŕöûñð ţŕáñšîţîöñ çöññéçţîñĝ ðûçţ ŕûñš. ~~~~~~~~~~~~~~~~~~]\"],\"node.ductFitting.label\":[\"[Ðûçţ Ƒîţţîñĝ ~~~~]\"],\"node.ductSegment.description\":[\"[ĤṼÅÇ ðûçţ ŕûñ — þöļýļîñé öƒ ŕöûñð, ŕéçţ, öŕ ƒļáţ-öṽáļ šéçţîöñš. ~~~~~~~~~~~~~~~]\"],\"node.ductSegment.label\":[\"[Ðûçţ ~~]\"],\"node.ductTerminal.description\":[\"[Ðûçţ ţéŕɱîñáļ — šûþþļý ŕéĝîšţéŕ, çéîļîñĝ ðûšéŕ, öŕ ŕéţûŕñ ĝŕîļļé. Ðûçţ ŕûñš éñð áţ îţš çöļļáŕ. ~~~~~~~~~~~~~~~~~~~~~~~~]\"],\"node.ductTerminal.label\":[\"[Ŕéĝîšţéŕ ~~~]\"],\"node.elevator.description\":[\"[Å ɱûļţî-ļéṽéļ éļéṽáţöŕ šĥáƒţ ŵîţĥ çöñƒîĝûŕáƀļé öþéñîñĝš þéŕ ļéṽéļ. ~~~~~~~~~~~~~~~~~]\"],\"node.elevator.label\":[\"[Éļéṽáţöŕ ~~~]\"],\"node.eyebrowVent.description\":[\"[Ļöŵ çûŕṽéð ļéñš-šĥáþéð ŕööƒ ṽéñţ ŵîţĥ á ļöûṽéŕéð ƒŕöñţ. ~~~~~~~~~~~~~~]\"],\"node.eyebrowVent.label\":[\"[Éýéƀŕöŵ Ṽéñţ ~~~~]\"],\"node.fence.description\":[\"[Å šţŕáîĝĥţ öŕ çûŕṽéð ƒéñçé šéĝɱéñţ ŵîţĥ çöñƒîĝûŕáƀļé þöšţš áñð îñƒîļļ. ~~~~~~~~~~~~~~~~~~]\"],\"node.fence.label\":[\"[Ƒéñçé ~~]\"],\"node.fenceGate.description\":[\"[Å ĝáţé ĥöšţéð ƀý á ƒéñçé. ~~~~~~]\"],\"node.fenceGate.label\":[\"[Ĝáţé ~~]\"],\"node.fenceOpening.description\":[\"[Åñ îñţéñţîöñáļ öþéñîñĝ îñ á ƒéñçé. ~~~~~~~~~]\"],\"node.fenceOpening.label\":[\"[Öþéñ Þáššáĝé ~~~~]\"],\"node.floorOpening.label\":[\"[Ƒļööŕ öþéñîñĝ ~~~~]\"],\"node.guide.description\":[\"[Å ɱéášûŕéɱéñţ / ŕéƒéŕéñçé áññöţáţîöñ (ļîñéáŕ, áŕéá, öŕ áŕç). ~~~~~~~~~~~~~~]\"],\"node.guide.label\":[\"[Ĝûîðé ~~]\"],\"node.gutter.description\":[\"[Ŕáîñ-ŵáţéŕ çĥáññéļ ŕûññîñĝ áļöñĝ ţĥé éáṽé öƒ á ŕööƒ šéĝɱéñţ. ~~~~~~~~~~~~~~~]\"],\"node.gutter.label\":[\"[Ĝûţţéŕ ~~]\"],\"node.hvacEquipment.description\":[\"[Ƒûŕñáçé, áîŕ ĥáñðļéŕ, öŕ çöñðéñšéŕ — ðûçţ ŕûñš çöññéçţ ţö îţš šûþþļý/ŕéţûŕñ çöļļáŕš. ~~~~~~~~~~~~~~~~~~~~~]\"],\"node.hvacEquipment.label\":[\"[ĤṼÅÇ Ûñîţ ~~~]\"],\"node.importedMesh.description\":[\"[Ĝéöɱéţŕý þŕéšéŕṽéð ƒŕöɱ áñ îɱþöŕţéð ɱöðéļ ŵĥéñ ñö ñáţîṽé Þášçáļ šĥáþé éẋîšţš. ~~~~~~~~~~~~~~~~~~~~]\"],\"node.importedMesh.label\":[\"[Îɱþöŕţéð Ṁéšĥ ~~~~]\"],\"node.item.description\":[\"[Å çáţáļöĝ-ƀáçķéð îţéɱ (ƒûŕñîţûŕé, ƒîẋţûŕéš, ðéçöŕáţîöñš). ~~~~~~~~~~~~~~]\"],\"node.item.label\":[\"[Îţéɱ ~~]\"],\"node.leanToExtension.description\":[\"[Åñ áţţáçĥéð ɱöñö-þîţçĥ öŕ ƒŕééšţáñðîñĝ ɱöñö, ĝáƀļé, öŕ ƀûţţéŕƒļý çáñöþý ŵîţĥ ɱáñáĝéð šţŕûçţûŕé áñð ðŕáîñáĝé. ~~~~~~~~~~~~~~~~~~~~~~~~~~~]\"],\"node.leanToExtension.label\":[\"[Çáñöþý ~~]\"],\"node.level.description\":[\"[Å šîñĝļé ƒļööŕ öƒ á ƀûîļðîñĝ, ĥöļðîñĝ ŵáļļš / šļáƀš / çéîļîñĝš / îţéɱš. ~~~~~~~~~~~~~~~~]\"],\"node.level.label\":[\"[Ļéṽéļ ~~]\"],\"node.lineset.description\":[\"[Ŕéƒŕîĝéŕáñţ ļîñéšéţ — çöþþéŕ šûçţîöñ + ļîǫûîð þáîŕ ĵöîñîñĝ á çöñðéñšéŕ ţö ţĥé îñðööŕ çöîļ. ~~~~~~~~~~~~~~~~~~~~~~]\"],\"node.lineset.label\":[\"[Ļîñéšéţ ~~~]\"],\"node.liquidLine.description\":[\"[Šţáñðáļöñé ŕéƒŕîĝéŕáñţ ļîǫûîð ļîñé — á ţĥîñ ƀáŕé-çöþþéŕ ŕûñ; Ƒöļļöŵ ɱöðé ţŕáçéš áñ éẋîšţîñĝ ļîñéšéţ. ~~~~~~~~~~~~~~~~~~~~~~~~~]\"],\"node.liquidLine.label\":[\"[Ļîǫûîð Ļîñé ~~~]\"],\"node.measurement.description\":[\"[Å þéŕšîšţéñţ ðîšţáñçé, áñĝļé, áŕéá, þéŕîɱéţéŕ, öŕ ṽöļûɱé áññöţáţîöñ. ~~~~~~~~~~~~~~~~~]\"],\"node.measurement.label\":[\"[Ṁéášûŕéɱéñţ ~~~~]\"],\"node.pipeFitting.description\":[\"[ÐŴṼ ĵöîñţ — éļƀöŵ ƀéñð, 45° ŵýé, öŕ šáñîţáŕý ţéé. ~~~~~~~~~~]\"],\"node.pipeFitting.label\":[\"[Þîþé Ƒîţţîñĝ ~~~~]\"],\"node.pipeSegment.description\":[\"[Ðŕáîñ / ŵášţé / ṽéñţ þîþé ŕûñ — ðŕáŵ ļéṽéļ öŕ ţöĝĝļé á ¼″ þéŕ ƒööţ ƒáļļ ŵîţĥ Š. ~~~~~~~~~~~~~~~~~]\"],\"node.pipeSegment.label\":[\"[ÐŴṼ Þîþé ~~~]\"],\"node.pipeTrap.description\":[\"[ÐŴṼ Þ-ţŕáþ — ŵáţéŕ šéáļ öñ ţĥé ŵášţé ļîñé. Ţĥé ţŕáþ áŕɱ ŕûñš ţö ţĥé ṽéñţ. ~~~~~~~~~~~~~~~~~]\"],\"node.pipeTrap.label\":[\"[Ţŕáþ ~~]\"],\"node.proceduralItem.description\":[\"[Éẋþéŕîɱéñţáļ éðîţáƀļé ŕéçîþé ~~~~~~~~]\"],\"node.proceduralItem.label\":[\"[Þŕöçéðûŕáļ îţéɱ ~~~~~]\"],\"node.ridgeVent.description\":[\"[Ṽéñţîļáţîöñ šţŕîþ ŕûññîñĝ áļöñĝ ţĥé ŕîðĝé öƒ á ŕööƒ šéĝɱéñţ. ~~~~~~~~~~~~~~~]\"],\"node.ridgeVent.label\":[\"[Ŕîðĝé Ṽéñţ ~~~]\"],\"node.roof.description\":[\"[Å þîţçĥéð / ĥîþ / ĝáƀļé ŕööƒ çöɱþöšéð öƒ öñé öŕ ɱöŕé šéĝɱéñţš. ~~~~~~~~~~~~~~~]\"],\"node.roof.label\":[\"[Ŕööƒ ~~]\"],\"node.roofSegment.description\":[\"[Å šîñĝļé þîţçĥéð þļáñé öƒ á þáŕéñţ ŕööƒ. ~~~~~~~~~~]\"],\"node.roofSegment.label\":[\"[Ŕööƒ Šéĝɱéñţ ~~~~]\"],\"node.scan.description\":[\"[Å çáþţûŕéð šéššîöñ ŵîţĥ öþţîöñáļ ɱéšĥ, ɱöţîöñ, ɱéðîá, áñð šéñšöŕ ðáţá. ~~~~~~~~~~~~~~~~~]\"],\"node.scan.label\":[\"[Çáþţûŕé ~~~]\"],\"node.separator.label\":[\"[Šéþáŕáţöŕ ~~~]\"],\"node.shelf.description\":[\"[Å çöñƒîĝûŕáƀļé šĥéļṽîñĝ ûñîţ. Îţéɱš ĥöšţ öñ éáçĥ ŕöŵ. ~~~~~~~~~~~~~]\"],\"node.shelf.label\":[\"[Šĥéļƒ ~~]\"],\"node.site.description\":[\"[Ţĥé ţöþ-ļéṽéļ çöñţáîñéŕ ĥöļðîñĝ ƀûîļðîñĝš, žöñéš, áñð ţĥé þŕöþéŕţý ƀöûñðáŕý. ~~~~~~~~~~~~~~~~~~~]\"],\"node.site.label\":[\"[Šîţé ~~]\"],\"node.skylight.description\":[\"[Ƒŕáɱéð ĝļášš öþéñîñĝ öñ á ŕööƒ šéĝɱéñţ. ~~~~~~~~~~]\"],\"node.skylight.label\":[\"[Šķýļîĝĥţ ~~~]\"],\"node.slab.description\":[\"[Å þöļýĝöñ-ƀöûñðéð ƒļööŕ šûŕƒáçé ţĥáţ ĥöšţš îţéɱš öñ ţöþ. ~~~~~~~~~~~~~~]\"],\"node.slab.label\":[\"[Šļáƀ ~~]\"],\"node.solarPanel.description\":[\"[Ĝŕîð öƒ þĥöţöṽöļţáîç þáñéļš ɱöûñţéð öñ á ŕööƒ šéĝɱéñţ. ~~~~~~~~~~~~~~]\"],\"node.solarPanel.label\":[\"[Šöļáŕ Þáñéļ ~~~]\"],\"node.spawn.description\":[\"[Þļáýéŕ öŕ çáɱéŕá öŕîĝîñ ŵîţĥîñ á ļéṽéļ. Öñé þéŕ ļéṽéļ. ~~~~~~~~~~~~~]\"],\"node.spawn.label\":[\"[Šþáŵñ Þöîñţ ~~~]\"],\"node.stair.description\":[\"[Å šţáîŕ çöɱþöšéð öƒ öñé öŕ ɱöŕé ƒļîĝĥţš ŵîţĥ çöñƒîĝûŕáƀļé ţŕéáðš, ŕîšéŕš, ŕáîļîñĝš. ~~~~~~~~~~~~~~~~~~~~~]\"],\"node.stair.label\":[\"[Šţáîŕ ~~]\"],\"node.stairSegment.description\":[\"[Å šîñĝļé ƒļîĝĥţ öƒ á þáŕéñţ šţáîŕ. ~~~~~~~~~]\"],\"node.stairSegment.label\":[\"[Šţáîŕ Šéĝɱéñţ ~~~~]\"],\"node.structuralGrid.description\":[\"[Þéŕšîšţéñţ çöñšţŕûçţîöñ ĝŕîð áẋîš ŵîţĥ îðéñţîƒîçáţîöñ ƀûƀƀļéš. ~~~~~~~~~~~~~~~~~]\"],\"node.structuralGrid.label\":[\"[Šţŕûçţûŕáļ Ĝŕîð ~~~~~]\"],\"node.turbineVent.description\":[\"[Ŵîñð-ðŕîṽéñ šþîññîñĝ ŵĥîŕļýƀîŕð éẋĥáûšţ ṽéñţ ƒöŕ á ŕööƒ šļöþé. ~~~~~~~~~~~~~~~~]\"],\"node.turbineVent.label\":[\"[Ţûŕƀîñé Ṽéñţ ~~~~]\"],\"node.unit.description\":[\"[Å ñáɱéð ĝŕöûþ öƒ žöñéš ƒöŕɱîñĝ öñé áþáŕţɱéñţ, ĥöţéļ ŕööɱ öŕ çöɱɱéŕçîáļ ļöţ. ~~~~~~~~~~~~~~~~~~~]\"],\"node.unit.label\":[\"[Ûñîţ ~~]\"],\"node.wall.description\":[\"[Å šţŕáîĝĥţ öŕ çûŕṽéð ŵáļļ šéĝɱéñţ. Ĥöšţš ðööŕš, ŵîñðöŵš, ļéáñ-ţö éẋţéñšîöñš, áñð ŵáļļ-ɱöûñţéð îţéɱš. ~~~~~~~~~~~~~~~~~~~~~~~~]\"],\"node.wall.label\":[\"[Ŵáļļ ~~]\"],\"node.window.description\":[\"[Å ŵîñðöŵ çûţ îñţö á ŵáļļ. Åñîɱáţéð öþéñ/çļöšé ƒöŕ öþéñîñĝ ŵîñðöŵš. ~~~~~~~~~~~~~~~~]\"],\"node.window.label\":[\"[Ŵîñðöŵ ~~]\"],\"node.zone.description\":[\"[Å þöļýĝöñáļ šîţé žöñé (ļáŵñ, ŵáţéŕ, þáṽîñĝ) ŵîţĥ á ŢŠĻ ĝŕáðîéñţ ɱáţéŕîáļ. ~~~~~~~~~~~~~~~~~~]\"],\"node.zone.label\":[\"[Žöñé ~~]\"],\"viewer.camera.orbitLeft\":[\"[Öŕƀîţ ļéƒţ ~~~]\"],\"viewer.camera.orbitRight\":[\"[Öŕƀîţ ŕîĝĥţ ~~~]\"],\"viewer.camera.topView\":[\"[Ţöþ ṽîéŵ ~~~]\"],\"viewer.common.off\":[\"[Öƒƒ ~]\"],\"viewer.common.on\":[\"[Öñ ~]\"],\"viewer.display.camera\":[\"[Çáɱéŕá ~~]\"],\"viewer.display.colored\":[\"[Çöļöŕéð ~~~]\"],\"viewer.display.colors\":[\"[Çöļöŕš ~~]\"],\"viewer.display.edges.off\":[\"[Öƒƒ ~]\"],\"viewer.display.edges.offDetail\":[\"[Ñö éðĝé ļîñéš ~~~~]\"],\"viewer.display.edges.soft\":[\"[Šöƒţ ~~]\"],\"viewer.display.edges.softDetail\":[\"[Ƒáîñţ öûţļîñé öƒ ɱáĵöŕ çŕéášéš ~~~~~~~~]\"],\"viewer.display.edges.strong\":[\"[Šţŕöñĝ ~~]\"],\"viewer.display.edges.strongDetail\":[\"[Çŕîšþ, öþáǫûé éðĝé ļîñéš ~~~~~~]\"],\"viewer.display.edges.title\":[\"[Éðĝéš ~~]\"],\"viewer.display.monochrome\":[\"[Ṁöñöçĥŕöɱé ~~~]\"],\"viewer.display.orthographic\":[\"[Öŕţĥöĝŕáþĥîç ~~~~]\"],\"viewer.display.perspective\":[\"[Þéŕšþéçţîṽé ~~~~]\"],\"viewer.display.render.rendered\":[\"[Ŕéñðéŕéð ~~~]\"],\"viewer.display.render.renderedDetail\":[\"[Ƒûļļ áɱƀîéñţ öççļûšîöñ ~~~~~~]\"],\"viewer.display.render.solid\":[\"[Šöļîð ~~]\"],\"viewer.display.render.solidDetail\":[\"[Ƒļáţ áñð ƒášţ — ñö áɱƀîéñţ öççļûšîöñ ~~~~~~~~~]\"],\"viewer.display.render.title\":[\"[Ŕéñðéŕ ~~]\"],\"viewer.display.shadows\":[\"[Šĥáðöŵš ~~~]\"],\"viewer.display.title\":[\"[Ðîšþļáý šéţţîñĝš ~~~~~]\"],\"viewer.floorplan.alignNorth\":[\"[Åļîĝñ ṽîéŵ ţö ñöŕţĥ ~~~~~]\"],\"viewer.floorplan.empty\":[\"[Ñö ƒļööŕ þļáñš áŕé áṽáîļáƀļé ƒöŕ ţĥîš šçéñé. ~~~~~~~~~~~]\"],\"viewer.floorplan.fit\":[\"[Ƒîţ ƒļööŕ þļáñ ~~~~]\"],\"viewer.floorplan.floor\":[\"[Ƒļööŕ ~~]\"],\"viewer.floorplan.floorPlan\":[\"[Ƒļööŕ þļáñ ~~~]\"],\"viewer.floorplan.viewLabel\":[\"[\",[\"floor\"],\" 2Ð ṽîéŵ ~~]\"],\"viewer.floorplan.zoomIn\":[\"[Žööɱ îñ ~~]\"],\"viewer.floorplan.zoomOut\":[\"[Žööɱ öûţ ~~~]\"],\"viewer.header.back\":[\"[Ɓáçķ ~~]\"],\"viewer.header.levels\":[\"[Ļéṽéļš ~~]\"],\"viewer.header.rooms\":[\"[Ŕööɱš ~~]\"],\"viewer.header.selection\":[\"[Šéļéçţîöñ ~~~]\"],\"viewer.header.units\":[\"[Ûñîţš ~~]\"],\"viewer.header.untitled\":[\"[Ûñţîţļéð ~~~]\"],\"viewer.header.zones\":[\"[Žöñéš ~~]\"],\"viewer.levels.exploded\":[\"[Éẋþļöðéð ~~~]\"],\"viewer.levels.label\":[\"[Ļéṽéļš: \",[\"mode\"],\" ~~]\"],\"viewer.levels.manual\":[\"[Ṁáñûáļ ~~]\"],\"viewer.levels.solo\":[\"[Šöļö ~~]\"],\"viewer.levels.stacked\":[\"[Šţáçķéð ~~~]\"],\"viewer.stage.layout\":[\"[Ṽîéŵéŕ ļáýöûţ ~~~~]\"],\"viewer.stage.split\":[\"[Šþļîţ ~~]\"],\"viewer.theme.blueprint\":[\"[Ɓļûéþŕîñţ ~~~]\"],\"viewer.theme.mediterranean\":[\"[Ṁéðîţéŕŕáñéáñ ~~~~]\"],\"viewer.theme.night\":[\"[Ñîĝĥţ ~~]\"],\"viewer.theme.overcast\":[\"[Öṽéŕçášţ ~~~]\"],\"viewer.theme.paper\":[\"[Þáþéŕ ~~]\"],\"viewer.theme.studio\":[\"[Šţûðîö ~~]\"],\"viewer.theme.sunset\":[\"[Šûñšéţ ~~]\"],\"viewer.theme.title\":[\"[Šçéñé ţĥéɱé ~~~]\"],\"viewer.theme.twilight\":[\"[Ţŵîļîĝĥţ ~~~]\"],\"viewer.theme.verdant\":[\"[Ṽéŕðáñţ ~~~]\"],\"viewer.visibility.guides\":[\"[Ĝûîðéš ~~]\"],\"viewer.visibility.scans\":[\"[Šçáñš ~~]\"],\"viewer.visibility.title\":[\"[Ṽîšîƀîļîţý ~~~]\"],\"viewer.walkthrough.label\":[\"[Ŵáļķţĥŕöûĝĥ: \",[\"state\"],\" ~~~~]\"],\"viewer.walls.cutaway\":[\"[Çûţáŵáý ~~~]\"],\"viewer.walls.fullHeight\":[\"[Ƒûļļ ĥéîĝĥţ ~~~]\"],\"viewer.walls.label\":[\"[Ŵáļļš: \",[\"mode\"],\" ~~]\"],\"viewer.walls.low\":[\"[Ļöŵ ~]\"]}")as Messages;
\ No newline at end of file
+/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"app.appShell.pascalHome\":[\"[Þášçáļ ĥöɱé ~~~]\"],\"app.buildTab.addGate\":[\"[Åðð Ĝáţé ~~~]\"],\"app.buildTab.addOpenPassage\":[\"[Åðð Öþéñ Þáššáĝé ~~~~~]\"],\"app.buildTab.addToRooms\":[\"[Åðð ţö ŕööɱš ~~~]\"],\"app.buildTab.allBuildTools\":[\"[← Åļļ ƀûîļð ţööļš ~~~~]\"],\"app.buildTab.chooseGateOrOpenPassageThen\":[\"[Çĥööšé Ĝáţé öŕ Öþéñ Þáššáĝé, ţĥéñ çļîçķ îţš þöšîţîöñ öñ áñý ƒéñçé. Ƒîñð þļáçéð ĝáţéš áñð öþéñîñĝš ûñðéŕ ţĥéîŕ ƒéñçé îñ ţĥé šçéñé ĝŕáþĥ. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~]\"],\"app.buildTab.clickALinesetToLayThe\":[\"[Çļîçķ á ļîñéšéţ ţö ļáý ţĥé ļîñé ƀéšîðé îţ. ~~~~~~~~~~]\"],\"app.buildTab.doubleGate\":[\"[Ðöûƀļé ĝáţé ~~~]\"],\"app.buildTab.featuresExtensions\":[\"[Ƒéáţûŕéš & éẋţéñšîöñš ~~~~~~]\"],\"app.buildTab.fenceFeatures\":[\"[Ƒéñçé ƒéáţûŕéš ~~~~]\"],\"app.buildTab.followLineset\":[\"[Ƒöļļöŵ ļîñéšéţ ~~~~]\"],\"app.buildTab.gate\":[\"[Ĝáţé ~~]\"],\"app.buildTab.gateStyle\":[\"[Ĝáţé šţýļé ~~~]\"],\"app.buildTab.horizontalBoards\":[\"[Ĥöŕîžöñţáļ ƀöáŕðš ~~~~~]\"],\"app.buildTab.hoverAFenceToPreviewClick\":[\"[Ĥöṽéŕ á ƒéñçé ţö þŕéṽîéŵ. Çļîçķ ţö þļáçé. Éšç çáñçéļš. Ļéáṽé ŕööɱ ƀéţŵééñ öþéñîñĝš. ~~~~~~~~~~~~~~~~~~~~]\"],\"app.buildTab.leaves\":[\"[Ļéáṽéš ~~]\"],\"app.buildTab.liquidLine\":[\"[Ļîǫûîð Ļîñé ~~~]\"],\"app.buildTab.matchFenceStyle\":[\"[Ṁáţçĥ ƒéñçé šţýļé ~~~~~]\"],\"app.buildTab.mep\":[\"[ṀÉÞ ~]\"],\"app.buildTab.off\":[\"[Öƒƒ ~]\"],\"app.buildTab.on\":[\"[Öñ ~]\"],\"app.buildTab.openRails\":[\"[Öþéñ ŕáîļš ~~~]\"],\"app.buildTab.opening\":[\"[Öþéñîñĝ ~~~]\"],\"app.buildTab.openingWidthM\":[\"[Öþéñîñĝ ŵîðţĥ (ɱ) ~~~~]\"],\"app.buildTab.outdoor\":[\"[Öûţðööŕ ~~~]\"],\"app.buildTab.picket\":[\"[Þîçķéţ ~~]\"],\"app.buildTab.roofType\":[\"[Ŕööƒ ţýþé ~~~]\"],\"app.buildTab.roomsAlreadyCreateTheirFloorAnd\":[\"[Ŕööɱš áļŕéáðý çŕéáţé ţĥéîŕ ƒļööŕ áñð çéîļîñĝ. Ûšé ţĥéšé ƒöŕ þļáţƒöŕɱš áñð öñé-öƒƒ šţŕûçţûŕé. ~~~~~~~~~~~~~~~~~~~~~~~]\"],\"app.buildTab.searchBuildToolsAndKitchenItems\":[\"[Šéáŕçĥ ƀûîļð ţööļš áñð ķîţçĥéñ îţéɱš ~~~~~~~~~~]\"],\"app.buildTab.searchToolsFridgeSink\":[\"[Šéáŕçĥ ţööļš, ƒŕîðĝé, šîñķ… ~~~~~~~]\"],\"app.buildTab.selectACurvedWallToMatch\":[\"[Šéļéçţ á çûŕṽéð ŵáļļ ţö ɱáţçĥ îţš ŕáðîûš áñð áŕç. ~~~~~~~~~~~~]\"],\"app.buildTab.singleGate\":[\"[Šîñĝļé ĝáţé ~~~]\"],\"app.buildTab.slabCeilingColumn\":[\"[Šļáƀ, çéîļîñĝ, çöļûɱñ… ~~~~~~]\"],\"app.buildTab.solidPrivacy\":[\"[Šöļîð þŕîṽáçý ~~~~]\"],\"app.buildTab.traceALineAlongsideAnExisting\":[\"[Ţŕáçé á ļîñé áļöñĝšîðé áñ éẋîšţîñĝ ļîñéšéţ (Ƒ). ~~~~~~~~~~~~]\"],\"app.buildTab.verticalSlats\":[\"[Ṽéŕţîçáļ šļáţš ~~~~]\"],\"app.editorNavbar.allProjects\":[\"[Åļļ þŕöĵéçţš ~~~~]\"],\"app.editorNavbar.preview\":[\"[Þŕéṽîéŵ ~~~]\"],\"app.editorNavbar.projectName\":[\"[Þŕöĵéçţ ñáɱé ~~~~]\"],\"app.editorNavbar.renameProject\":[\"[Ŕéñáɱé þŕöĵéçţ ~~~~]\"],\"app.editorNavbar.share\":[\"[Šĥáŕé ~~]\"],\"app.kitchenBrowser.addLabel\":[\"[Åðð \",[\"label\"],\" ~]\"],\"app.kitchenBrowser.addToKitchen\":[\"[Åðð ţö ķîţçĥéñ ~~~~]\"],\"app.kitchenBrowser.chooseAnItemThenClickTo\":[\"[Çĥööšé áñ îţéɱ, ţĥéñ çļîçķ ţö þļáçé îţ. Åþþļîáñçéš îñçļûðé ţĥéîŕ çáƀîñéţŕý. ~~~~~~~~~~~~~~~~~~~]\"],\"app.kitchenBrowser.findInThisProjectLength\":[\"[Ƒîñð îñ ţĥîš þŕöĵéçţ · \",[\"length\"],\" ~~~~~~]\"],\"app.kitchenBrowser.findName\":[\"[Ƒîñð \",[\"name\"],\" ~~]\"],\"app.kitchenBrowser.groupAdd\":[\"[Ķîţçĥéñ · Åðð ~~~]\"],\"app.kitchenBrowser.groupInThisProject\":[\"[Ķîţçĥéñ · Îñ ţĥîš þŕöĵéçţ ~~~~~~]\"],\"app.kitchenBrowser.kitchenCabinet\":[\"[Ķîţçĥéñ çáƀîñéţ ~~~~~]\"],\"app.kitchenBrowser.noMatchingKitchenItemsPlacedYet\":[\"[Ñö ɱáţçĥîñĝ ķîţçĥéñ îţéɱš þļáçéð ýéţ. ~~~~~~~~~~]\"],\"app.kitchenBrowser.selectAndShowInScene\":[\"[Šéļéçţ áñð šĥöŵ îñ šçéñé ~~~~~~]\"],\"app.lib.buildPalette.ceiling\":[\"[Çéîļîñĝ ~~~]\"],\"app.lib.buildPalette.column\":[\"[Çöļûɱñ ~~]\"],\"app.lib.buildPalette.door\":[\"[Ðööŕ ~~]\"],\"app.lib.buildPalette.duct\":[\"[Ðûçţ ~~]\"],\"app.lib.buildPalette.dwvPipe\":[\"[ÐŴṼ Þîþé ~~~]\"],\"app.lib.buildPalette.elevator\":[\"[Éļéṽáţöŕ ~~~]\"],\"app.lib.buildPalette.fence\":[\"[Ƒéñçé ~~]\"],\"app.lib.buildPalette.hvacUnit\":[\"[ĤṼÅÇ Ûñîţ ~~~]\"],\"app.lib.buildPalette.kitchen\":[\"[Ķîţçĥéñ ~~~]\"],\"app.lib.buildPalette.lineset\":[\"[Ļîñéšéţ ~~~]\"],\"app.lib.buildPalette.liquidLine\":[\"[Ļîǫûîð Ļîñé ~~~]\"],\"app.lib.buildPalette.mep\":[\"[ṀÉÞ ~]\"],\"app.lib.buildPalette.register\":[\"[Ŕéĝîšţéŕ ~~~]\"],\"app.lib.buildPalette.roof\":[\"[Ŕööƒ ~~]\"],\"app.lib.buildPalette.shelf\":[\"[Šĥéļƒ ~~]\"],\"app.lib.buildPalette.slab\":[\"[Šļáƀ ~~]\"],\"app.lib.buildPalette.spawnPoint\":[\"[Šþáŵñ þöîñţ ~~~]\"],\"app.lib.buildPalette.stairs\":[\"[Šţáîŕš ~~]\"],\"app.lib.buildPalette.terrace\":[\"[Ţéŕŕáçé ~~~]\"],\"app.lib.buildPalette.terrain\":[\"[Ţéŕŕáîñ ~~~]\"],\"app.lib.buildPalette.wall\":[\"[Ŵáļļ ~~]\"],\"app.lib.buildPalette.window\":[\"[Ŵîñðöŵ ~~]\"],\"app.lib.buildPanelModel.addFitting\":[\"[Åðð Ƒîţţîñĝ ~~~]\"],\"app.lib.buildPanelModel.addGate\":[\"[Åðð Ĝáţé ~~~]\"],\"app.lib.buildPanelModel.addOpenPassage\":[\"[Åðð Öþéñ Þáššáĝé ~~~~~]\"],\"app.lib.buildPanelModel.addTrap\":[\"[Åðð Ţŕáþ ~~~]\"],\"app.lib.buildPanelModel.build\":[\"[Ɓûîļð ~~]\"],\"app.lib.buildPanelModel.createFrom\":[\"[Çŕéáţé ƒŕöɱ ~~~]\"],\"app.lib.buildPanelModel.drawTheRoofFootprintWithTwo\":[\"[Ðŕáŵ ţĥé ŕööƒ ƒööţþŕîñţ ŵîţĥ ţŵö çöŕñéŕ çļîçķš. ~~~~~~~~~~~~]\"],\"app.lib.buildPanelModel.duct\":[\"[Ðûçţ ~~]\"],\"app.lib.buildPanelModel.dwvPipe\":[\"[ÐŴṼ Þîþé ~~~]\"],\"app.lib.buildPanelModel.featuresExtensions\":[\"[Ƒéáţûŕéš & éẋţéñšîöñš ~~~~~~]\"],\"app.lib.buildPanelModel.fence\":[\"[Ƒéñçé ~~]\"],\"app.lib.buildPanelModel.followLineset\":[\"[Ƒöļļöŵ ļîñéšéţ ~~~~]\"],\"app.lib.buildPanelModel.gatesOpenings\":[\"[Ĝáţéš & öþéñîñĝš ~~~~]\"],\"app.lib.buildPanelModel.hoverARoomToPreviewIts\":[\"[Ĥöṽéŕ á ŕööɱ ţö þŕéṽîéŵ îţš ƀöûñðáŕý, ţĥéñ çļîçķ ţö þļáçé. ~~~~~~~~~~~~~~]\"],\"app.lib.buildPanelModel.kitchen\":[\"[Ķîţçĥéñ ~~~]\"],\"app.lib.buildPanelModel.mep\":[\"[ṀÉÞ ~]\"],\"app.lib.buildPanelModel.modularCabinet\":[\"[Ṁöðûļáŕ Çáƀîñéţ ~~~~~]\"],\"app.lib.buildPanelModel.off\":[\"[Öƒƒ ~]\"],\"app.lib.buildPanelModel.on\":[\"[Öñ ~]\"],\"app.lib.buildPanelModel.painting\":[\"[Þáîñţîñĝ ~~~]\"],\"app.lib.buildPanelModel.roof\":[\"[Ŕööƒ ~~]\"],\"app.lib.buildPanelModel.roofType\":[\"[Ŕööƒ ţýþé ~~~]\"],\"app.lib.buildPanelModel.toolCount\":[\"[\",[\"count\",\"plural\",{\"one\":[\"#\",\" ţööļ\"],\"other\":[\"#\",\" ţööļš\"]}],\" ~~~]\"],\"app.lib.buildTabState.conical\":[\"[Çöñîçáļ ~~~]\"],\"app.lib.buildTabState.draw\":[\"[Ðŕáŵ ~~]\"],\"app.lib.buildTabState.dutch\":[\"[Ðûţçĥ ~~]\"],\"app.lib.buildTabState.flat\":[\"[Ƒļáţ ~~]\"],\"app.lib.buildTabState.gable\":[\"[Ĝáƀļé ~~]\"],\"app.lib.buildTabState.gambrel\":[\"[Ĝáɱƀŕéļ ~~~]\"],\"app.lib.buildTabState.hip\":[\"[Ĥîþ ~]\"],\"app.lib.buildTabState.mansard\":[\"[Ṁáñšáŕð ~~~]\"],\"app.lib.buildTabState.room\":[\"[Ŕööɱ ~~]\"],\"app.lib.buildTabState.shed\":[\"[Šĥéð ~~]\"],\"app.lib.buildTabState.wall\":[\"[Ŵáļļ ~~]\"],\"app.sharePanel.anyoneWithTheLinkCanView\":[\"[Åñýöñé ŵîţĥ ţĥé ļîñķ çáñ ṽîéŵ ţĥîš þŕöĵéçţ. Ţĥéý çáññöţ éðîţ îţ. ~~~~~~~~~~~~~~~~]\"],\"app.sharePanel.copied\":[\"[Çöþîéð ~~]\"],\"app.sharePanel.copy\":[\"[Çöþý ~~]\"],\"app.sharePanel.couldNotReadTheSharingState\":[\"[Çöûļð ñöţ ŕéáð ţĥé šĥáŕîñĝ šţáţé. ~~~~~~~~~]\"],\"app.sharePanel.couldNotTurnOffThePublic\":[\"[Çöûļð ñöţ ţûŕñ öƒƒ ţĥé þûƀļîç ļîñķ. ~~~~~~~~~]\"],\"app.sharePanel.couldNotTurnOnThePublic\":[\"[Çöûļð ñöţ ţûŕñ öñ ţĥé þûƀļîç ļîñķ. ~~~~~~~~~]\"],\"app.sharePanel.embedCode\":[\"[Éɱƀéð çöðé ~~~]\"],\"app.sharePanel.embedLink\":[\"[Éɱƀéð ļîñķ ~~~]\"],\"app.sharePanel.hideControls\":[\"[Ĥîðé çöñţŕöļš ~~~~]\"],\"app.sharePanel.link\":[\"[Ļîñķ ~~]\"],\"app.sharePanel.onlyThe3dViewNoHeader\":[\"[Öñļý ţĥé 3Ð ṽîéŵ, ñö ĥéáðéŕ öŕ ţööļƀáŕ. ~~~~~~~~~]\"],\"app.sharePanel.open\":[\"[Öþéñ ~~]\"],\"app.sharePanel.publicLink\":[\"[Þûƀļîç ļîñķ ~~~]\"],\"app.sharePanel.shareProject\":[\"[Šĥáŕé þŕöĵéçţ ~~~~]\"],\"app.viewerToolbar.automaticDimensions\":[\"[Åûţöɱáţîç ðîɱéñšîöñš ~~~~~~]\"],\"app.viewerToolbar.camera\":[\"[Çáɱéŕá ~~]\"],\"app.viewerToolbar.cleanPlanDimensionsAppearWithSelection\":[\"[Çļéáñ þļáñ; ðîɱéñšîöñš áþþéáŕ ŵîţĥ šéļéçţîöñ ~~~~~~~~~~~~]\"],\"app.viewerToolbar.collapseSidebar\":[\"[Çöļļáþšé šîðéƀáŕ ~~~~~]\"],\"app.viewerToolbar.crispOpaqueEdgeLines\":[\"[Çŕîšþ, öþáǫûé éðĝé ļîñéš ~~~~~~]\"],\"app.viewerToolbar.cutaway\":[\"[Çûţáŵáý ~~~]\"],\"app.viewerToolbar.default\":[\"[Ðéƒáûļţ ~~~]\"],\"app.viewerToolbar.display\":[\"[Ðîšþļáý ~~~]\"],\"app.viewerToolbar.displaySettings\":[\"[Ðîšþļáý šéţţîñĝš ~~~~~]\"],\"app.viewerToolbar.doorWindowMarks\":[\"[Ðööŕ/ŵîñðöŵ ɱáŕķš ~~~~~]\"],\"app.viewerToolbar.edges\":[\"[Éðĝéš ~~]\"],\"app.viewerToolbar.enterVr\":[\"[Éñţéŕ ṼŔ ~~~]\"],\"app.viewerToolbar.exitVr\":[\"[Éẋîţ ṼŔ ~~]\"],\"app.viewerToolbar.expandSidebar\":[\"[Éẋþáñð šîðéƀáŕ ~~~~]\"],\"app.viewerToolbar.expert\":[\"[Éẋþéŕţ ~~]\"],\"app.viewerToolbar.exploded\":[\"[Éẋþļöðéð ~~~]\"],\"app.viewerToolbar.faceOfStud\":[\"[Ƒáçé öƒ šţûð ~~~]\"],\"app.viewerToolbar.faintOutlineOfMajorCreases\":[\"[Ƒáîñţ öûţļîñé öƒ ɱáĵöŕ çŕéášéš ~~~~~~~~]\"],\"app.viewerToolbar.feetInches\":[\"[Ƒééţ & îñçĥéš ~~~]\"],\"app.viewerToolbar.finishedFaces\":[\"[Ƒîñîšĥéð ƒáçéš ~~~~]\"],\"app.viewerToolbar.flatAndFastNoAmbientOcclusion\":[\"[Ƒļáţ áñð ƒášţ — ñö áɱƀîéñţ öççļûšîöñ ~~~~~~~~~]\"],\"app.viewerToolbar.floorPlanAnnotations\":[\"[Ƒļööŕ þļáñ áññöţáţîöñš ~~~~~~]\"],\"app.viewerToolbar.floorPlanMode\":[\"[Ƒļööŕ þļáñ ɱöðé ~~~~]\"],\"app.viewerToolbar.fullAmbientOcclusion\":[\"[Ƒûļļ áɱƀîéñţ öççļûšîöñ ~~~~~~]\"],\"app.viewerToolbar.fullDocumentationAndAnnotationControls\":[\"[Ƒûļļ ðöçûɱéñţáţîöñ áñð áññöţáţîöñ çöñţŕöļš ~~~~~~~~~~~~]\"],\"app.viewerToolbar.fullHeight\":[\"[Ƒûļļ ĥéîĝĥţ ~~~]\"],\"app.viewerToolbar.fullWallThickness\":[\"[Ƒûļļ ŵáļļ ţĥîçķñéšš ~~~~~~]\"],\"app.viewerToolbar.grid\":[\"[Ĝŕîð ~~]\"],\"app.viewerToolbar.levelsMode\":[\"[Ļéṽéļš: \",[\"mode\"],\" ~~]\"],\"app.viewerToolbar.low\":[\"[Ļöŵ ~]\"],\"app.viewerToolbar.magneticSnap\":[\"[Ṁáĝñéţîç šñáþ ~~~~]\"],\"app.viewerToolbar.manual\":[\"[Ṁáñûáļ ~~]\"],\"app.viewerToolbar.manualDimensions\":[\"[Ṁáñûáļ ðîɱéñšîöñš ~~~~~]\"],\"app.viewerToolbar.measurements\":[\"[Ṁéášûŕéɱéñţš ~~~~]\"],\"app.viewerToolbar.meters\":[\"[Ṁéţéŕš ~~]\"],\"app.viewerToolbar.millimeters\":[\"[Ṁîļļîɱéţéŕš ~~~~]\"],\"app.viewerToolbar.n3dMeasurements\":[\"[3Ð ɱéášûŕéɱéñţš ~~~~]\"],\"app.viewerToolbar.noEdgeLines\":[\"[Ñö éðĝé ļîñéš ~~~~]\"],\"app.viewerToolbar.off\":[\"[Öƒƒ ~]\"],\"app.viewerToolbar.on\":[\"[Öñ ~]\"],\"app.viewerToolbar.orthographic\":[\"[Öŕţĥöĝŕáþĥîç ~~~~]\"],\"app.viewerToolbar.perspective\":[\"[Þéŕšþéçţîṽé ~~~~]\"],\"app.viewerToolbar.preview\":[\"[Þŕéṽîéŵ ~~~]\"],\"app.viewerToolbar.previewMode\":[\"[Þŕéṽîéŵ ɱöðé ~~~~]\"],\"app.viewerToolbar.render\":[\"[Ŕéñðéŕ ~~]\"],\"app.viewerToolbar.rendered\":[\"[Ŕéñðéŕéð ~~~]\"],\"app.viewerToolbar.roomLabels\":[\"[Ŕööɱ ļáƀéļš ~~~]\"],\"app.viewerToolbar.sceneTheme\":[\"[Šçéñé ţĥéɱé ~~~]\"],\"app.viewerToolbar.shadows\":[\"[Šĥáðöŵš ~~~]\"],\"app.viewerToolbar.singleWallAxis\":[\"[Šîñĝļé ŵáļļ áẋîš ~~~~~]\"],\"app.viewerToolbar.soft\":[\"[Šöƒţ ~~]\"],\"app.viewerToolbar.solid\":[\"[Šöļîð ~~]\"],\"app.viewerToolbar.solo\":[\"[Šöļö ~~]\"],\"app.viewerToolbar.stack\":[\"[Šţáçķ ~~]\"],\"app.viewerToolbar.stairAnnotations\":[\"[Šţáîŕ áññöţáţîöñš ~~~~~]\"],\"app.viewerToolbar.strong\":[\"[Šţŕöñĝ ~~]\"],\"app.viewerToolbar.structuralCoreFace\":[\"[Šţŕûçţûŕáļ çöŕé ƒáçé ~~~~~~]\"],\"app.viewerToolbar.structuralGridsColumnCenters\":[\"[Šţŕûçţûŕáļ ĝŕîðš & çöļûɱñ çéñţéŕš ~~~~~~~~~]\"],\"app.viewerToolbar.translucent\":[\"[Ţŕáñšļûçéñţ ~~~~]\"],\"app.viewerToolbar.units\":[\"[Ûñîţš ~~]\"],\"app.viewerToolbar.walkthrough\":[\"[Ŵáļķţĥŕöûĝĥ ~~~~]\"],\"app.viewerToolbar.wallCenterline\":[\"[Ŵáļļ çéñţéŕļîñé ~~~~~]\"],\"app.viewerToolbar.wallDimensions\":[\"[Ŵáļļ ðîɱéñšîöñš ~~~~~]\"],\"app.viewerToolbar.wallsLabel\":[\"[Ŵáļļš: \",[\"label\"],\" ~~]\"],\"core.level.basement\":[\"[Ɓášéɱéñţ ~~~]\"],\"core.level.basementNumber\":[\"[Ɓášéɱéñţ \",[\"number\"],\" ~~~]\"],\"core.level.floorNumber\":[\"[Ƒļööŕ \",[\"number\"],\" ~~]\"],\"core.level.groundFloor\":[\"[Ĝŕöûñð ƒļööŕ ~~~~]\"],\"editor.actionMenu.cameraActions.orbitLeft\":[\"[Öŕƀîţ Ļéƒţ ~~~]\"],\"editor.actionMenu.cameraActions.orbitRight\":[\"[Öŕƀîţ Ŕîĝĥţ ~~~]\"],\"editor.actionMenu.cameraActions.topView\":[\"[Ţöþ Ṽîéŵ ~~~]\"],\"editor.actionMenu.controlModes.delete\":[\"[Ðéļéţé ~~]\"],\"editor.actionMenu.controlModes.select\":[\"[Šéļéçţ ~~]\"],\"editor.actionMenu.followPascalPill.resumeFollowing\":[\"[Ŕéšûɱé ƒöļļöŵîñĝ ~~~~~]\"],\"editor.actionMenu.followPascalToggle.off\":[\"[Ƒöļļöŵ Þášçáļ: Öƒƒ ~~~~~]\"],\"editor.actionMenu.followPascalToggle.on\":[\"[Ƒöļļöŵ Þášçáļ: Öñ ~~~~~]\"],\"editor.actionMenu.furnishTools.appliance\":[\"[Åþþļîáñçé ~~~]\"],\"editor.actionMenu.furnishTools.bathroom\":[\"[Ɓáţĥŕööɱ ~~~]\"],\"editor.actionMenu.furnishTools.furniture\":[\"[Ƒûŕñîţûŕé ~~~]\"],\"editor.actionMenu.furnishTools.kitchen\":[\"[Ķîţçĥéñ ~~~]\"],\"editor.actionMenu.furnishTools.outdoor\":[\"[Öûţðööŕ ~~~]\"],\"editor.actionMenu.measurementControl.angle\":[\"[Åñĝļé ~~]\"],\"editor.actionMenu.measurementControl.angularDimension\":[\"[Åñĝûļáŕ ðîɱéñšîöñ ~~~~~]\"],\"editor.actionMenu.measurementControl.arcLength\":[\"[Åŕç ļéñĝţĥ ~~~]\"],\"editor.actionMenu.measurementControl.area\":[\"[Åŕéá ~~]\"],\"editor.actionMenu.measurementControl.centerMark\":[\"[Çéñţéŕ ɱáŕķ ~~~]\"],\"editor.actionMenu.measurementControl.chordDimension\":[\"[Çĥöŕð ðîɱéñšîöñ ~~~~~]\"],\"editor.actionMenu.measurementControl.continuousDimension\":[\"[Çöñţîñûöûš ðîɱéñšîöñ ~~~~~~]\"],\"editor.actionMenu.measurementControl.coordinateDimensions\":[\"[Çööŕðîñáţé ðîɱéñšîöñš ~~~~~~]\"],\"editor.actionMenu.measurementControl.diameterDimension\":[\"[Ðîáɱéţéŕ ðîɱéñšîöñ ~~~~~~]\"],\"editor.actionMenu.measurementControl.distance\":[\"[Ðîšţáñçé ~~~]\"],\"editor.actionMenu.measurementControl.floorPlan\":[\"[Ƒļööŕ þļáñ ~~~]\"],\"editor.actionMenu.measurementControl.linearDimension\":[\"[Ļîñéáŕ ðîɱéñšîöñ ~~~~~]\"],\"editor.actionMenu.measurementControl.measureSelectedlabel\":[\"[Ṁéášûŕé: \",[\"selectedLabel\"],\" ~~~]\"],\"editor.actionMenu.measurementControl.measurementOptions\":[\"[Ṁéášûŕéɱéñţ öþţîöñš ~~~~~~]\"],\"editor.actionMenu.measurementControl.measurementType\":[\"[Ṁéášûŕéɱéñţ ţýþé ~~~~~]\"],\"editor.actionMenu.measurementControl.perimeter\":[\"[Þéŕîɱéţéŕ ~~~]\"],\"editor.actionMenu.measurementControl.radiusDimension\":[\"[Ŕáðîûš ðîɱéñšîöñ ~~~~~]\"],\"editor.actionMenu.measurementControl.smart\":[\"[Šɱáŕţ ~~]\"],\"editor.actionMenu.measurementControl.volume\":[\"[Ṽöļûɱé ~~]\"],\"editor.actionMenu.pointAskButton.pointAndAsk\":[\"[Þöîñţ áñð ášķ ~~~~]\"],\"editor.actionMenu.pointAskButton.pointAndAskC\":[\"[Þöîñţ áñð ášķ (Ç) ~~~~]\"],\"editor.actionMenu.pointAskButton.pointAndAskWorksInThe\":[\"[Þöîñţ áñð ášķ ŵöŕķš îñ ţĥé 3Ð ṽîéŵ ~~~~~~~~]\"],\"editor.actionMenu.structureTools.ceiling\":[\"[Çéîļîñĝ ~~~]\"],\"editor.actionMenu.structureTools.column\":[\"[Çöļûɱñ ~~]\"],\"editor.actionMenu.structureTools.door\":[\"[Ðööŕ ~~]\"],\"editor.actionMenu.structureTools.duct\":[\"[Ðûçţ ~~]\"],\"editor.actionMenu.structureTools.ductFitting\":[\"[Ðûçţ Ƒîţţîñĝ ~~~~]\"],\"editor.actionMenu.structureTools.dwvPipe\":[\"[ÐŴṼ Þîþé ~~~]\"],\"editor.actionMenu.structureTools.elevator\":[\"[Éļéṽáţöŕ ~~~]\"],\"editor.actionMenu.structureTools.fence\":[\"[Ƒéñçé ~~]\"],\"editor.actionMenu.structureTools.gableRoof\":[\"[Ĝáƀļé Ŕööƒ ~~~]\"],\"editor.actionMenu.structureTools.hvacUnit\":[\"[ĤṼÅÇ Ûñîţ ~~~]\"],\"editor.actionMenu.structureTools.lineset\":[\"[Ļîñéšéţ ~~~]\"],\"editor.actionMenu.structureTools.liquidLine\":[\"[Ļîǫûîð Ļîñé ~~~]\"],\"editor.actionMenu.structureTools.pipeFitting\":[\"[Þîþé Ƒîţţîñĝ ~~~~]\"],\"editor.actionMenu.structureTools.register\":[\"[Ŕéĝîšţéŕ ~~~]\"],\"editor.actionMenu.structureTools.shelf\":[\"[Šĥéļƒ ~~]\"],\"editor.actionMenu.structureTools.slab\":[\"[Šļáƀ ~~]\"],\"editor.actionMenu.structureTools.spawnPoint\":[\"[Šþáŵñ Þöîñţ ~~~]\"],\"editor.actionMenu.structureTools.stairs\":[\"[Šţáîŕš ~~]\"],\"editor.actionMenu.structureTools.trap\":[\"[Ţŕáþ ~~]\"],\"editor.actionMenu.structureTools.wall\":[\"[Ŵáļļ ~~]\"],\"editor.actionMenu.structureTools.window\":[\"[Ŵîñðöŵ ~~]\"],\"editor.actionMenu.structureTools.zone\":[\"[Žöñé ~~]\"],\"editor.actionMenu.viewToggles.deleteGuideImage\":[\"[Ðéļéţé ĝûîðé îɱáĝé ~~~~~]\"],\"editor.actionMenu.viewToggles.deleteScan\":[\"[Ðéļéţé šçáñ ~~~]\"],\"editor.actionMenu.viewToggles.guideCount\":[\"[\",[\"count\",\"plural\",{\"one\":[\"#\",\" ĝûîðé îɱáĝé öñ ţĥîš ļéṽéļ\"],\"other\":[\"#\",\" ĝûîðé îɱáĝéš öñ ţĥîš ļéṽéļ\"]}],\" ~~~~~~~~~~~~~]\"],\"editor.actionMenu.viewToggles.guideImageNumber\":[\"[Ĝûîðé îɱáĝé \",[\"number\"],\" ~~~]\"],\"editor.actionMenu.viewToggles.guideImageSettings\":[\"[Ĝûîðé îɱáĝé šéţţîñĝš ~~~~~~]\"],\"editor.actionMenu.viewToggles.guideImages\":[\"[Ĝûîðé îɱáĝéš ~~~~]\"],\"editor.actionMenu.viewToggles.guides\":[\"[Ĝûîðéš ~~]\"],\"editor.actionMenu.viewToggles.guidesHidden\":[\"[Ĝûîðéš: Ĥîððéñ ~~~~]\"],\"editor.actionMenu.viewToggles.guidesVisible\":[\"[Ĝûîðéš: Ṽîšîƀļé ~~~~]\"],\"editor.actionMenu.viewToggles.hideGuideImages\":[\"[Ĥîðé ĝûîðé îɱáĝéš ~~~~~]\"],\"editor.actionMenu.viewToggles.hideReferenceFloor\":[\"[Ĥîðé ŕéƒéŕéñçé ƒļööŕ ~~~~~~]\"],\"editor.actionMenu.viewToggles.hideScans\":[\"[Ĥîðé šçáñš ~~~]\"],\"editor.actionMenu.viewToggles.levelsBelow\":[\"[\",[\"count\"],\" ƀéļöŵ ~~]\"],\"editor.actionMenu.viewToggles.noLowerFloorAvailable\":[\"[Ñö ļöŵéŕ ƒļööŕ áṽáîļáƀļé. ~~~~~~~]\"],\"editor.actionMenu.viewToggles.opacity\":[\"[Öþáçîţý ~~~]\"],\"editor.actionMenu.viewToggles.referenceFloor\":[\"[Ŕéƒéŕéñçé ƒļööŕ ~~~~~]\"],\"editor.actionMenu.viewToggles.referenceFloorSelectedlevelname\":[\"[Ŕéƒéŕéñçé ƒļööŕ: \",[\"selectedLevelName\"],\" ~~~~~]\"],\"editor.actionMenu.viewToggles.referenceFloorSettings\":[\"[Ŕéƒéŕéñçé ƒļööŕ šéţţîñĝš ~~~~~~~]\"],\"editor.actionMenu.viewToggles.referenceSettings\":[\"[Ŕéƒéŕéñçé šéţţîñĝš ~~~~~~]\"],\"editor.actionMenu.viewToggles.references\":[\"[Ŕéƒéŕéñçéš ~~~]\"],\"editor.actionMenu.viewToggles.referencesEmpty\":[\"[Ûþļöáð ĜĻƁ ɱéšĥéš áš šçáñ ŕéƒéŕéñçéš öŕ ƀļûéþŕîñţ îɱáĝéš áš ĝûîðé ŕéƒéŕéñçéš. ~~~~~~~~~~~~~~~~~~~~]\"],\"editor.actionMenu.viewToggles.referencesHidden\":[\"[Ŕéƒéŕéñçéš: Ĥîððéñ ~~~~~]\"],\"editor.actionMenu.viewToggles.referencesVisible\":[\"[Ŕéƒéŕéñçéš: Ṽîšîƀļé ~~~~~~]\"],\"editor.actionMenu.viewToggles.riserDiagram\":[\"[Ŕîšéŕ ðîáĝŕáɱ ~~~~]\"],\"editor.actionMenu.viewToggles.scanCount\":[\"[\",[\"count\",\"plural\",{\"one\":[\"#\",\" šçáñ öñ ţĥîš ļéṽéļ\"],\"other\":[\"#\",\" šçáñš öñ ţĥîš ļéṽéļ\"]}],\" ~~~~~~~~~~]\"],\"editor.actionMenu.viewToggles.scanNumber\":[\"[Šçáñ \",[\"number\"],\" ~~]\"],\"editor.actionMenu.viewToggles.scanSettings\":[\"[Šçáñ šéţţîñĝš ~~~~]\"],\"editor.actionMenu.viewToggles.scans\":[\"[Šçáñš ~~]\"],\"editor.actionMenu.viewToggles.scansHidden\":[\"[Šçáñš: Ĥîððéñ ~~~~]\"],\"editor.actionMenu.viewToggles.scansVisible\":[\"[Šçáñš: Ṽîšîƀļé ~~~~]\"],\"editor.actionMenu.viewToggles.showGuideImages\":[\"[Šĥöŵ ĝûîðé îɱáĝéš ~~~~~]\"],\"editor.actionMenu.viewToggles.showReferenceFloor\":[\"[Šĥöŵ ŕéƒéŕéñçé ƒļööŕ ~~~~~~]\"],\"editor.actionMenu.viewToggles.showScans\":[\"[Šĥöŵ šçáñš ~~~]\"],\"editor.actionMenu.viewToggles.uploadScanOrGuideImage\":[\"[Ûþļöáð šçáñ öŕ ĝûîðé îɱáĝé ~~~~~~~]\"],\"editor.backToHome\":[\"[Ɓáçķ ţö ĥöɱé ~~~]\"],\"editor.buildPanel.advanced\":[\"[Åðṽáñçéð ~~~]\"],\"editor.buildPanel.rooms.hint\":[\"[ŵáļļš · ƒļööŕ · çéîļîñĝ ~~~~~~]\"],\"editor.buildPanel.rooms.idle\":[\"[Þîçķ á šĥáþé ţö šţáŕţ. Éṽéŕý ŕööɱ ƀŕîñĝš îţš öŵñ ŵáļļš, ƒļööŕ áñð çéîļîñĝ. ~~~~~~~~~~~~~~~~~~]\"],\"editor.buildPanel.rooms.polygon.caption\":[\"[\",[\"lead\"],\" ţĥéñ ţĥé ƒîŕšţ öñé áĝáîñ ţö çļöšé. Ƒöŕ Ļ-šĥáþéš áñð áñĝļéð ŕööɱš. ~~~~~~~~~~~~~~~~]\"],\"editor.buildPanel.rooms.polygon.label\":[\"[Þöļýĝöñ ~~~]\"],\"editor.buildPanel.rooms.polygon.lead\":[\"[Çļîçķ éáçĥ çöŕñéŕ, ~~~~~]\"],\"editor.buildPanel.rooms.polygon.title\":[\"[Þöļýĝöñ ŕööɱ ~~~~]\"],\"editor.buildPanel.rooms.rectangle.caption\":[\"[\",[\"lead\"],\" öñ ţĥé ĝŕîð. Ŵáļļš, ƒļööŕ áñð çéîļîñĝ áŕé çŕéáţéð ţöĝéţĥéŕ. ~~~~~~~~~~~~~~~]\"],\"editor.buildPanel.rooms.rectangle.label\":[\"[Ŕéçţáñĝļé ~~~]\"],\"editor.buildPanel.rooms.rectangle.lead\":[\"[Çļîçķ ţŵö çöŕñéŕš ~~~~~]\"],\"editor.buildPanel.rooms.rectangle.title\":[\"[Ŕéçţáñĝļé ŕööɱ ~~~~]\"],\"editor.buildPanel.rooms.title\":[\"[Ŕööɱš ~~]\"],\"editor.buildPanel.rooms.walls.caption\":[\"[\",[\"lead\"],\" Çļöšé á ļööþ áñð îţ ƀéçöɱéš á ŕööɱ; ļéáṽé îţ öþéñ ƒöŕ þáŕţîţîöñš. ~~~~~~~~~~~~~~~~]\"],\"editor.buildPanel.rooms.walls.label\":[\"[Ŵáļļš ~~]\"],\"editor.buildPanel.rooms.walls.lead\":[\"[Ðŕáŵ öñé ŵáļļ áţ á ţîɱé. ~~~~~~]\"],\"editor.buildPanel.rooms.walls.title\":[\"[Ŵáļļš ~~]\"],\"editor.cameraControlsHint\":[\"[Çáɱéŕá çöñţŕöļš ĥîñţ ~~~~~~]\"],\"editor.cameraHint.pan\":[\"[Þáñ ~]\"],\"editor.cameraHint.rotate\":[\"[Ŕöţáţé ~~]\"],\"editor.cameraHint.zoom\":[\"[Žööɱ ~~]\"],\"editor.dismiss\":[\"[Ðîšɱîšš ~~~]\"],\"editor.dismissCameraControlsHint\":[\"[Ðîšɱîšš çáɱéŕá çöñţŕöļš ĥîñţ ~~~~~~~~]\"],\"editor.expandSidebar\":[\"[Éẋþáñð šîðéƀáŕ ~~~~]\"],\"editor.floatingActionMenu.axis\":[\"[Åẋîš ~~]\"],\"editor.floatingActionMenu.axis2\":[\"[⌥ áẋîš ~~]\"],\"editor.floatingActionMenu.noEquipment\":[\"[⚠ ñö éǫûîþɱéñţ ~~~~]\"],\"editor.floatingActionMenu.rTRotate\":[\"[Ŕ/Ţ ŕöţáţé ~~~]\"],\"editor.floatingActionMenu.registerCount\":[\"[\",[\"count\",\"plural\",{\"one\":[\"#\",\" ŕéĝîšţéŕ\"],\"other\":[\"#\",\" ŕéĝîšţéŕš\"]}],\" ~~~~~~]\"],\"editor.floatingActionMenu.runCount\":[\"[\",[\"count\",\"plural\",{\"one\":[\"#\",\" ŕûñ\"],\"other\":[\"#\",\" ŕûñš\"]}],\" ~~~]\"],\"editor.floatingActionMenu.system\":[\"[Šýšţéɱ ~~]\"],\"editor.helpers.buildingHelper.cancel\":[\"[Çáñçéļ ~~]\"],\"editor.helpers.buildingHelper.placeBuilding\":[\"[Þļáçé ƀûîļðîñĝ ~~~~]\"],\"editor.helpers.buildingHelper.rotate\":[\"[Ŕöţáţé ~~]\"],\"editor.helpers.contextualHelperPanel.cancelPlacement\":[\"[Çáñçéļ þļáçéɱéñţ ~~~~~]\"],\"editor.helpers.contextualHelperPanel.continuationClickOrPressCTo\":[\"[Çöñţîñûáţîöñ — çļîçķ öŕ þŕéšš Ç ţö çýçļé ~~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.continuationLabel\":[\"[Çöñţîñûáţîöñ: \",[\"label\"],\" ~~~~]\"],\"editor.helpers.contextualHelperPanel.dragToDrawFence\":[\"[Ðŕáĝ ţö ðŕáŵ ƒéñçé ~~~~~]\"],\"editor.helpers.contextualHelperPanel.eraseScope\":[\"[Éŕášé: \",[\"scope\"],\" ~~]\"],\"editor.helpers.contextualHelperPanel.eraseScopeClickOrPressShift\":[\"[Éŕášé šçöþé — çļîçķ öŕ þŕéšš Šĥîƒţ ţö çýçļé ~~~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.eraseScopeLabel\":[\"[Éŕášé šçöþé: \",[\"scope\"],\" ~~~]\"],\"editor.helpers.contextualHelperPanel.fenceTypeClickOrPressT\":[\"[Ƒéñçé ţýþé — çļîçķ öŕ þŕéšš Ţ ţö šŵîţçĥ ƀéţŵééñ šţŕáîĝĥţ, çûŕṽéð áñð ƒŕééĥáñð ~~~~~~~~~~~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.fewerShortcuts\":[\"[Ƒéŵéŕ šĥöŕţçûţš ~~~~~]\"],\"editor.helpers.contextualHelperPanel.finishCurveOrDoubleClick\":[\"[Ƒîñîšĥ çûŕṽé (öŕ ðöûƀļé-çļîçķ) ~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.gridLength\":[\"[Ĝŕîð: \",[\"length\"],\" ~~]\"],\"editor.helpers.contextualHelperPanel.gridStepClickOrTapCtrl\":[\"[Ĝŕîð šţéþ — çļîçķ öŕ ţáþ Çţŕļ ţö çýçļé ~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.gridStepLength\":[\"[Ĝŕîð šţéþ: \",[\"length\"],\" ~~~]\"],\"editor.helpers.contextualHelperPanel.hoverAPaintedSurfaceToErase\":[\"[Ĥöṽéŕ á þáîñţéð šûŕƒáçé ţö éŕášé ~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.hoverASurfaceToPaint\":[\"[Ĥöṽéŕ á šûŕƒáçé ţö þáîñţ ~~~~~~]\"],\"editor.helpers.contextualHelperPanel.hoverASurfaceToPickIts\":[\"[Ĥöṽéŕ á šûŕƒáçé ţö þîçķ îţš ɱáţéŕîáļ ~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.moreShortcuts\":[\"[Ṁöŕé šĥöŕţçûţš ~~~~]\"],\"editor.helpers.contextualHelperPanel.paintScope\":[\"[Þáîñţ: \",[\"scope\"],\" ~~]\"],\"editor.helpers.contextualHelperPanel.paintScopeClickOrPressShift\":[\"[Þáîñţ šçöþé — çļîçķ öŕ þŕéšš Šĥîƒţ ţö çýçļé ~~~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.paintScopeLabel\":[\"[Þáîñţ šçöþé: \",[\"scope\"],\" ~~~]\"],\"editor.helpers.contextualHelperPanel.pickScope\":[\"[Þîçķ: \",[\"scope\"],\" ~~]\"],\"editor.helpers.contextualHelperPanel.placeGateOnAFence\":[\"[Þļáçé ĝáţé öñ á ƒéñçé ~~~~~~]\"],\"editor.helpers.contextualHelperPanel.placePassageOnAFence\":[\"[Þļáçé þáššáĝé öñ á ƒéñçé ~~~~~~]\"],\"editor.helpers.contextualHelperPanel.selectAMaterialToPaint\":[\"[Šéļéçţ á ɱáţéŕîáļ ţö þáîñţ ~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.snappingAngles\":[\"[Šñáþþîñĝ: Åñĝļéš ~~~~~]\"],\"editor.helpers.contextualHelperPanel.snappingGrid\":[\"[Šñáþþîñĝ: Ĝŕîð ~~~~]\"],\"editor.helpers.contextualHelperPanel.snappingLines\":[\"[Šñáþþîñĝ: Ļîñéš ~~~~]\"],\"editor.helpers.contextualHelperPanel.snappingModeClickOrPressShift\":[\"[Šñáþþîñĝ ɱöðé — çļîçķ öŕ þŕéšš Šĥîƒţ ţö çýçļé ~~~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.snappingOff\":[\"[Šñáþþîñĝ: Öƒƒ ~~~~]\"],\"editor.helpers.contextualHelperPanel.straightContinuationIsUnavailableForCurved\":[\"[Šţŕáîĝĥţ çöñţîñûáţîöñ îš ûñáṽáîļáƀļé ƒöŕ çûŕṽéð öŕ ƒŕééĥáñð ƒéñçéš ~~~~~~~~~~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.straightContinuous\":[\"[Šţŕáîĝĥţ: Çöñţîñûöûš ~~~~~~]\"],\"editor.helpers.contextualHelperPanel.straightFenceContinuationClickOrPress\":[\"[Šţŕáîĝĥţ ƒéñçé çöñţîñûáţîöñ — çļîçķ öŕ þŕéšš Ç ţö ţöĝĝļé ~~~~~~~~~~~~~~]\"],\"editor.helpers.contextualHelperPanel.straightSingle\":[\"[Šţŕáîĝĥţ: Šîñĝļé ~~~~~]\"],\"editor.helpers.helperManager.addPoint\":[\"[Åðð þöîñţ ~~~]\"],\"editor.helpers.helperManager.addPointClickTheFirstTo\":[\"[Åðð þöîñţ · çļîçķ ţĥé ƒîŕšţ ţö çļöšé ~~~~~~~~~]\"],\"editor.helpers.helperManager.brushSize\":[\"[Ɓŕûšĥ šîžé ~~~]\"],\"editor.helpers.helperManager.cancel\":[\"[Çáñçéļ ~~]\"],\"editor.helpers.helperManager.cancelPicking\":[\"[Çáñçéļ þîçķîñĝ ~~~~]\"],\"editor.helpers.helperManager.cancelStroke\":[\"[Çáñçéļ šţŕöķé ~~~~]\"],\"editor.helpers.helperManager.done\":[\"[Ðöñé ~~]\"],\"editor.helpers.helperManager.drawTheMezzanine\":[\"[Ðŕáŵ ţĥé ɱéžžáñîñé ~~~~~]\"],\"editor.helpers.helperManager.drawTheOpening\":[\"[Ðŕáŵ ţĥé öþéñîñĝ ~~~~~]\"],\"editor.helpers.helperManager.drawTheTerrace\":[\"[Ðŕáŵ ţĥé ţéŕŕáçé ~~~~~]\"],\"editor.helpers.helperManager.exitSmartMeasure\":[\"[Éẋîţ šɱáŕţ ɱéášûŕé ~~~~~]\"],\"editor.helpers.helperManager.finish\":[\"[Ƒîñîšĥ ~~]\"],\"editor.helpers.helperManager.finishAtTheEdge\":[\"[Ƒîñîšĥ áţ ţĥé éðĝé ~~~~~]\"],\"editor.helpers.helperManager.freeMove\":[\"[Ƒŕéé ɱöṽé ~~~]\"],\"editor.helpers.helperManager.freeMoveSlideDoorsAndWindows\":[\"[Ƒŕéé ɱöṽé · šļîðé ðööŕš áñð ŵîñðöŵš ~~~~~~~~~]\"],\"editor.helpers.helperManager.holdToPickAMaterial\":[\"[Ĥöļð ţö þîçķ á ɱáţéŕîáļ ~~~~~~]\"],\"editor.helpers.helperManager.inspectSurfaceDimensions\":[\"[Îñšþéçţ šûŕƒáçé ðîɱéñšîöñš ~~~~~~~~]\"],\"editor.helpers.helperManager.paintWithThisMaterial\":[\"[Þáîñţ ŵîţĥ ţĥîš ɱáţéŕîáļ ~~~~~~~]\"],\"editor.helpers.helperManager.pickTargetHeight\":[\"[Þîçķ ţáŕĝéţ ĥéîĝĥţ ~~~~~]\"],\"editor.helpers.helperManager.pinMeasurementLens\":[\"[Þîñ ɱéášûŕéɱéñţ ļéñš ~~~~~~]\"],\"editor.helpers.helperManager.place\":[\"[Þļáçé ~~]\"],\"editor.helpers.helperManager.placeInsideTheRoom\":[\"[Þļáçé îñšîðé ţĥé ŕööɱ ~~~~~~]\"],\"editor.helpers.helperManager.pressAnywhereDragToTheOpposite\":[\"[Þŕéšš áñýŵĥéŕé, ðŕáĝ ţö ţĥé öþþöšîţé çöŕñéŕ ~~~~~~~~~~~]\"],\"editor.helpers.helperManager.raiseOrLower\":[\"[Ŕáîšé öŕ ļöŵéŕ ~~~~]\"],\"editor.helpers.helperManager.removeAPaintedPartOrReset\":[\"[Ŕéɱöṽé á þáîñţéð þáŕţ, öŕ ŕéšéţ á šûŕƒáçé ~~~~~~~~~~]\"],\"editor.helpers.helperManager.removeLastPoint\":[\"[Ŕéɱöṽé ļášţ þöîñţ ~~~~~]\"],\"editor.helpers.helperManager.resize\":[\"[Ŕéšîžé ~~]\"],\"editor.helpers.helperManager.rotate45\":[\"[Ŕöţáţé ±45° ~~]\"],\"editor.helpers.helperManager.rotateTheSelection45\":[\"[Ŕöţáţé ţĥé šéļéçţîöñ ±45° ~~~~~~]\"],\"editor.helpers.helperManager.setOneCornerThenTheOpposite\":[\"[Šéţ öñé çöŕñéŕ, ţĥéñ ţĥé öþþöšîţé ~~~~~~~~~]\"],\"editor.helpers.itemHelper.cancel\":[\"[Çáñçéļ ~~]\"],\"editor.helpers.itemHelper.forcePlace\":[\"[Ƒöŕçé þļáçé ~~~]\"],\"editor.helpers.itemHelper.place\":[\"[Þļáçé ~~]\"],\"editor.helpers.itemHelper.rotate\":[\"[Ŕöţáţé ~~]\"],\"editor.helpers.registeredToolHelper.guidedConstraintsBypassed\":[\"[Ĝûîðéð çöñšţŕáîñţš ƀýþáššéð ~~~~~~~~]\"],\"editor.lib.contextualHelp.addOrRemoveObjectsFromThe\":[\"[Åðð öŕ ŕéɱöṽé öƀĵéçţš ƒŕöɱ ţĥé šéļéçţîöñ ~~~~~~~~~~~]\"],\"editor.lib.contextualHelp.adjustOneSideSCornerRadius\":[\"[Åðĵûšţ öñé šîðé’š çöŕñéŕ ŕáðîûš ~~~~~~~~]\"],\"editor.lib.contextualHelp.clearTheSelectionOrClickOutside\":[\"[Çļéáŕ ţĥé šéļéçţîöñ (öŕ çļîçķ öûţšîðé) ~~~~~~~~~~]\"],\"editor.lib.contextualHelp.clickAHandleDotToShow\":[\"[Çļîçķ á ĥáñðļé ðöţ ţö šĥöŵ ɱöṽé áŕŕöŵš ~~~~~~~~~~]\"],\"editor.lib.contextualHelp.clickOrDragTheSelectionTo\":[\"[Çļîçķ öŕ ðŕáĝ ţĥé šéļéçţîöñ ţö ɱöṽé îţ áš öñé ~~~~~~~~~~~]\"],\"editor.lib.contextualHelp.clickTheHandleDotToShow\":[\"[Çļîçķ ţĥé ĥáñðļé ðöţ ţö šĥöŵ ɱöṽé + ŕöţáţé ĥáñðļéš ~~~~~~~~~~~~]\"],\"editor.lib.contextualHelp.detachTheJointWhileDraggingAn\":[\"[Ðéţáçĥ ţĥé ĵöîñţ ŵĥîļé ðŕáĝĝîñĝ áñ áŕŕöŵ ~~~~~~~~~~~]\"],\"editor.lib.contextualHelp.dragLeftOrRightToRotate\":[\"[Ðŕáĝ ļéƒţ öŕ ŕîĝĥţ ţö ŕöţáţé šéļéçţéð öƀĵéçţ ~~~~~~~~~~~~]\"],\"editor.lib.contextualHelp.dragSelectedMovableObject\":[\"[Ðŕáĝ šéļéçţéð ɱöṽáƀļé öƀĵéçţ ~~~~~~~~]\"],\"editor.lib.contextualHelp.groupSelectionSessionOnly\":[\"[Ĝŕöûþ šéļéçţîöñ (šéššîöñ öñļý) ~~~~~~~~]\"],\"editor.lib.contextualHelp.holdToRotateFreely\":[\"[Ĥöļð ţö ŕöţáţé ƒŕééļý ~~~~~~]\"],\"editor.lib.contextualHelp.rotate45\":[\"[Ŕöţáţé ±45° ~~]\"],\"editor.lib.contextualHelp.rotateTheSelection45\":[\"[Ŕöţáţé ţĥé šéļéçţîöñ ±45° ~~~~~~]\"],\"editor.lib.contextualHelp.rotatingFreely\":[\"[Ŕöţáţîñĝ ƒŕééļý (ñö áñĝļé šţéþ) ~~~~~~~~]\"],\"editor.lib.contextualHelp.switchTheRotationAxisYX\":[\"[Šŵîţçĥ ţĥé ŕöţáţîöñ áẋîš (Ý → Ẋ → Ž) ~~~~~~~~]\"],\"editor.lib.contextualHelp.ungroupSessionSelection\":[\"[Ûñĝŕöûþ šéššîöñ šéļéçţîöñ ~~~~~~~]\"],\"editor.lib.continuation.continuous\":[\"[Çöñţîñûöûš ~~~]\"],\"editor.lib.continuation.continuousCanopy\":[\"[Çöñţîñûöûš çáñöþý ~~~~~]\"],\"editor.lib.continuation.continuousRun\":[\"[Çöñţîñûöûš ŕûñ ~~~~]\"],\"editor.lib.continuation.curvedFence\":[\"[Çûŕṽéð ƒéñçé ~~~~]\"],\"editor.lib.continuation.freehandFence\":[\"[Ƒŕééĥáñð ƒéñçé ~~~~]\"],\"editor.lib.continuation.placeMultiple\":[\"[Þļáçé ɱûļţîþļé ~~~~]\"],\"editor.lib.continuation.placeOnce\":[\"[Þļáçé öñçé ~~~]\"],\"editor.lib.continuation.polygonRoom\":[\"[Þöļýĝöñ ŕööɱ ~~~~]\"],\"editor.lib.continuation.rectangleRoom\":[\"[Ŕéçţáñĝļé ŕööɱ ~~~~]\"],\"editor.lib.continuation.singleCabinet\":[\"[Šîñĝļé çáƀîñéţ ~~~~]\"],\"editor.lib.continuation.singleCanopy\":[\"[Šîñĝļé çáñöþý ~~~~]\"],\"editor.lib.continuation.singleFence\":[\"[Šîñĝļé ƒéñçé ~~~~]\"],\"editor.lib.continuation.walls\":[\"[Ŵáļļš ~~]\"],\"editor.lib.hudTitle.cutOpening\":[\"[Çûţ öþéñîñĝ ~~~]\"],\"editor.lib.hudTitle.divideRoom\":[\"[Ðîṽîðé ŕööɱ ~~~]\"],\"editor.lib.hudTitle.editKind\":[\"[Éðîţ \",[\"kind\"],\" ~~]\"],\"editor.lib.hudTitle.erase\":[\"[Éŕášé ~~]\"],\"editor.lib.hudTitle.levelTerrain\":[\"[Ļéṽéļ ţéŕŕáîñ ~~~~]\"],\"editor.lib.hudTitle.lowerTerrain\":[\"[Ļöŵéŕ ţéŕŕáîñ ~~~~]\"],\"editor.lib.hudTitle.mezzanine\":[\"[Ṁéžžáñîñé ~~~]\"],\"editor.lib.hudTitle.moveKind\":[\"[Ṁöṽé \",[\"kind\"],\" ~~]\"],\"editor.lib.hudTitle.moveRoom\":[\"[Ṁöṽé ŕööɱ ~~~]\"],\"editor.lib.hudTitle.moveSelection\":[\"[Ṁöṽé šéļéçţîöñ ~~~~]\"],\"editor.lib.hudTitle.paint\":[\"[Þáîñţ ~~]\"],\"editor.lib.hudTitle.paintARectangle\":[\"[Þáîñţ á ŕéçţáñĝļé ~~~~~]\"],\"editor.lib.hudTitle.paintAShape\":[\"[Þáîñţ á šĥáþé ~~~~]\"],\"editor.lib.hudTitle.pickMaterial\":[\"[Þîçķ ɱáţéŕîáļ ~~~~]\"],\"editor.lib.hudTitle.raiseTerrain\":[\"[Ŕáîšé ţéŕŕáîñ ~~~~]\"],\"editor.lib.hudTitle.resize\":[\"[Ŕéšîžé ~~]\"],\"editor.lib.hudTitle.rotate\":[\"[Ŕöţáţé ~~]\"],\"editor.lib.hudTitle.select\":[\"[Šéļéçţ ~~]\"],\"editor.lib.hudTitle.smartMeasure\":[\"[Šɱáŕţ ɱéášûŕé ~~~~]\"],\"editor.lib.hudTitle.smoothTerrain\":[\"[Šɱööţĥ ţéŕŕáîñ ~~~~]\"],\"editor.lib.hudTitle.splitKind\":[\"[Šþļîţ \",[\"kind\"],\" ~~]\"],\"editor.lib.hudTitle.terrace\":[\"[Ţéŕŕáçé ~~~]\"],\"editor.lib.wallDrawVariant.polygonRoom\":[\"[Þöļýĝöñ ŕööɱ ~~~~]\"],\"editor.lib.wallDrawVariant.rectangleRoom\":[\"[Ŕéçţáñĝļé ŕööɱ ~~~~]\"],\"editor.lib.wallDrawVariant.walls\":[\"[Ŵáļļš ~~]\"],\"editor.reloadEditor\":[\"[Ŕéļöáð éðîţöŕ ~~~~]\"],\"editor.theEditorSceneFailedToRender\":[\"[Ţĥé éðîţöŕ šçéñé ƒáîļéð ţö ŕéñðéŕ ~~~~~~~~~]\"],\"editor.toolHint.aCurtainWallTakesNoCorner.1qxjv5i\":[\"[Å çûŕţáîñ ŵáļļ ţáķéš ñö çöŕñéŕ ŵîñðöŵ ~~~~~~~~~~]\"],\"editor.toolHint.aCurvedWallTakesNoCorner.1vdnaw5\":[\"[Å çûŕṽéð ŵáļļ ţáķéš ñö çöŕñéŕ ŵîñðöŵ ~~~~~~~~~]\"],\"editor.toolHint.addACornerClickTheFirst.o4r67t\":[\"[Åðð á çöŕñéŕ · çļîçķ ţĥé ƒîŕšţ ţö çļöšé ~~~~~~~~~]\"],\"editor.toolHint.anotherOpeningIsInTheWay.11l9dd0\":[\"[Åñöţĥéŕ öþéñîñĝ îš îñ ţĥé ŵáý áţ ţĥé çöŕñéŕ ~~~~~~~~~~~]\"],\"editor.toolHint.autoHangers.10554ka\":[\"[Åûţö ĥáñĝéŕš ~~~~]\"],\"editor.toolHint.autoHangersClickOrPressH.rwa3ka\":[\"[Åûţö ĥáñĝéŕš - çļîçķ öŕ þŕéšš Ĥ ţö ţöĝĝļé ~~~~~~~~~~]\"],\"editor.toolHint.autoHangersOff.7yx01x\":[\"[Åûţö ĥáñĝéŕš: Öƒƒ ~~~~~]\"],\"editor.toolHint.autoHangersOn.10b1umh\":[\"[Åûţö ĥáñĝéŕš: Öñ ~~~~]\"],\"editor.toolHint.bypassSnapping.w5lmdv\":[\"[Ɓýþášš šñáþþîñĝ ~~~~~]\"],\"editor.toolHint.cancel.ew9em3\":[\"[Çáñçéļ ~~]\"],\"editor.toolHint.cancelMove.lvp31c\":[\"[Çáñçéļ ɱöṽé ~~~]\"],\"editor.toolHint.cancelRunExit.zqjf3h\":[\"[Çáñçéļ ŕûñ / éẋîţ ~~~~]\"],\"editor.toolHint.cancelStartPoint.1xbq2lh\":[\"[Çáñçéļ šţáŕţ þöîñţ ~~~~~]\"],\"editor.toolHint.cornerWindow.1avkzpo\":[\"[Çöŕñéŕ ŵîñðöŵ ~~~~]\"],\"editor.toolHint.cuts.1y0axps\":[\"[Çûţš ~~]\"],\"editor.toolHint.cutsValue.ouzhvb\":[\"[Çûţš: \",[\"value\"],\" ~~]\"],\"editor.toolHint.cutsValueEven.1ngsz3\":[\"[Çûţš: \",[\"value\"],\", éṽéñ ~~~]\"],\"editor.toolHint.cycleMonoGableButterfly.1poga3m\":[\"[Çýçļé ɱöñö / ĝáƀļé / ƀûţţéŕƒļý ~~~~~~~]\"],\"editor.toolHint.cycleSnappingMode.1ct0gn6\":[\"[Çýçļé šñáþþîñĝ ɱöðé ~~~~~~]\"],\"editor.toolHint.doorStyleClickOrPressL.33pe65\":[\"[Ðööŕ šţýļé — çļîçķ öŕ þŕéšš Ļ ţö çýçļé ~~~~~~~~~]\"],\"editor.toolHint.doorTypeClickOrPressO.1hhh8gt\":[\"[Ðööŕ ţýþé — çļîçķ öŕ þŕéšš Ö ţö çýçļé ~~~~~~~~~]\"],\"editor.toolHint.dropDownspoutFromOutlet.1k4h1m4\":[\"[Ðŕöþ ðöŵñšþöûţ ƒŕöɱ öûţļéţ ~~~~~~~]\"],\"editor.toolHint.ductDiameterDownUp.1wdz5vq\":[\"[Ðûçţ ðîáɱéţéŕ ðöŵñ / ûþ ~~~~~~]\"],\"editor.toolHint.endRunCancel.59dh2w\":[\"[Éñð ŕûñ / çáñçéļ ~~~~]\"],\"editor.toolHint.exit.engmg5\":[\"[Éẋîţ ~~]\"],\"editor.toolHint.exitDrawing.9noxyb\":[\"[Éẋîţ ðŕáŵîñĝ ~~~~]\"],\"editor.toolHint.finishAndContinue.1gpfsks\":[\"[Ƒîñîšĥ áñð çöñţîñûé ~~~~~~]\"],\"editor.toolHint.finishCeiling.1c1lfel\":[\"[Ƒîñîšĥ çéîļîñĝ ~~~~]\"],\"editor.toolHint.finishGridAxis.1wvrfhr\":[\"[Ƒîñîšĥ ĝŕîð áẋîš ~~~~~]\"],\"editor.toolHint.finishMeasurement.1e4gv16\":[\"[Ƒîñîšĥ ɱéášûŕéɱéñţ ~~~~~~]\"],\"editor.toolHint.finishMultiPointWitnesses.8wzskz\":[\"[Ƒîñîšĥ ɱûļţî-þöîñţ ŵîţñéššéš ~~~~~~~~]\"],\"editor.toolHint.finishSlab.xmnm8e\":[\"[Ƒîñîšĥ šļáƀ ~~~]\"],\"editor.toolHint.flipSide.172xku9\":[\"[Ƒļîþ šîðé ~~~]\"],\"editor.toolHint.followTraceALineset.mgquwe\":[\"[Ƒöļļöŵ: ţŕáçé á ļîñéšéţ ~~~~~~]\"],\"editor.toolHint.forcePlace.1hq1nr\":[\"[Ƒöŕçé þļáçé ~~~]\"],\"editor.toolHint.freePlacement.1nztdac\":[\"[Ƒŕéé þļáçéɱéñţ ~~~~]\"],\"editor.toolHint.goVerticalClickToPlace.dg8g6m\":[\"[Ĝö ṽéŕţîçáļ ↕, çļîçķ ţö þļáçé ~~~~~~~]\"],\"editor.toolHint.highlightOutlet.65hoq8\":[\"[Ĥîĝĥļîĝĥţ öûţļéţ ~~~~~]\"],\"editor.toolHint.joinAsACornerWindow.jvdp4j\":[\"[Ĵöîñ áš á çöŕñéŕ ŵîñðöŵ ~~~~~~]\"],\"editor.toolHint.key.altDrag.ai3wn9\":[\"[Åļţ + ðŕáĝ ~~~]\"],\"editor.toolHint.key.backspace.qy6qx8\":[\"[Ɓáçķšþáçé ~~~]\"],\"editor.toolHint.key.click.m8sun\":[\"[Çļîçķ ~~]\"],\"editor.toolHint.key.clickAgain.190ws9j\":[\"[Çļîçķ áĝáîñ ~~~]\"],\"editor.toolHint.key.command.1j2mkia\":[\"[Çöɱɱáñð ~~~]\"],\"editor.toolHint.key.control.10fbl8e\":[\"[Çöñţŕöļ ~~~]\"],\"editor.toolHint.key.delete.oay2cq\":[\"[Ðéļéţé ~~]\"],\"editor.toolHint.key.doubleClick.vlma6o\":[\"[Ðöûƀļé çļîçķ ~~~~]\"],\"editor.toolHint.key.drag.8pwtpf\":[\"[Ðŕáĝ ~~]\"],\"editor.toolHint.key.enter.1ctpui5\":[\"[Éñţéŕ ~~]\"],\"editor.toolHint.key.hover.6xw79p\":[\"[Ĥöṽéŕ ~~]\"],\"editor.toolHint.key.hoverADuctEnd.19axr3b\":[\"[Ĥöṽéŕ á ðûçţ éñð ~~~~]\"],\"editor.toolHint.key.hoverAPipeEnd.1jbum5f\":[\"[Ĥöṽéŕ á þîþé éñð ~~~~]\"],\"editor.toolHint.key.hoverGutter.1dwcsno\":[\"[Ĥöṽéŕ ĝûţţéŕ ~~~~]\"],\"editor.toolHint.key.leftClick.s4gwfc\":[\"[Ļéƒţ çļîçķ ~~~]\"],\"editor.toolHint.key.middleClick.1jbaan4\":[\"[Ṁîððļé çļîçķ ~~~~]\"],\"editor.toolHint.key.rShiftR.13bnobh\":[\"[Ŕ / Šĥîƒţ+Ŕ ~~~]\"],\"editor.toolHint.key.rightClick.1ovld0h\":[\"[Ŕîĝĥţ çļîçķ ~~~]\"],\"editor.toolHint.key.scroll.ai6wr0\":[\"[Šçŕöļļ ~~]\"],\"editor.toolHint.key.scrollWheel.18j0ix7\":[\"[Šçŕöļļ ŵĥééļ ~~~~]\"],\"editor.toolHint.key.space.1hrh82t\":[\"[Šþáçé ~~]\"],\"editor.toolHint.key.tab.1xsal0s\":[\"[Ţáƀ ~]\"],\"editor.toolHint.mountFloorCeilingWall.32dxpv\":[\"[Ṁöûñţ: ƒļööŕ / çéîļîñĝ / ŵáļļ ~~~~~~~]\"],\"editor.toolHint.noRoomForTheMatchingWindow.1755948\":[\"[Ñö ŕööɱ ƒöŕ ţĥé ɱáţçĥîñĝ ŵîñðöŵ öñ ţĥé öţĥéŕ ŵáļļ ~~~~~~~~~~~~]\"],\"editor.toolHint.noWallMeetsHere.19n99yc\":[\"[Ñö ŵáļļ ɱééţš ĥéŕé ~~~~~]\"],\"editor.toolHint.numberOfCutsScrollOrClick.1kqe84b\":[\"[Ñûɱƀéŕ öƒ çûţš — šçŕöļļ öŕ çļîçķ ţö çĥáñĝé ~~~~~~~~~~]\"],\"editor.toolHint.pickWitnessPoint.k3hgh1\":[\"[Þîçķ ŵîţñéšš þöîñţ ~~~~~]\"],\"editor.toolHint.pipeSizeDownUp.wp04og\":[\"[Þîþé šîžé ðöŵñ / ûþ ~~~~~]\"],\"editor.toolHint.placeAndContinue.qfwkrq\":[\"[Þļáçé áñð çöñţîñûé ~~~~~]\"],\"editor.toolHint.placeBlock.1aylwrx\":[\"[Þļáçé ƀļöçķ ~~~]\"],\"editor.toolHint.placeBoxVentOnRoof.kf88e5\":[\"[Þļáçé ƀöẋ ṽéñţ öñ ŕööƒ ~~~~~~]\"],\"editor.toolHint.placeCabinet.b0ouyk\":[\"[Þļáçé çáƀîñéţ ~~~~]\"],\"editor.toolHint.placeCanopyOrSetTheNext.12l7zf8\":[\"[Þļáçé çáñöþý öŕ šéţ ţĥé ñéẋţ ŕûñ þöîñţ ~~~~~~~~~~]\"],\"editor.toolHint.placeChimneyOnRoof.19dbqu\":[\"[Þļáçé çĥîɱñéý öñ ŕööƒ ~~~~~~]\"],\"editor.toolHint.placeColumn.1w2vq86\":[\"[Þļáçé çöļûɱñ ~~~~]\"],\"editor.toolHint.placeCupolaOnRoof.ofx3bn\":[\"[Þļáçé çûþöļá öñ ŕööƒ ~~~~~~]\"],\"editor.toolHint.placeDimensionLineWhenNeeded.bjw2cj\":[\"[Þļáçé ðîɱéñšîöñ ļîñé ŵĥéñ ñééðéð ~~~~~~~~~]\"],\"editor.toolHint.placeDoorOnWall.1jwadf\":[\"[Þļáçé ðööŕ öñ ŵáļļ ~~~~~]\"],\"editor.toolHint.placeDormerOnRoof.1w518a6\":[\"[Þļáçé ðöŕɱéŕ öñ ŕööƒ ~~~~~~]\"],\"editor.toolHint.placeElevator.1f65zva\":[\"[Þļáçé éļéṽáţöŕ ~~~~]\"],\"editor.toolHint.placeEyebrowVentOnRoof.1h1tqxn\":[\"[Þļáçé éýéƀŕöŵ ṽéñţ öñ ŕööƒ ~~~~~~~]\"],\"editor.toolHint.placeFitting.1pmx3vn\":[\"[Þļáçé ƒîţţîñĝ ~~~~]\"],\"editor.toolHint.placeGutterOnRoofEave.llwzf9\":[\"[Þļáçé ĝûţţéŕ öñ ŕööƒ éáṽé ~~~~~~~]\"],\"editor.toolHint.placeItLockedTo45.16e4csk\":[\"[Þļáçé îţ (ļöçķéð ţö 45°) ~~~~~]\"],\"editor.toolHint.placeItem.teynf\":[\"[Þļáçé îţéɱ ~~~]\"],\"editor.toolHint.placeMeasurementPoint.bsatli\":[\"[Þļáçé ɱéášûŕéɱéñţ þöîñţ ~~~~~~~]\"],\"editor.toolHint.placeOnAFence.1dptstr\":[\"[Þļáçé öñ á ƒéñçé ~~~~]\"],\"editor.toolHint.placeRegister.1uebycd\":[\"[Þļáçé ŕéĝîšţéŕ ~~~~]\"],\"editor.toolHint.placeRidgeVentOnRoof.2tpd8r\":[\"[Þļáçé ŕîðĝé ṽéñţ öñ ŕööƒ ~~~~~~]\"],\"editor.toolHint.placeShelf.y4l3iw\":[\"[Þļáçé šĥéļƒ ~~~]\"],\"editor.toolHint.placeSkylightOnRoof.e215pe\":[\"[Þļáçé šķýļîĝĥţ öñ ŕööƒ ~~~~~~]\"],\"editor.toolHint.placeSolarPanelArrayOnRoof.kk11fn\":[\"[Þļáçé šöļáŕ þáñéļ áŕŕáý öñ ŕööƒ ~~~~~~~~]\"],\"editor.toolHint.placeSpawnPoint.205o25\":[\"[Þļáçé šþáŵñ þöîñţ ~~~~~]\"],\"editor.toolHint.placeStairs.zwxxu2\":[\"[Þļáçé šţáîŕš ~~~~]\"],\"editor.toolHint.placeTrap.1gxemn3\":[\"[Þļáçé ţŕáþ ~~~]\"],\"editor.toolHint.placeTurbineVentOnRoof.1iqeluf\":[\"[Þļáçé ţûŕƀîñé ṽéñţ öñ ŕööƒ ~~~~~~~]\"],\"editor.toolHint.placeUnit.8zkx4q\":[\"[Þļáçé ûñîţ ~~~]\"],\"editor.toolHint.placeWindowOnWall.1k3qnfb\":[\"[Þļáçé ŵîñðöŵ öñ ŵáļļ ~~~~~~]\"],\"editor.toolHint.placeWithoutTheCornerSnap.1nifqew\":[\"[Þļáçé ŵîţĥöûţ ţĥé çöŕñéŕ šñáþ ~~~~~~~~]\"],\"editor.toolHint.placement.13lcvts\":[\"[Þļáçéɱéñţ ~~~]\"],\"editor.toolHint.placementAuto.1caa52d\":[\"[Þļáçéɱéñţ: Åûţö ~~~~]\"],\"editor.toolHint.placementGround.1ruz145\":[\"[Þļáçéɱéñţ: Ĝŕöûñð ~~~~~]\"],\"editor.toolHint.placementRoof.renkw8\":[\"[Þļáçéɱéñţ: Ŕööƒ ~~~~]\"],\"editor.toolHint.placementSurfaceClickOrPressP.w56h19\":[\"[Þļáçéɱéñţ šûŕƒáçé - çļîçķ öŕ þŕéšš Þ ţö çýçļé ~~~~~~~~~~~]\"],\"editor.toolHint.placementType.1mdpl60\":[\"[Þļáçéɱéñţ ţýþé ~~~~]\"],\"editor.toolHint.placementTypeClickOrPressI.10cgxh2\":[\"[Þļáçéɱéñţ ţýþé — çļîçķ öŕ þŕéšš Î ţö ţöĝĝļé ~~~~~~~~~~~]\"],\"editor.toolHint.removeLastPoint.2dmdcx\":[\"[Ŕéɱöṽé ļášţ þöîñţ ~~~~~]\"],\"editor.toolHint.removeLastWitness.1b6vvzw\":[\"[Ŕéɱöṽé ļášţ ŵîţñéšš ~~~~~~]\"],\"editor.toolHint.rotate.1thqa0a\":[\"[Ŕöţáţé ~~]\"],\"editor.toolHint.rotate45.9zq68u\":[\"[Ŕöţáţé ±45° ~~]\"],\"editor.toolHint.rotate45FloorCeiling.m9t57d\":[\"[Ŕöţáţé ±45° (ƒļööŕ / çéîļîñĝ) ~~~~~~]\"],\"editor.toolHint.rotateGhost15.rsa52c\":[\"[Ŕöţáţé ĝĥöšţ ±15° ~~~~]\"],\"editor.toolHint.rotateOrFlipTheRunSide.t5ior7\":[\"[Ŕöţáţé öŕ ƒļîþ ţĥé ŕûñ šîðé ~~~~~~~]\"],\"editor.toolHint.rotateRoofDirection90.tvbji2\":[\"[Ŕöţáţé ŕööƒ ðîŕéçţîöñ 90° ~~~~~~]\"],\"editor.toolHint.rotateSpawnPoint.1opcuu7\":[\"[Ŕöţáţé šþáŵñ þöîñţ ~~~~~]\"],\"editor.toolHint.roundRectangularOval.e4nh6x\":[\"[Ŕöûñð / ŕéçţáñĝûļáŕ / öṽáļ ~~~~~~]\"],\"editor.toolHint.setFenceStartEnd.1phbwsq\":[\"[Šéţ ƒéñçé šţáŕţ / éñð ~~~~~]\"],\"editor.toolHint.setOneCornerThenTheOpposite.8tsl49\":[\"[Šéţ öñé çöŕñéŕ, ţĥéñ ţĥé öþþöšîţé ~~~~~~~~~]\"],\"editor.toolHint.setRoofFootprint.p50n0o\":[\"[Šéţ ŕööƒ ƒööţþŕîñţ ~~~~~]\"],\"editor.toolHint.setWallStartEnd.1r8ubcx\":[\"[Šéţ ŵáļļ šţáŕţ / éñð ~~~~~]\"],\"editor.toolHint.slopeLevel.ftqp67\":[\"[Šļöþé / ļéṽéļ ~~~]\"],\"editor.toolHint.snapOntoTheRun.86yhmp\":[\"[Šñáþ öñţö ţĥé ŕûñ ~~~~~]\"],\"editor.toolHint.splitAtTheMarks.x5tpdd\":[\"[Šþļîţ áţ ţĥé ɱáŕķš ~~~~~]\"],\"editor.toolHint.startGridAxis.k92yza\":[\"[Šţáŕţ ĝŕîð áẋîš ~~~~]\"],\"editor.toolHint.startLineset.23q8dh\":[\"[Šţáŕţ ļîñéšéţ ~~~~]\"],\"editor.toolHint.startLiquidLine.1rlxsgd\":[\"[Šţáŕţ ļîǫûîð ļîñé ~~~~~]\"],\"editor.toolHint.startRun.r6fc5u\":[\"[Šţáŕţ ŕûñ ~~~]\"],\"editor.toolHint.startSegment.rolym6\":[\"[Šţáŕţ šéĝɱéñţ ~~~~]\"],\"editor.toolHint.stepBackOrCancel.zbfdkn\":[\"[Šţéþ ƀáçķ öŕ çáñçéļ ~~~~~]\"],\"editor.toolHint.style.nf3vcm\":[\"[Šţýļé ~~]\"],\"editor.toolHint.styleBarn.k9n1x\":[\"[Šţýļé: Ɓáŕñ ~~~]\"],\"editor.toolHint.styleCasement.ziklec\":[\"[Šţýļé: Çášéɱéñţ ~~~~]\"],\"editor.toolHint.styleCraftsman.52e6a9\":[\"[Šţýļé: Çŕáƒţšɱáñ ~~~~~]\"],\"editor.toolHint.styleDoubleHung.1lg8pkg\":[\"[Šţýļé: Ðöûƀļé-ĥûñĝ ~~~~~]\"],\"editor.toolHint.styleFrench.1ue3j64\":[\"[Šţýļé: Ƒŕéñçĥ ~~~~]\"],\"editor.toolHint.styleGlass.qudnb4\":[\"[Šţýļé: Ĝļášš ~~~]\"],\"editor.toolHint.styleGrid.1vuq4po\":[\"[Šţýļé: Ĝŕîð ~~~]\"],\"editor.toolHint.styleHalfLouvered.13b1few\":[\"[Šţýļé: Ĥáļƒ-ļöûṽéŕéð ~~~~~~]\"],\"editor.toolHint.styleHorizontalBands.12ethxk\":[\"[Šţýļé: Ĥöŕîžöñţáļ ƀáñðš ~~~~~~]\"],\"editor.toolHint.styleModern.1fh8hhn\":[\"[Šţýļé: Ṁöðéŕñ ~~~~]\"],\"editor.toolHint.stylePanel.922jze\":[\"[Šţýļé: Þáñéļ ~~~]\"],\"editor.toolHint.stylePaneledGlass.17a17en\":[\"[Šţýļé: Þáñéļéð ĝļášš ~~~~~~]\"],\"editor.toolHint.styleShaker.49z17k\":[\"[Šţýļé: Šĥáķéŕ ~~~~]\"],\"editor.toolHint.styleSingle.6f3cm0\":[\"[Šţýļé: Šîñĝļé ~~~~]\"],\"editor.toolHint.styleSixPanel.u49laj\":[\"[Šţýļé: Šîẋ-þáñéļ ~~~~]\"],\"editor.toolHint.styleSliding.q81s0i\":[\"[Šţýļé: Šļîðîñĝ ~~~~]\"],\"editor.toolHint.styleTallGrid.1eotg3x\":[\"[Šţýļé: Ţáļļ ĝŕîð ~~~~]\"],\"editor.toolHint.styleTransom.kb9bh6\":[\"[Šţýļé: Ţŕáñšöɱ ~~~~]\"],\"editor.toolHint.styleTripleHung.pxnqi3\":[\"[Šţýļé: Ţŕîþļé-ĥûñĝ ~~~~~]\"],\"editor.toolHint.styleWideGrid.12n27et\":[\"[Šţýļé: Ŵîðé ĝŕîð ~~~~]\"],\"editor.toolHint.switchRotationAxisYXZ.15lohm6\":[\"[Šŵîţçĥ ŕöţáţîöñ áẋîš (Ý → Ẋ → Ž) ~~~~~~~]\"],\"editor.toolHint.theWallsMeetAtTooSharp.kh3wi3\":[\"[Ţĥé ŵáļļš ɱééţ áţ ţöö šĥáŕþ öŕ ţöö ƒļáţ áñ áñĝļé ~~~~~~~~~~~~]\"],\"editor.toolHint.theWindowWaitingThereIsTaller.1tqwez4\":[\"[Ţĥé ŵîñðöŵ ŵáîţîñĝ ţĥéŕé îš ţáļļéŕ ţĥáñ ţĥîš ŵáļļ ~~~~~~~~~~~~~]\"],\"editor.toolHint.threeOrMoreWallsMeetHere.rgifif\":[\"[Ţĥŕéé öŕ ɱöŕé ŵáļļš ɱééţ ĥéŕé ~~~~~~~~]\"],\"editor.toolHint.traceCeilingOutline.1b639wv\":[\"[Ţŕáçé çéîļîñĝ öûţļîñé ~~~~~~]\"],\"editor.toolHint.traceSlabOutline.z0j2lc\":[\"[Ţŕáçé šļáƀ öûţļîñé ~~~~~]\"],\"editor.toolHint.type.1m2zofh\":[\"[Ţýþé ~~]\"],\"editor.toolHint.typeAwning.1cj59al\":[\"[Ţýþé: Åŵñîñĝ ~~~]\"],\"editor.toolHint.typeBarn.sbnygq\":[\"[Ţýþé: Ɓáŕñ ~~~]\"],\"editor.toolHint.typeBay.1200hc1\":[\"[Ţýþé: Ɓáý ~~~]\"],\"editor.toolHint.typeBow.14s2t9p\":[\"[Ţýþé: Ɓöŵ ~~~]\"],\"editor.toolHint.typeCabinet.1r68je5\":[\"[Ţýþé: Çáƀîñéţ ~~~~]\"],\"editor.toolHint.typeCasement.176uo9j\":[\"[Ţýþé: Çášéɱéñţ ~~~~]\"],\"editor.toolHint.typeDouble.af7w4i\":[\"[Ţýþé: Ðöûƀļé ~~~]\"],\"editor.toolHint.typeDoubleHung.t482fu\":[\"[Ţýþé: Ðöûƀļé Ĥûñĝ ~~~~~]\"],\"editor.toolHint.typeFixed.v1cjez\":[\"[Ţýþé: Ƒîẋéð ~~~]\"],\"editor.toolHint.typeFolding.sxxyng\":[\"[Ţýþé: Ƒöļðîñĝ ~~~~]\"],\"editor.toolHint.typeFrench.1y57z1b\":[\"[Ţýþé: Ƒŕéñçĥ ~~~]\"],\"editor.toolHint.typeHinged.1xrcfju\":[\"[Ţýþé: Ĥîñĝéð ~~~]\"],\"editor.toolHint.typeIsland.ufr3ce\":[\"[Ţýþé: Κļáñð ~~~]\"],\"editor.toolHint.typeLouvered.oxl1cz\":[\"[Ţýþé: Ļöûṽéŕéð ~~~~]\"],\"editor.toolHint.typePocket.hc65x9\":[\"[Ţýþé: Þöçķéţ ~~~]\"],\"editor.toolHint.typeSingleHung.p53pyl\":[\"[Ţýþé: Šîñĝļé Ĥûñĝ ~~~~~]\"],\"editor.toolHint.typeSliding.nwmr3f\":[\"[Ţýþé: Šļîðîñĝ ~~~~]\"],\"editor.toolHint.verticalStackClickToPlace.ijcn4q\":[\"[Ṽéŕţîçáļ šţáçķ ↕, çļîçķ ţö þļáçé ~~~~~~~~]\"],\"editor.toolHint.wasteVent.1hvi3vj\":[\"[Ŵášţé / ṽéñţ ~~~]\"],\"editor.toolHint.windowStyleClickOrPressL.ah7qm9\":[\"[Ŵîñðöŵ šţýļé — çļîçķ öŕ þŕéšš Ļ ţö çýçļé ~~~~~~~~~~]\"],\"editor.toolHint.windowTypeClickOrPressO.wv4x35\":[\"[Ŵîñðöŵ ţýþé — çļîçķ öŕ þŕéšš Ö ţö çýçļé ~~~~~~~~~]\"],\"editor.views.plugins\":[\"[Þļûĝîñš ~~~]\"],\"editor.views.view2d\":[\"[2Ð ~]\"],\"editor.views.view3d\":[\"[3Ð ~]\"],\"editor.views.viewBar.auto\":[\"[Åûţö ~~]\"],\"editor.views.viewBar.browsePlugins\":[\"[Ɓŕöŵšé þļûĝîñš ~~~~]\"],\"editor.views.viewBar.closeLabel\":[\"[Çļöšé \",[\"label\"],\" ~~]\"],\"editor.views.viewBar.closeSplit\":[\"[Çļöšé šþļîţ (\\\\) ~~~]\"],\"editor.views.viewBar.ground\":[\"[Ĝŕöûñð ~~]\"],\"editor.views.viewBar.groundSolid\":[\"[\",[\"standing\",\"select\",{\"partly\":[\"Þáŕţļý ƀéļöŵ ĝŕáðé · ĝŕöûñð šöļîð\"],\"below\":[\"Ɓéļöŵ ĝŕáðé · ĝŕöûñð šöļîð\"],\"other\":[\"Ĝŕöûñð šöļîð\"]}],\" ~~~~~~~~~~~~~~~~~~]\"],\"editor.views.viewBar.groundVeiled\":[\"[\",[\"standing\",\"select\",{\"partly\":[\"Þáŕţļý ƀéļöŵ ĝŕáðé · ĝŕöûñð ṽéîļéð\"],\"below\":[\"Ɓéļöŵ ĝŕáðé · ĝŕöûñð ṽéîļéð\"],\"other\":[\"Ĝŕöûñð ṽéîļéð\"]}],\" ~~~~~~~~~~~~~~~~~~~]\"],\"editor.views.viewBar.keepTheGroundSolid\":[\"[Ķééþ ţĥé ĝŕöûñð šöļîð ~~~~~~]\"],\"editor.views.viewBar.moreViews\":[\"[Ṁöŕé ṽîéŵš ~~~]\"],\"editor.views.viewBar.paneViews\":[\"[Þáñé \",[\"pane\"],\" ṽîéŵš ~~~]\"],\"editor.views.viewBar.pinLabel\":[\"[Þîñ \",[\"label\"],\" ~]\"],\"editor.views.viewBar.pinToTheViewBar\":[\"[Þîñ ţö ţĥé ṽîéŵ ƀáŕ ~~~~~]\"],\"editor.views.viewBar.solid\":[\"[Šöļîð ~~]\"],\"editor.views.viewBar.split\":[\"[Šþļîţ (\\\\) ~~]\"],\"editor.views.viewBar.split2\":[\"[Šþļîţ ~~]\"],\"editor.views.viewBar.swapPanes\":[\"[Šŵáþ þáñéš ~~~]\"],\"editor.views.viewBar.unpinFromTheViewBar\":[\"[Ûñþîñ ƒŕöɱ ţĥé ṽîéŵ ƀáŕ ~~~~~~]\"],\"editor.views.viewBar.unpinLabel\":[\"[Ûñþîñ \",[\"label\"],\" ~~]\"],\"editor.views.viewBar.veilTheGroundOverALevel\":[\"[Ṽéîļ ţĥé ĝŕöûñð öṽéŕ á ļéṽéļ ƀéļöŵ ĝŕáðé ~~~~~~~~~~]\"],\"editor.views.viewBar.views\":[\"[Ṽîéŵš ~~]\"],\"editor.youCanRetryTheSceneOr\":[\"[Ýöû çáñ ŕéţŕý ţĥé šçéñé öŕ ŕéţûŕñ ĥöɱé ŵîţĥöûţ ŕéļöáðîñĝ ţĥé ŵĥöļé áþþ šĥéļļ. ~~~~~~~~~~~~~~~~~~~]\"],\"node.block.description\":[\"[Å ţöþöļöĝý-ƀáçķéð šöļîð éðîţéð ðîŕéçţļý îñ ţĥé çáñṽáš. ~~~~~~~~~~~~~~]\"],\"node.block.label\":[\"[Ɓļöçķ ~~]\"],\"node.boxVent.description\":[\"[Šɱáļļ ļöûṽéŕéð éẋĥáûšţ ṽéñţ ţĥáţ šîţš öñ á ŕööƒ šļöþé. ~~~~~~~~~~~~~~]\"],\"node.boxVent.label\":[\"[Ɓöẋ Ṽéñţ ~~~]\"],\"node.building.description\":[\"[Å ƀûîļðîñĝ çöñţáîñéŕ ĥöļðîñĝ öñé öŕ ɱöŕé ļéṽéļš. ~~~~~~~~~~~~]\"],\"node.building.label\":[\"[Ɓûîļðîñĝ ~~~]\"],\"node.cabinet.description\":[\"[Å çöñƒîĝûŕáƀļé þáŕáɱéţŕîç ƀášé çáƀîñéţ. ~~~~~~~~~~~]\"],\"node.cabinet.label\":[\"[Ṁöðûļáŕ Çáƀîñéţ ~~~~~]\"],\"node.cabinetModule.description\":[\"[Åñ éðîţáƀļé ɱöðûļé îñšîðé á ɱöðûļáŕ çáƀîñéţ ŕûñ. ~~~~~~~~~~~~]\"],\"node.cabinetModule.label\":[\"[Çáƀîñéţ Ṁöðûļé ~~~~]\"],\"node.ceiling.description\":[\"[Å þöļýĝöñ-ƀöûñðéð çéîļîñĝ šûŕƒáçé ţĥáţ ĥöšţš çéîļîñĝ-ɱöûñţéð îţéɱš. ~~~~~~~~~~~~~~~~~~]\"],\"node.ceiling.label\":[\"[Çéîļîñĝ ~~~]\"],\"node.chimney.description\":[\"[Ṽéŕţîçáļ ɱášöñŕý šţáçķ öñ á ŕööƒ šéĝɱéñţ. ~~~~~~~~~~~]\"],\"node.chimney.label\":[\"[Çĥîɱñéý ~~~]\"],\"node.column.description\":[\"[Å þáŕáɱéţŕîç çöļûɱñ ŵîţĥ çöñƒîĝûŕáƀļé çŕöšš-šéçţîöñ, ƀášé, áñð çáþîţáļ. ~~~~~~~~~~~~~~~~~~]\"],\"node.column.label\":[\"[Çöļûɱñ ~~]\"],\"node.constructionDimension.description\":[\"[Åššöçîáţîṽé ļîñéáŕ, çûŕṽéð, çîŕçûļáŕ, áñĝûļáŕ, öŕ çööŕðîñáţé þļáñ ðîɱéñšîöñ. ~~~~~~~~~~~~~~~~~~~]\"],\"node.constructionDimension.label\":[\"[Çöñšţŕûçţîöñ Ðîɱéñšîöñ ~~~~~~~]\"],\"node.cupola.description\":[\"[Ļöûṽéŕéð ŕööƒ ļáñţéŕñ ŵîţĥ á ðöɱé öŕ þýŕáɱîð çáþ áñð öþţîöñáļ ƒîñîáļ. ~~~~~~~~~~~~~~~~~~]\"],\"node.cupola.label\":[\"[Çûþöļá ~~]\"],\"node.door.description\":[\"[Å ðööŕ çûţ îñţö á ŵáļļ. Åñîɱáţéð öþéñ/çļöšé šţáţé. ~~~~~~~~~~~~]\"],\"node.door.label\":[\"[Ðööŕ ~~]\"],\"node.dormer.description\":[\"[Ĥöûšé-šĥáþéð þŕöţŕûšîöñ öñ á ŕööƒ šéĝɱéñţ. ~~~~~~~~~~~]\"],\"node.dormer.label\":[\"[Ðöŕɱéŕ ~~]\"],\"node.downspout.description\":[\"[Ṽéŕţîçáļ ðŕöþ þîþé ƒŕöɱ á ĝûţţéŕ öûţļéţ ţö ţĥé ĝŕöûñð. ~~~~~~~~~~~~~~]\"],\"node.downspout.label\":[\"[Ðöŵñšþöûţ ~~~]\"],\"node.ductFitting.description\":[\"[Éļƀöŵ, ţéé, ŕéðûçéŕ, öŕ šǫûáŕé-ţö-ŕöûñð ţŕáñšîţîöñ çöññéçţîñĝ ðûçţ ŕûñš. ~~~~~~~~~~~~~~~~~~]\"],\"node.ductFitting.label\":[\"[Ðûçţ Ƒîţţîñĝ ~~~~]\"],\"node.ductSegment.description\":[\"[ĤṼÅÇ ðûçţ ŕûñ — þöļýļîñé öƒ ŕöûñð, ŕéçţ, öŕ ƒļáţ-öṽáļ šéçţîöñš. ~~~~~~~~~~~~~~~]\"],\"node.ductSegment.label\":[\"[Ðûçţ ~~]\"],\"node.ductTerminal.description\":[\"[Ðûçţ ţéŕɱîñáļ — šûþþļý ŕéĝîšţéŕ, çéîļîñĝ ðûšéŕ, öŕ ŕéţûŕñ ĝŕîļļé. Ðûçţ ŕûñš éñð áţ îţš çöļļáŕ. ~~~~~~~~~~~~~~~~~~~~~~~~]\"],\"node.ductTerminal.label\":[\"[Ŕéĝîšţéŕ ~~~]\"],\"node.elevator.description\":[\"[Å ɱûļţî-ļéṽéļ éļéṽáţöŕ šĥáƒţ ŵîţĥ çöñƒîĝûŕáƀļé öþéñîñĝš þéŕ ļéṽéļ. ~~~~~~~~~~~~~~~~~]\"],\"node.elevator.label\":[\"[Éļéṽáţöŕ ~~~]\"],\"node.eyebrowVent.description\":[\"[Ļöŵ çûŕṽéð ļéñš-šĥáþéð ŕööƒ ṽéñţ ŵîţĥ á ļöûṽéŕéð ƒŕöñţ. ~~~~~~~~~~~~~~]\"],\"node.eyebrowVent.label\":[\"[Éýéƀŕöŵ Ṽéñţ ~~~~]\"],\"node.fence.description\":[\"[Å šţŕáîĝĥţ öŕ çûŕṽéð ƒéñçé šéĝɱéñţ ŵîţĥ çöñƒîĝûŕáƀļé þöšţš áñð îñƒîļļ. ~~~~~~~~~~~~~~~~~~]\"],\"node.fence.label\":[\"[Ƒéñçé ~~]\"],\"node.fenceGate.description\":[\"[Å ĝáţé ĥöšţéð ƀý á ƒéñçé. ~~~~~~]\"],\"node.fenceGate.label\":[\"[Ĝáţé ~~]\"],\"node.fenceOpening.description\":[\"[Åñ îñţéñţîöñáļ öþéñîñĝ îñ á ƒéñçé. ~~~~~~~~~]\"],\"node.fenceOpening.label\":[\"[Öþéñ Þáššáĝé ~~~~]\"],\"node.floorOpening.label\":[\"[Ƒļööŕ öþéñîñĝ ~~~~]\"],\"node.guide.description\":[\"[Å ɱéášûŕéɱéñţ / ŕéƒéŕéñçé áññöţáţîöñ (ļîñéáŕ, áŕéá, öŕ áŕç). ~~~~~~~~~~~~~~]\"],\"node.guide.label\":[\"[Ĝûîðé ~~]\"],\"node.gutter.description\":[\"[Ŕáîñ-ŵáţéŕ çĥáññéļ ŕûññîñĝ áļöñĝ ţĥé éáṽé öƒ á ŕööƒ šéĝɱéñţ. ~~~~~~~~~~~~~~~]\"],\"node.gutter.label\":[\"[Ĝûţţéŕ ~~]\"],\"node.hvacEquipment.description\":[\"[Ƒûŕñáçé, áîŕ ĥáñðļéŕ, öŕ çöñðéñšéŕ — ðûçţ ŕûñš çöññéçţ ţö îţš šûþþļý/ŕéţûŕñ çöļļáŕš. ~~~~~~~~~~~~~~~~~~~~~]\"],\"node.hvacEquipment.label\":[\"[ĤṼÅÇ Ûñîţ ~~~]\"],\"node.importedMesh.description\":[\"[Ĝéöɱéţŕý þŕéšéŕṽéð ƒŕöɱ áñ îɱþöŕţéð ɱöðéļ ŵĥéñ ñö ñáţîṽé Þášçáļ šĥáþé éẋîšţš. ~~~~~~~~~~~~~~~~~~~~]\"],\"node.importedMesh.label\":[\"[Îɱþöŕţéð Ṁéšĥ ~~~~]\"],\"node.item.description\":[\"[Å çáţáļöĝ-ƀáçķéð îţéɱ (ƒûŕñîţûŕé, ƒîẋţûŕéš, ðéçöŕáţîöñš). ~~~~~~~~~~~~~~]\"],\"node.item.label\":[\"[Îţéɱ ~~]\"],\"node.leanToExtension.description\":[\"[Åñ áţţáçĥéð ɱöñö-þîţçĥ öŕ ƒŕééšţáñðîñĝ ɱöñö, ĝáƀļé, öŕ ƀûţţéŕƒļý çáñöþý ŵîţĥ ɱáñáĝéð šţŕûçţûŕé áñð ðŕáîñáĝé. ~~~~~~~~~~~~~~~~~~~~~~~~~~~]\"],\"node.leanToExtension.label\":[\"[Çáñöþý ~~]\"],\"node.level.description\":[\"[Å šîñĝļé ƒļööŕ öƒ á ƀûîļðîñĝ, ĥöļðîñĝ ŵáļļš / šļáƀš / çéîļîñĝš / îţéɱš. ~~~~~~~~~~~~~~~~]\"],\"node.level.label\":[\"[Ļéṽéļ ~~]\"],\"node.lineset.description\":[\"[Ŕéƒŕîĝéŕáñţ ļîñéšéţ — çöþþéŕ šûçţîöñ + ļîǫûîð þáîŕ ĵöîñîñĝ á çöñðéñšéŕ ţö ţĥé îñðööŕ çöîļ. ~~~~~~~~~~~~~~~~~~~~~~]\"],\"node.lineset.label\":[\"[Ļîñéšéţ ~~~]\"],\"node.liquidLine.description\":[\"[Šţáñðáļöñé ŕéƒŕîĝéŕáñţ ļîǫûîð ļîñé — á ţĥîñ ƀáŕé-çöþþéŕ ŕûñ; Ƒöļļöŵ ɱöðé ţŕáçéš áñ éẋîšţîñĝ ļîñéšéţ. ~~~~~~~~~~~~~~~~~~~~~~~~~]\"],\"node.liquidLine.label\":[\"[Ļîǫûîð Ļîñé ~~~]\"],\"node.measurement.description\":[\"[Å þéŕšîšţéñţ ðîšţáñçé, áñĝļé, áŕéá, þéŕîɱéţéŕ, öŕ ṽöļûɱé áññöţáţîöñ. ~~~~~~~~~~~~~~~~~]\"],\"node.measurement.label\":[\"[Ṁéášûŕéɱéñţ ~~~~]\"],\"node.pipeFitting.description\":[\"[ÐŴṼ ĵöîñţ — éļƀöŵ ƀéñð, 45° ŵýé, öŕ šáñîţáŕý ţéé. ~~~~~~~~~~]\"],\"node.pipeFitting.label\":[\"[Þîþé Ƒîţţîñĝ ~~~~]\"],\"node.pipeSegment.description\":[\"[Ðŕáîñ / ŵášţé / ṽéñţ þîþé ŕûñ — ðŕáŵ ļéṽéļ öŕ ţöĝĝļé á ¼″ þéŕ ƒööţ ƒáļļ ŵîţĥ Š. ~~~~~~~~~~~~~~~~~]\"],\"node.pipeSegment.label\":[\"[ÐŴṼ Þîþé ~~~]\"],\"node.pipeTrap.description\":[\"[ÐŴṼ Þ-ţŕáþ — ŵáţéŕ šéáļ öñ ţĥé ŵášţé ļîñé. Ţĥé ţŕáþ áŕɱ ŕûñš ţö ţĥé ṽéñţ. ~~~~~~~~~~~~~~~~~]\"],\"node.pipeTrap.label\":[\"[Ţŕáþ ~~]\"],\"node.proceduralItem.description\":[\"[Éẋþéŕîɱéñţáļ éðîţáƀļé ŕéçîþé ~~~~~~~~]\"],\"node.proceduralItem.label\":[\"[Þŕöçéðûŕáļ îţéɱ ~~~~~]\"],\"node.ridgeVent.description\":[\"[Ṽéñţîļáţîöñ šţŕîþ ŕûññîñĝ áļöñĝ ţĥé ŕîðĝé öƒ á ŕööƒ šéĝɱéñţ. ~~~~~~~~~~~~~~~]\"],\"node.ridgeVent.label\":[\"[Ŕîðĝé Ṽéñţ ~~~]\"],\"node.roof.description\":[\"[Å þîţçĥéð / ĥîþ / ĝáƀļé ŕööƒ çöɱþöšéð öƒ öñé öŕ ɱöŕé šéĝɱéñţš. ~~~~~~~~~~~~~~~]\"],\"node.roof.label\":[\"[Ŕööƒ ~~]\"],\"node.roofSegment.description\":[\"[Å šîñĝļé þîţçĥéð þļáñé öƒ á þáŕéñţ ŕööƒ. ~~~~~~~~~~]\"],\"node.roofSegment.label\":[\"[Ŕööƒ Šéĝɱéñţ ~~~~]\"],\"node.scan.description\":[\"[Å çáþţûŕéð šéššîöñ ŵîţĥ öþţîöñáļ ɱéšĥ, ɱöţîöñ, ɱéðîá, áñð šéñšöŕ ðáţá. ~~~~~~~~~~~~~~~~~]\"],\"node.scan.label\":[\"[Çáþţûŕé ~~~]\"],\"node.separator.label\":[\"[Šéþáŕáţöŕ ~~~]\"],\"node.shelf.description\":[\"[Å çöñƒîĝûŕáƀļé šĥéļṽîñĝ ûñîţ. Îţéɱš ĥöšţ öñ éáçĥ ŕöŵ. ~~~~~~~~~~~~~]\"],\"node.shelf.label\":[\"[Šĥéļƒ ~~]\"],\"node.site.description\":[\"[Ţĥé ţöþ-ļéṽéļ çöñţáîñéŕ ĥöļðîñĝ ƀûîļðîñĝš, žöñéš, áñð ţĥé þŕöþéŕţý ƀöûñðáŕý. ~~~~~~~~~~~~~~~~~~~]\"],\"node.site.label\":[\"[Šîţé ~~]\"],\"node.skylight.description\":[\"[Ƒŕáɱéð ĝļášš öþéñîñĝ öñ á ŕööƒ šéĝɱéñţ. ~~~~~~~~~~]\"],\"node.skylight.label\":[\"[Šķýļîĝĥţ ~~~]\"],\"node.slab.description\":[\"[Å þöļýĝöñ-ƀöûñðéð ƒļööŕ šûŕƒáçé ţĥáţ ĥöšţš îţéɱš öñ ţöþ. ~~~~~~~~~~~~~~]\"],\"node.slab.label\":[\"[Šļáƀ ~~]\"],\"node.solarPanel.description\":[\"[Ĝŕîð öƒ þĥöţöṽöļţáîç þáñéļš ɱöûñţéð öñ á ŕööƒ šéĝɱéñţ. ~~~~~~~~~~~~~~]\"],\"node.solarPanel.label\":[\"[Šöļáŕ Þáñéļ ~~~]\"],\"node.spawn.description\":[\"[Þļáýéŕ öŕ çáɱéŕá öŕîĝîñ ŵîţĥîñ á ļéṽéļ. Öñé þéŕ ļéṽéļ. ~~~~~~~~~~~~~]\"],\"node.spawn.label\":[\"[Šþáŵñ Þöîñţ ~~~]\"],\"node.stair.description\":[\"[Å šţáîŕ çöɱþöšéð öƒ öñé öŕ ɱöŕé ƒļîĝĥţš ŵîţĥ çöñƒîĝûŕáƀļé ţŕéáðš, ŕîšéŕš, ŕáîļîñĝš. ~~~~~~~~~~~~~~~~~~~~~]\"],\"node.stair.label\":[\"[Šţáîŕ ~~]\"],\"node.stairSegment.description\":[\"[Å šîñĝļé ƒļîĝĥţ öƒ á þáŕéñţ šţáîŕ. ~~~~~~~~~]\"],\"node.stairSegment.label\":[\"[Šţáîŕ Šéĝɱéñţ ~~~~]\"],\"node.structuralGrid.description\":[\"[Þéŕšîšţéñţ çöñšţŕûçţîöñ ĝŕîð áẋîš ŵîţĥ îðéñţîƒîçáţîöñ ƀûƀƀļéš. ~~~~~~~~~~~~~~~~~]\"],\"node.structuralGrid.label\":[\"[Šţŕûçţûŕáļ Ĝŕîð ~~~~~]\"],\"node.turbineVent.description\":[\"[Ŵîñð-ðŕîṽéñ šþîññîñĝ ŵĥîŕļýƀîŕð éẋĥáûšţ ṽéñţ ƒöŕ á ŕööƒ šļöþé. ~~~~~~~~~~~~~~~~]\"],\"node.turbineVent.label\":[\"[Ţûŕƀîñé Ṽéñţ ~~~~]\"],\"node.unit.description\":[\"[Å ñáɱéð ĝŕöûþ öƒ žöñéš ƒöŕɱîñĝ öñé áþáŕţɱéñţ, ĥöţéļ ŕööɱ öŕ çöɱɱéŕçîáļ ļöţ. ~~~~~~~~~~~~~~~~~~~]\"],\"node.unit.label\":[\"[Ûñîţ ~~]\"],\"node.wall.description\":[\"[Å šţŕáîĝĥţ öŕ çûŕṽéð ŵáļļ šéĝɱéñţ. Ĥöšţš ðööŕš, ŵîñðöŵš, ļéáñ-ţö éẋţéñšîöñš, áñð ŵáļļ-ɱöûñţéð îţéɱš. ~~~~~~~~~~~~~~~~~~~~~~~~]\"],\"node.wall.label\":[\"[Ŵáļļ ~~]\"],\"node.window.description\":[\"[Å ŵîñðöŵ çûţ îñţö á ŵáļļ. Åñîɱáţéð öþéñ/çļöšé ƒöŕ öþéñîñĝ ŵîñðöŵš. ~~~~~~~~~~~~~~~~]\"],\"node.window.label\":[\"[Ŵîñðöŵ ~~]\"],\"node.zone.description\":[\"[Å þöļýĝöñáļ šîţé žöñé (ļáŵñ, ŵáţéŕ, þáṽîñĝ) ŵîţĥ á ŢŠĻ ĝŕáðîéñţ ɱáţéŕîáļ. ~~~~~~~~~~~~~~~~~~]\"],\"node.zone.label\":[\"[Žöñé ~~]\"],\"viewer.camera.orbitLeft\":[\"[Öŕƀîţ ļéƒţ ~~~]\"],\"viewer.camera.orbitRight\":[\"[Öŕƀîţ ŕîĝĥţ ~~~]\"],\"viewer.camera.topView\":[\"[Ţöþ ṽîéŵ ~~~]\"],\"viewer.common.off\":[\"[Öƒƒ ~]\"],\"viewer.common.on\":[\"[Öñ ~]\"],\"viewer.display.camera\":[\"[Çáɱéŕá ~~]\"],\"viewer.display.colored\":[\"[Çöļöŕéð ~~~]\"],\"viewer.display.colors\":[\"[Çöļöŕš ~~]\"],\"viewer.display.edges.off\":[\"[Öƒƒ ~]\"],\"viewer.display.edges.offDetail\":[\"[Ñö éðĝé ļîñéš ~~~~]\"],\"viewer.display.edges.soft\":[\"[Šöƒţ ~~]\"],\"viewer.display.edges.softDetail\":[\"[Ƒáîñţ öûţļîñé öƒ ɱáĵöŕ çŕéášéš ~~~~~~~~]\"],\"viewer.display.edges.strong\":[\"[Šţŕöñĝ ~~]\"],\"viewer.display.edges.strongDetail\":[\"[Çŕîšþ, öþáǫûé éðĝé ļîñéš ~~~~~~]\"],\"viewer.display.edges.title\":[\"[Éðĝéš ~~]\"],\"viewer.display.monochrome\":[\"[Ṁöñöçĥŕöɱé ~~~]\"],\"viewer.display.orthographic\":[\"[Öŕţĥöĝŕáþĥîç ~~~~]\"],\"viewer.display.perspective\":[\"[Þéŕšþéçţîṽé ~~~~]\"],\"viewer.display.render.rendered\":[\"[Ŕéñðéŕéð ~~~]\"],\"viewer.display.render.renderedDetail\":[\"[Ƒûļļ áɱƀîéñţ öççļûšîöñ ~~~~~~]\"],\"viewer.display.render.solid\":[\"[Šöļîð ~~]\"],\"viewer.display.render.solidDetail\":[\"[Ƒļáţ áñð ƒášţ — ñö áɱƀîéñţ öççļûšîöñ ~~~~~~~~~]\"],\"viewer.display.render.title\":[\"[Ŕéñðéŕ ~~]\"],\"viewer.display.shadows\":[\"[Šĥáðöŵš ~~~]\"],\"viewer.display.title\":[\"[Ðîšþļáý šéţţîñĝš ~~~~~]\"],\"viewer.floorplan.alignNorth\":[\"[Åļîĝñ ṽîéŵ ţö ñöŕţĥ ~~~~~]\"],\"viewer.floorplan.empty\":[\"[Ñö ƒļööŕ þļáñš áŕé áṽáîļáƀļé ƒöŕ ţĥîš šçéñé. ~~~~~~~~~~~]\"],\"viewer.floorplan.fit\":[\"[Ƒîţ ƒļööŕ þļáñ ~~~~]\"],\"viewer.floorplan.floor\":[\"[Ƒļööŕ ~~]\"],\"viewer.floorplan.floorPlan\":[\"[Ƒļööŕ þļáñ ~~~]\"],\"viewer.floorplan.viewLabel\":[\"[\",[\"floor\"],\" 2Ð ṽîéŵ ~~]\"],\"viewer.floorplan.zoomIn\":[\"[Žööɱ îñ ~~]\"],\"viewer.floorplan.zoomOut\":[\"[Žööɱ öûţ ~~~]\"],\"viewer.header.back\":[\"[Ɓáçķ ~~]\"],\"viewer.header.levels\":[\"[Ļéṽéļš ~~]\"],\"viewer.header.rooms\":[\"[Ŕööɱš ~~]\"],\"viewer.header.selection\":[\"[Šéļéçţîöñ ~~~]\"],\"viewer.header.units\":[\"[Ûñîţš ~~]\"],\"viewer.header.untitled\":[\"[Ûñţîţļéð ~~~]\"],\"viewer.header.zones\":[\"[Žöñéš ~~]\"],\"viewer.levels.exploded\":[\"[Éẋþļöðéð ~~~]\"],\"viewer.levels.label\":[\"[Ļéṽéļš: \",[\"mode\"],\" ~~]\"],\"viewer.levels.manual\":[\"[Ṁáñûáļ ~~]\"],\"viewer.levels.solo\":[\"[Šöļö ~~]\"],\"viewer.levels.stacked\":[\"[Šţáçķéð ~~~]\"],\"viewer.stage.layout\":[\"[Ṽîéŵéŕ ļáýöûţ ~~~~]\"],\"viewer.stage.split\":[\"[Šþļîţ ~~]\"],\"viewer.theme.blueprint\":[\"[Ɓļûéþŕîñţ ~~~]\"],\"viewer.theme.mediterranean\":[\"[Ṁéðîţéŕŕáñéáñ ~~~~]\"],\"viewer.theme.night\":[\"[Ñîĝĥţ ~~]\"],\"viewer.theme.overcast\":[\"[Öṽéŕçášţ ~~~]\"],\"viewer.theme.paper\":[\"[Þáþéŕ ~~]\"],\"viewer.theme.studio\":[\"[Šţûðîö ~~]\"],\"viewer.theme.sunset\":[\"[Šûñšéţ ~~]\"],\"viewer.theme.title\":[\"[Šçéñé ţĥéɱé ~~~]\"],\"viewer.theme.twilight\":[\"[Ţŵîļîĝĥţ ~~~]\"],\"viewer.theme.verdant\":[\"[Ṽéŕðáñţ ~~~]\"],\"viewer.visibility.guides\":[\"[Ĝûîðéš ~~]\"],\"viewer.visibility.scans\":[\"[Šçáñš ~~]\"],\"viewer.visibility.title\":[\"[Ṽîšîƀîļîţý ~~~]\"],\"viewer.walkthrough.label\":[\"[Ŵáļķţĥŕöûĝĥ: \",[\"state\"],\" ~~~~]\"],\"viewer.walls.cutaway\":[\"[Çûţáŵáý ~~~]\"],\"viewer.walls.fullHeight\":[\"[Ƒûļļ ĥéîĝĥţ ~~~]\"],\"viewer.walls.label\":[\"[Ŵáļļš: \",[\"mode\"],\" ~~]\"],\"viewer.walls.low\":[\"[Ļöŵ ~]\"]}")as Messages;
\ No newline at end of file
diff --git a/packages/editor/src/i18n/locales/en/messages.po b/packages/editor/src/i18n/locales/en/messages.po
index 0d81f86606..3ca4c3a4de 100644
--- a/packages/editor/src/i18n/locales/en/messages.po
+++ b/packages/editor/src/i18n/locales/en/messages.po
@@ -991,10 +991,6 @@ msgstr "Window"
msgid "editor.actionMenu.structureTools.zone"
msgstr "Zone"
-#: packages/editor/src/components/ui/action-menu/view-toggles.tsx
-msgid "editor.actionMenu.viewToggles.below"
-msgstr "below"
-
#: packages/editor/src/components/ui/action-menu/view-toggles.tsx
msgid "editor.actionMenu.viewToggles.deleteGuideImage"
msgstr "Delete guide image"
@@ -1043,6 +1039,10 @@ msgstr "Hide reference floor"
msgid "editor.actionMenu.viewToggles.hideScans"
msgstr "Hide scans"
+#: packages/editor/src/components/ui/action-menu/view-toggles.tsx
+msgid "editor.actionMenu.viewToggles.levelsBelow"
+msgstr "{count} below"
+
#: packages/editor/src/components/ui/action-menu/view-toggles.tsx
msgid "editor.actionMenu.viewToggles.noLowerFloorAvailable"
msgstr "No lower floor available."
@@ -1279,6 +1279,18 @@ msgstr "Continuation: {label}"
msgid "editor.helpers.contextualHelperPanel.dragToDrawFence"
msgstr "Drag to draw fence"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+msgid "editor.helpers.contextualHelperPanel.eraseScope"
+msgstr "Erase: {scope}"
+
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+msgid "editor.helpers.contextualHelperPanel.eraseScopeClickOrPressShift"
+msgstr "Erase scope — click or press Shift to cycle"
+
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+msgid "editor.helpers.contextualHelperPanel.eraseScopeLabel"
+msgstr "Erase scope: {scope}"
+
#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
msgid "editor.helpers.contextualHelperPanel.fenceTypeClickOrPressT"
msgstr "Fence type — click or press T to switch between straight, curved and freehand"
@@ -1319,6 +1331,22 @@ msgstr "Hover a surface to pick its material"
msgid "editor.helpers.contextualHelperPanel.moreShortcuts"
msgstr "More shortcuts"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+msgid "editor.helpers.contextualHelperPanel.paintScope"
+msgstr "Paint: {scope}"
+
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+msgid "editor.helpers.contextualHelperPanel.paintScopeClickOrPressShift"
+msgstr "Paint scope — click or press Shift to cycle"
+
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+msgid "editor.helpers.contextualHelperPanel.paintScopeLabel"
+msgstr "Paint scope: {scope}"
+
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+msgid "editor.helpers.contextualHelperPanel.pickScope"
+msgstr "Pick: {scope}"
+
#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
msgid "editor.helpers.contextualHelperPanel.placeGateOnAFence"
msgstr "Place gate on a fence"
@@ -1367,10 +1395,6 @@ msgstr "Straight fence continuation — click or press C to toggle"
msgid "editor.helpers.contextualHelperPanel.straightSingle"
msgstr "Straight: Single"
-#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
-msgid "editor.helpers.contextualHelperPanel.verbScopeClickOrPressShift"
-msgstr "{verb} scope — click or press Shift to cycle"
-
#: packages/editor/src/components/ui/helpers/helper-manager.tsx
msgid "editor.helpers.helperManager.addPoint"
msgstr "Add point"
@@ -1736,711 +1760,711 @@ msgid "editor.theEditorSceneFailedToRender"
msgstr "The editor scene failed to render"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.aCurtainWallTakesNoCorner"
+msgid "editor.toolHint.aCurtainWallTakesNoCorner.1qxjv5i"
msgstr "A curtain wall takes no corner window"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.aCurvedWallTakesNoCorner"
+msgid "editor.toolHint.aCurvedWallTakesNoCorner.1vdnaw5"
msgstr "A curved wall takes no corner window"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.addACornerClickTheFirst"
+msgid "editor.toolHint.addACornerClickTheFirst.o4r67t"
msgstr "Add a corner · click the first to close"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.anotherOpeningIsInTheWay"
+msgid "editor.toolHint.anotherOpeningIsInTheWay.11l9dd0"
msgstr "Another opening is in the way at the corner"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.autoHangers"
+msgid "editor.toolHint.autoHangers.10554ka"
msgstr "Auto hangers"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.autoHangersClickOrPressH"
+msgid "editor.toolHint.autoHangersClickOrPressH.rwa3ka"
msgstr "Auto hangers - click or press H to toggle"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.autoHangersOff"
+msgid "editor.toolHint.autoHangersOff.7yx01x"
msgstr "Auto hangers: Off"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.autoHangersOn"
+msgid "editor.toolHint.autoHangersOn.10b1umh"
msgstr "Auto hangers: On"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.bypassSnapping"
+msgid "editor.toolHint.bypassSnapping.w5lmdv"
msgstr "Bypass snapping"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.cancel"
+msgid "editor.toolHint.cancel.ew9em3"
msgstr "Cancel"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.cancelMove"
+msgid "editor.toolHint.cancelMove.lvp31c"
msgstr "Cancel move"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.cancelRunExit"
+msgid "editor.toolHint.cancelRunExit.zqjf3h"
msgstr "Cancel run / exit"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.cancelStartPoint"
+msgid "editor.toolHint.cancelStartPoint.1xbq2lh"
msgstr "Cancel start point"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.cornerWindow"
+msgid "editor.toolHint.cornerWindow.1avkzpo"
msgstr "Corner window"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.cuts"
+msgid "editor.toolHint.cuts.1y0axps"
msgstr "Cuts"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.cutsValue"
+msgid "editor.toolHint.cutsValue.ouzhvb"
msgstr "Cuts: {value}"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.cutsValueEven"
+msgid "editor.toolHint.cutsValueEven.1ngsz3"
msgstr "Cuts: {value}, even"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.cycleMonoGableButterfly"
+msgid "editor.toolHint.cycleMonoGableButterfly.1poga3m"
msgstr "Cycle mono / gable / butterfly"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.cycleSnappingMode"
+msgid "editor.toolHint.cycleSnappingMode.1ct0gn6"
msgstr "Cycle snapping mode"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.doorStyleClickOrPressL"
+msgid "editor.toolHint.doorStyleClickOrPressL.33pe65"
msgstr "Door style — click or press L to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.doorTypeClickOrPressO"
+msgid "editor.toolHint.doorTypeClickOrPressO.1hhh8gt"
msgstr "Door type — click or press O to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.dropDownspoutFromOutlet"
+msgid "editor.toolHint.dropDownspoutFromOutlet.1k4h1m4"
msgstr "Drop downspout from outlet"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.ductDiameterDownUp"
+msgid "editor.toolHint.ductDiameterDownUp.1wdz5vq"
msgstr "Duct diameter down / up"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.endRunCancel"
+msgid "editor.toolHint.endRunCancel.59dh2w"
msgstr "End run / cancel"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.exit"
+msgid "editor.toolHint.exit.engmg5"
msgstr "Exit"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.exitDrawing"
+msgid "editor.toolHint.exitDrawing.9noxyb"
msgstr "Exit drawing"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.finishAndContinue"
+msgid "editor.toolHint.finishAndContinue.1gpfsks"
msgstr "Finish and continue"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.finishCeiling"
+msgid "editor.toolHint.finishCeiling.1c1lfel"
msgstr "Finish ceiling"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.finishGridAxis"
+msgid "editor.toolHint.finishGridAxis.1wvrfhr"
msgstr "Finish grid axis"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.finishMeasurement"
+msgid "editor.toolHint.finishMeasurement.1e4gv16"
msgstr "Finish measurement"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.finishMultiPointWitnesses"
+msgid "editor.toolHint.finishMultiPointWitnesses.8wzskz"
msgstr "Finish multi-point witnesses"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.finishSlab"
+msgid "editor.toolHint.finishSlab.xmnm8e"
msgstr "Finish slab"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.flipSide"
+msgid "editor.toolHint.flipSide.172xku9"
msgstr "Flip side"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.followTraceALineset"
+msgid "editor.toolHint.followTraceALineset.mgquwe"
msgstr "Follow: trace a lineset"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.forcePlace"
+msgid "editor.toolHint.forcePlace.1hq1nr"
msgstr "Force place"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.freePlacement"
+msgid "editor.toolHint.freePlacement.1nztdac"
msgstr "Free placement"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.goVerticalClickToPlace"
+msgid "editor.toolHint.goVerticalClickToPlace.dg8g6m"
msgstr "Go vertical ↕, click to place"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.highlightOutlet"
+msgid "editor.toolHint.highlightOutlet.65hoq8"
msgstr "Highlight outlet"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.joinAsACornerWindow"
+msgid "editor.toolHint.joinAsACornerWindow.jvdp4j"
msgstr "Join as a corner window"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.altDrag"
+msgid "editor.toolHint.key.altDrag.ai3wn9"
msgstr "Alt + drag"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.backspace"
+msgid "editor.toolHint.key.backspace.qy6qx8"
msgstr "Backspace"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.click"
+msgid "editor.toolHint.key.click.m8sun"
msgstr "Click"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.clickAgain"
+msgid "editor.toolHint.key.clickAgain.190ws9j"
msgstr "Click again"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.command"
+msgid "editor.toolHint.key.command.1j2mkia"
msgstr "Command"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.control"
+msgid "editor.toolHint.key.control.10fbl8e"
msgstr "Control"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.delete"
+msgid "editor.toolHint.key.delete.oay2cq"
msgstr "Delete"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.doubleClick"
+msgid "editor.toolHint.key.doubleClick.vlma6o"
msgstr "Double click"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.drag"
+msgid "editor.toolHint.key.drag.8pwtpf"
msgstr "Drag"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.enter"
+msgid "editor.toolHint.key.enter.1ctpui5"
msgstr "Enter"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.hover"
+msgid "editor.toolHint.key.hover.6xw79p"
msgstr "Hover"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.hoverADuctEnd"
+msgid "editor.toolHint.key.hoverADuctEnd.19axr3b"
msgstr "Hover a duct end"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.hoverAPipeEnd"
+msgid "editor.toolHint.key.hoverAPipeEnd.1jbum5f"
msgstr "Hover a pipe end"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.hoverGutter"
+msgid "editor.toolHint.key.hoverGutter.1dwcsno"
msgstr "Hover gutter"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.leftClick"
+msgid "editor.toolHint.key.leftClick.s4gwfc"
msgstr "Left click"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.middleClick"
+msgid "editor.toolHint.key.middleClick.1jbaan4"
msgstr "Middle click"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.rightClick"
+msgid "editor.toolHint.key.rightClick.1ovld0h"
msgstr "Right click"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.rShiftR"
+msgid "editor.toolHint.key.rShiftR.13bnobh"
msgstr "R / Shift+R"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.scroll"
+msgid "editor.toolHint.key.scroll.ai6wr0"
msgstr "Scroll"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.scrollWheel"
+msgid "editor.toolHint.key.scrollWheel.18j0ix7"
msgstr "Scroll wheel"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.space"
+msgid "editor.toolHint.key.space.1hrh82t"
msgstr "Space"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.key.tab"
+msgid "editor.toolHint.key.tab.1xsal0s"
msgstr "Tab"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.mountFloorCeilingWall"
+msgid "editor.toolHint.mountFloorCeilingWall.32dxpv"
msgstr "Mount: floor / ceiling / wall"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.noRoomForTheMatchingWindow"
+msgid "editor.toolHint.noRoomForTheMatchingWindow.1755948"
msgstr "No room for the matching window on the other wall"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.noWallMeetsHere"
+msgid "editor.toolHint.noWallMeetsHere.19n99yc"
msgstr "No wall meets here"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.numberOfCutsScrollOrClick"
+msgid "editor.toolHint.numberOfCutsScrollOrClick.1kqe84b"
msgstr "Number of cuts — scroll or click to change"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.pickWitnessPoint"
+msgid "editor.toolHint.pickWitnessPoint.k3hgh1"
msgstr "Pick witness point"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.pipeSizeDownUp"
+msgid "editor.toolHint.pipeSizeDownUp.wp04og"
msgstr "Pipe size down / up"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeAndContinue"
+msgid "editor.toolHint.placeAndContinue.qfwkrq"
msgstr "Place and continue"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeBlock"
+msgid "editor.toolHint.placeBlock.1aylwrx"
msgstr "Place block"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeBoxVentOnRoof"
+msgid "editor.toolHint.placeBoxVentOnRoof.kf88e5"
msgstr "Place box vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeCabinet"
+msgid "editor.toolHint.placeCabinet.b0ouyk"
msgstr "Place cabinet"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeCanopyOrSetTheNext"
+msgid "editor.toolHint.placeCanopyOrSetTheNext.12l7zf8"
msgstr "Place canopy or set the next run point"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeChimneyOnRoof"
+msgid "editor.toolHint.placeChimneyOnRoof.19dbqu"
msgstr "Place chimney on roof"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeColumn"
+msgid "editor.toolHint.placeColumn.1w2vq86"
msgstr "Place column"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeCupolaOnRoof"
+msgid "editor.toolHint.placeCupolaOnRoof.ofx3bn"
msgstr "Place cupola on roof"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeDimensionLineWhenNeeded"
+msgid "editor.toolHint.placeDimensionLineWhenNeeded.bjw2cj"
msgstr "Place dimension line when needed"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeDoorOnWall"
+msgid "editor.toolHint.placeDoorOnWall.1jwadf"
msgstr "Place door on wall"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeDormerOnRoof"
+msgid "editor.toolHint.placeDormerOnRoof.1w518a6"
msgstr "Place dormer on roof"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeElevator"
+msgid "editor.toolHint.placeElevator.1f65zva"
msgstr "Place elevator"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeEyebrowVentOnRoof"
+msgid "editor.toolHint.placeEyebrowVentOnRoof.1h1tqxn"
msgstr "Place eyebrow vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeFitting"
+msgid "editor.toolHint.placeFitting.1pmx3vn"
msgstr "Place fitting"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeGutterOnRoofEave"
+msgid "editor.toolHint.placeGutterOnRoofEave.llwzf9"
msgstr "Place gutter on roof eave"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeItem"
+msgid "editor.toolHint.placeItem.teynf"
msgstr "Place item"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeItLockedTo45"
+msgid "editor.toolHint.placeItLockedTo45.16e4csk"
msgstr "Place it (locked to 45°)"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeMeasurementPoint"
+msgid "editor.toolHint.placeMeasurementPoint.bsatli"
msgstr "Place measurement point"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placement"
+msgid "editor.toolHint.placement.13lcvts"
msgstr "Placement"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placementAuto"
+msgid "editor.toolHint.placementAuto.1caa52d"
msgstr "Placement: Auto"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placementGround"
+msgid "editor.toolHint.placementGround.1ruz145"
msgstr "Placement: Ground"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placementRoof"
+msgid "editor.toolHint.placementRoof.renkw8"
msgstr "Placement: Roof"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placementSurfaceClickOrPressP"
+msgid "editor.toolHint.placementSurfaceClickOrPressP.w56h19"
msgstr "Placement surface - click or press P to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placementType"
+msgid "editor.toolHint.placementType.1mdpl60"
msgstr "Placement type"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placementTypeClickOrPressI"
+msgid "editor.toolHint.placementTypeClickOrPressI.10cgxh2"
msgstr "Placement type — click or press I to toggle"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeOnAFence"
+msgid "editor.toolHint.placeOnAFence.1dptstr"
msgstr "Place on a fence"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeRegister"
+msgid "editor.toolHint.placeRegister.1uebycd"
msgstr "Place register"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeRidgeVentOnRoof"
+msgid "editor.toolHint.placeRidgeVentOnRoof.2tpd8r"
msgstr "Place ridge vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeShelf"
+msgid "editor.toolHint.placeShelf.y4l3iw"
msgstr "Place shelf"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeSkylightOnRoof"
+msgid "editor.toolHint.placeSkylightOnRoof.e215pe"
msgstr "Place skylight on roof"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeSolarPanelArrayOnRoof"
+msgid "editor.toolHint.placeSolarPanelArrayOnRoof.kk11fn"
msgstr "Place solar panel array on roof"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeSpawnPoint"
+msgid "editor.toolHint.placeSpawnPoint.205o25"
msgstr "Place spawn point"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeStairs"
+msgid "editor.toolHint.placeStairs.zwxxu2"
msgstr "Place stairs"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeTrap"
+msgid "editor.toolHint.placeTrap.1gxemn3"
msgstr "Place trap"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeTurbineVentOnRoof"
+msgid "editor.toolHint.placeTurbineVentOnRoof.1iqeluf"
msgstr "Place turbine vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeUnit"
+msgid "editor.toolHint.placeUnit.8zkx4q"
msgstr "Place unit"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeWindowOnWall"
+msgid "editor.toolHint.placeWindowOnWall.1k3qnfb"
msgstr "Place window on wall"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.placeWithoutTheCornerSnap"
+msgid "editor.toolHint.placeWithoutTheCornerSnap.1nifqew"
msgstr "Place without the corner snap"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.removeLastPoint"
+msgid "editor.toolHint.removeLastPoint.2dmdcx"
msgstr "Remove last point"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.removeLastWitness"
+msgid "editor.toolHint.removeLastWitness.1b6vvzw"
msgstr "Remove last witness"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.rotate"
+msgid "editor.toolHint.rotate.1thqa0a"
msgstr "Rotate"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.rotate45"
+msgid "editor.toolHint.rotate45.9zq68u"
msgstr "Rotate ±45°"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.rotate45FloorCeiling"
+msgid "editor.toolHint.rotate45FloorCeiling.m9t57d"
msgstr "Rotate ±45° (floor / ceiling)"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.rotateGhost15"
+msgid "editor.toolHint.rotateGhost15.rsa52c"
msgstr "Rotate ghost ±15°"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.rotateOrFlipTheRunSide"
+msgid "editor.toolHint.rotateOrFlipTheRunSide.t5ior7"
msgstr "Rotate or flip the run side"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.rotateRoofDirection90"
+msgid "editor.toolHint.rotateRoofDirection90.tvbji2"
msgstr "Rotate roof direction 90°"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.rotateSpawnPoint"
+msgid "editor.toolHint.rotateSpawnPoint.1opcuu7"
msgstr "Rotate spawn point"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.roundRectangularOval"
+msgid "editor.toolHint.roundRectangularOval.e4nh6x"
msgstr "Round / rectangular / oval"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.setFenceStartEnd"
+msgid "editor.toolHint.setFenceStartEnd.1phbwsq"
msgstr "Set fence start / end"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.setOneCornerThenTheOpposite"
+msgid "editor.toolHint.setOneCornerThenTheOpposite.8tsl49"
msgstr "Set one corner, then the opposite"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.setRoofFootprint"
+msgid "editor.toolHint.setRoofFootprint.p50n0o"
msgstr "Set roof footprint"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.setWallStartEnd"
+msgid "editor.toolHint.setWallStartEnd.1r8ubcx"
msgstr "Set wall start / end"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.slopeLevel"
+msgid "editor.toolHint.slopeLevel.ftqp67"
msgstr "Slope / level"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.snapOntoTheRun"
+msgid "editor.toolHint.snapOntoTheRun.86yhmp"
msgstr "Snap onto the run"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.splitAtTheMarks"
+msgid "editor.toolHint.splitAtTheMarks.x5tpdd"
msgstr "Split at the marks"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.startGridAxis"
+msgid "editor.toolHint.startGridAxis.k92yza"
msgstr "Start grid axis"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.startLineset"
+msgid "editor.toolHint.startLineset.23q8dh"
msgstr "Start lineset"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.startLiquidLine"
+msgid "editor.toolHint.startLiquidLine.1rlxsgd"
msgstr "Start liquid line"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.startRun"
+msgid "editor.toolHint.startRun.r6fc5u"
msgstr "Start run"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.startSegment"
+msgid "editor.toolHint.startSegment.rolym6"
msgstr "Start segment"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.stepBackOrCancel"
+msgid "editor.toolHint.stepBackOrCancel.zbfdkn"
msgstr "Step back or cancel"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.style"
+msgid "editor.toolHint.style.nf3vcm"
msgstr "Style"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleBarn"
+msgid "editor.toolHint.styleBarn.k9n1x"
msgstr "Style: Barn"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleCasement"
+msgid "editor.toolHint.styleCasement.ziklec"
msgstr "Style: Casement"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleCraftsman"
+msgid "editor.toolHint.styleCraftsman.52e6a9"
msgstr "Style: Craftsman"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleDoubleHung"
+msgid "editor.toolHint.styleDoubleHung.1lg8pkg"
msgstr "Style: Double-hung"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleFrench"
+msgid "editor.toolHint.styleFrench.1ue3j64"
msgstr "Style: French"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleGlass"
+msgid "editor.toolHint.styleGlass.qudnb4"
msgstr "Style: Glass"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleGrid"
+msgid "editor.toolHint.styleGrid.1vuq4po"
msgstr "Style: Grid"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleHalfLouvered"
+msgid "editor.toolHint.styleHalfLouvered.13b1few"
msgstr "Style: Half-louvered"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleHorizontalBands"
+msgid "editor.toolHint.styleHorizontalBands.12ethxk"
msgstr "Style: Horizontal bands"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleModern"
+msgid "editor.toolHint.styleModern.1fh8hhn"
msgstr "Style: Modern"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.stylePanel"
+msgid "editor.toolHint.stylePanel.922jze"
msgstr "Style: Panel"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.stylePaneledGlass"
+msgid "editor.toolHint.stylePaneledGlass.17a17en"
msgstr "Style: Paneled glass"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleShaker"
+msgid "editor.toolHint.styleShaker.49z17k"
msgstr "Style: Shaker"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleSingle"
+msgid "editor.toolHint.styleSingle.6f3cm0"
msgstr "Style: Single"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleSixPanel"
+msgid "editor.toolHint.styleSixPanel.u49laj"
msgstr "Style: Six-panel"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleSliding"
+msgid "editor.toolHint.styleSliding.q81s0i"
msgstr "Style: Sliding"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleTallGrid"
+msgid "editor.toolHint.styleTallGrid.1eotg3x"
msgstr "Style: Tall grid"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleTransom"
+msgid "editor.toolHint.styleTransom.kb9bh6"
msgstr "Style: Transom"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleTripleHung"
+msgid "editor.toolHint.styleTripleHung.pxnqi3"
msgstr "Style: Triple-hung"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.styleWideGrid"
+msgid "editor.toolHint.styleWideGrid.12n27et"
msgstr "Style: Wide grid"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.switchRotationAxisYXZ"
+msgid "editor.toolHint.switchRotationAxisYXZ.15lohm6"
msgstr "Switch rotation axis (Y → X → Z)"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.theWallsMeetAtTooSharp"
+msgid "editor.toolHint.theWallsMeetAtTooSharp.kh3wi3"
msgstr "The walls meet at too sharp or too flat an angle"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.theWindowWaitingThereIsTaller"
+msgid "editor.toolHint.theWindowWaitingThereIsTaller.1tqwez4"
msgstr "The window waiting there is taller than this wall"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.threeOrMoreWallsMeetHere"
+msgid "editor.toolHint.threeOrMoreWallsMeetHere.rgifif"
msgstr "Three or more walls meet here"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.traceCeilingOutline"
+msgid "editor.toolHint.traceCeilingOutline.1b639wv"
msgstr "Trace ceiling outline"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.traceSlabOutline"
+msgid "editor.toolHint.traceSlabOutline.z0j2lc"
msgstr "Trace slab outline"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.type"
+msgid "editor.toolHint.type.1m2zofh"
msgstr "Type"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeAwning"
+msgid "editor.toolHint.typeAwning.1cj59al"
msgstr "Type: Awning"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeBarn"
+msgid "editor.toolHint.typeBarn.sbnygq"
msgstr "Type: Barn"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeBay"
+msgid "editor.toolHint.typeBay.1200hc1"
msgstr "Type: Bay"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeBow"
+msgid "editor.toolHint.typeBow.14s2t9p"
msgstr "Type: Bow"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeCabinet"
+msgid "editor.toolHint.typeCabinet.1r68je5"
msgstr "Type: Cabinet"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeCasement"
+msgid "editor.toolHint.typeCasement.176uo9j"
msgstr "Type: Casement"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeDouble"
+msgid "editor.toolHint.typeDouble.af7w4i"
msgstr "Type: Double"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeDoubleHung"
+msgid "editor.toolHint.typeDoubleHung.t482fu"
msgstr "Type: Double Hung"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeFixed"
+msgid "editor.toolHint.typeFixed.v1cjez"
msgstr "Type: Fixed"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeFolding"
+msgid "editor.toolHint.typeFolding.sxxyng"
msgstr "Type: Folding"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeFrench"
+msgid "editor.toolHint.typeFrench.1y57z1b"
msgstr "Type: French"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeHinged"
+msgid "editor.toolHint.typeHinged.1xrcfju"
msgstr "Type: Hinged"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeIsland"
+msgid "editor.toolHint.typeIsland.ufr3ce"
msgstr "Type: Island"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeLouvered"
+msgid "editor.toolHint.typeLouvered.oxl1cz"
msgstr "Type: Louvered"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typePocket"
+msgid "editor.toolHint.typePocket.hc65x9"
msgstr "Type: Pocket"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeSingleHung"
+msgid "editor.toolHint.typeSingleHung.p53pyl"
msgstr "Type: Single Hung"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.typeSliding"
+msgid "editor.toolHint.typeSliding.nwmr3f"
msgstr "Type: Sliding"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.verticalStackClickToPlace"
+msgid "editor.toolHint.verticalStackClickToPlace.ijcn4q"
msgstr "Vertical stack ↕, click to place"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.wasteVent"
+msgid "editor.toolHint.wasteVent.1hvi3vj"
msgstr "Waste / vent"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.windowStyleClickOrPressL"
+msgid "editor.toolHint.windowStyleClickOrPressL.ah7qm9"
msgstr "Window style — click or press L to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
-msgid "editor.toolHint.windowTypeClickOrPressO"
+msgid "editor.toolHint.windowTypeClickOrPressO.wv4x35"
msgstr "Window type — click or press O to cycle"
#: packages/editor/src/components/editor/views/view-bar.tsx
diff --git a/packages/editor/src/i18n/locales/en/messages.ts b/packages/editor/src/i18n/locales/en/messages.ts
index f6590438d1..7bb6c459d0 100644
--- a/packages/editor/src/i18n/locales/en/messages.ts
+++ b/packages/editor/src/i18n/locales/en/messages.ts
@@ -1 +1 @@
-/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"app.appShell.pascalHome\":[\"Pascal home\"],\"app.buildTab.addGate\":[\"Add Gate\"],\"app.buildTab.addOpenPassage\":[\"Add Open Passage\"],\"app.buildTab.addToRooms\":[\"Add to rooms\"],\"app.buildTab.allBuildTools\":[\"← All build tools\"],\"app.buildTab.chooseGateOrOpenPassageThen\":[\"Choose Gate or Open Passage, then click its position on any fence. Find placed gates and openings under their fence in the scene graph.\"],\"app.buildTab.clickALinesetToLayThe\":[\"Click a lineset to lay the line beside it.\"],\"app.buildTab.doubleGate\":[\"Double gate\"],\"app.buildTab.featuresExtensions\":[\"Features & extensions\"],\"app.buildTab.fenceFeatures\":[\"Fence features\"],\"app.buildTab.followLineset\":[\"Follow lineset\"],\"app.buildTab.gate\":[\"Gate\"],\"app.buildTab.gateStyle\":[\"Gate style\"],\"app.buildTab.horizontalBoards\":[\"Horizontal boards\"],\"app.buildTab.hoverAFenceToPreviewClick\":[\"Hover a fence to preview. Click to place. Esc cancels. Leave room between openings.\"],\"app.buildTab.leaves\":[\"Leaves\"],\"app.buildTab.liquidLine\":[\"Liquid Line\"],\"app.buildTab.matchFenceStyle\":[\"Match fence style\"],\"app.buildTab.mep\":[\"MEP\"],\"app.buildTab.off\":[\"Off\"],\"app.buildTab.on\":[\"On\"],\"app.buildTab.openRails\":[\"Open rails\"],\"app.buildTab.opening\":[\"Opening\"],\"app.buildTab.openingWidthM\":[\"Opening width (m)\"],\"app.buildTab.outdoor\":[\"Outdoor\"],\"app.buildTab.picket\":[\"Picket\"],\"app.buildTab.roofType\":[\"Roof type\"],\"app.buildTab.roomsAlreadyCreateTheirFloorAnd\":[\"Rooms already create their floor and ceiling. Use these for platforms and one-off structure.\"],\"app.buildTab.searchBuildToolsAndKitchenItems\":[\"Search build tools and kitchen items\"],\"app.buildTab.searchToolsFridgeSink\":[\"Search tools, fridge, sink…\"],\"app.buildTab.selectACurvedWallToMatch\":[\"Select a curved wall to match its radius and arc.\"],\"app.buildTab.singleGate\":[\"Single gate\"],\"app.buildTab.slabCeilingColumn\":[\"Slab, ceiling, column…\"],\"app.buildTab.solidPrivacy\":[\"Solid privacy\"],\"app.buildTab.traceALineAlongsideAnExisting\":[\"Trace a line alongside an existing lineset (F).\"],\"app.buildTab.verticalSlats\":[\"Vertical slats\"],\"app.editorNavbar.allProjects\":[\"All projects\"],\"app.editorNavbar.preview\":[\"Preview\"],\"app.editorNavbar.projectName\":[\"Project name\"],\"app.editorNavbar.renameProject\":[\"Rename project\"],\"app.editorNavbar.share\":[\"Share\"],\"app.kitchenBrowser.addLabel\":[\"Add \",[\"label\"]],\"app.kitchenBrowser.addToKitchen\":[\"Add to kitchen\"],\"app.kitchenBrowser.chooseAnItemThenClickTo\":[\"Choose an item, then click to place it. Appliances include their cabinetry.\"],\"app.kitchenBrowser.findInThisProjectLength\":[\"Find in this project · \",[\"length\"]],\"app.kitchenBrowser.findName\":[\"Find \",[\"name\"]],\"app.kitchenBrowser.groupAdd\":[\"Kitchen · Add\"],\"app.kitchenBrowser.groupInThisProject\":[\"Kitchen · In this project\"],\"app.kitchenBrowser.kitchenCabinet\":[\"Kitchen cabinet\"],\"app.kitchenBrowser.noMatchingKitchenItemsPlacedYet\":[\"No matching kitchen items placed yet.\"],\"app.kitchenBrowser.selectAndShowInScene\":[\"Select and show in scene\"],\"app.lib.buildPalette.ceiling\":[\"Ceiling\"],\"app.lib.buildPalette.column\":[\"Column\"],\"app.lib.buildPalette.door\":[\"Door\"],\"app.lib.buildPalette.duct\":[\"Duct\"],\"app.lib.buildPalette.dwvPipe\":[\"DWV Pipe\"],\"app.lib.buildPalette.elevator\":[\"Elevator\"],\"app.lib.buildPalette.fence\":[\"Fence\"],\"app.lib.buildPalette.hvacUnit\":[\"HVAC Unit\"],\"app.lib.buildPalette.kitchen\":[\"Kitchen\"],\"app.lib.buildPalette.lineset\":[\"Lineset\"],\"app.lib.buildPalette.liquidLine\":[\"Liquid Line\"],\"app.lib.buildPalette.mep\":[\"MEP\"],\"app.lib.buildPalette.register\":[\"Register\"],\"app.lib.buildPalette.roof\":[\"Roof\"],\"app.lib.buildPalette.shelf\":[\"Shelf\"],\"app.lib.buildPalette.slab\":[\"Slab\"],\"app.lib.buildPalette.spawnPoint\":[\"Spawn point\"],\"app.lib.buildPalette.stairs\":[\"Stairs\"],\"app.lib.buildPalette.terrace\":[\"Terrace\"],\"app.lib.buildPalette.terrain\":[\"Terrain\"],\"app.lib.buildPalette.wall\":[\"Wall\"],\"app.lib.buildPalette.window\":[\"Window\"],\"app.lib.buildPanelModel.addFitting\":[\"Add Fitting\"],\"app.lib.buildPanelModel.addGate\":[\"Add Gate\"],\"app.lib.buildPanelModel.addOpenPassage\":[\"Add Open Passage\"],\"app.lib.buildPanelModel.addTrap\":[\"Add Trap\"],\"app.lib.buildPanelModel.build\":[\"Build\"],\"app.lib.buildPanelModel.createFrom\":[\"Create from\"],\"app.lib.buildPanelModel.drawTheRoofFootprintWithTwo\":[\"Draw the roof footprint with two corner clicks.\"],\"app.lib.buildPanelModel.duct\":[\"Duct\"],\"app.lib.buildPanelModel.dwvPipe\":[\"DWV Pipe\"],\"app.lib.buildPanelModel.featuresExtensions\":[\"Features & extensions\"],\"app.lib.buildPanelModel.fence\":[\"Fence\"],\"app.lib.buildPanelModel.followLineset\":[\"Follow lineset\"],\"app.lib.buildPanelModel.gatesOpenings\":[\"Gates & openings\"],\"app.lib.buildPanelModel.hoverARoomToPreviewIts\":[\"Hover a room to preview its boundary, then click to place.\"],\"app.lib.buildPanelModel.kitchen\":[\"Kitchen\"],\"app.lib.buildPanelModel.mep\":[\"MEP\"],\"app.lib.buildPanelModel.modularCabinet\":[\"Modular Cabinet\"],\"app.lib.buildPanelModel.off\":[\"Off\"],\"app.lib.buildPanelModel.on\":[\"On\"],\"app.lib.buildPanelModel.painting\":[\"Painting\"],\"app.lib.buildPanelModel.roof\":[\"Roof\"],\"app.lib.buildPanelModel.roofType\":[\"Roof type\"],\"app.lib.buildPanelModel.toolCount\":[[\"count\",\"plural\",{\"one\":[\"#\",\" tool\"],\"other\":[\"#\",\" tools\"]}]],\"app.lib.buildTabState.conical\":[\"Conical\"],\"app.lib.buildTabState.draw\":[\"Draw\"],\"app.lib.buildTabState.dutch\":[\"Dutch\"],\"app.lib.buildTabState.flat\":[\"Flat\"],\"app.lib.buildTabState.gable\":[\"Gable\"],\"app.lib.buildTabState.gambrel\":[\"Gambrel\"],\"app.lib.buildTabState.hip\":[\"Hip\"],\"app.lib.buildTabState.mansard\":[\"Mansard\"],\"app.lib.buildTabState.room\":[\"Room\"],\"app.lib.buildTabState.shed\":[\"Shed\"],\"app.lib.buildTabState.wall\":[\"Wall\"],\"app.sharePanel.anyoneWithTheLinkCanView\":[\"Anyone with the link can view this project. They cannot edit it.\"],\"app.sharePanel.copied\":[\"Copied\"],\"app.sharePanel.copy\":[\"Copy\"],\"app.sharePanel.couldNotReadTheSharingState\":[\"Could not read the sharing state.\"],\"app.sharePanel.couldNotTurnOffThePublic\":[\"Could not turn off the public link.\"],\"app.sharePanel.couldNotTurnOnThePublic\":[\"Could not turn on the public link.\"],\"app.sharePanel.embedCode\":[\"Embed code\"],\"app.sharePanel.embedLink\":[\"Embed link\"],\"app.sharePanel.hideControls\":[\"Hide controls\"],\"app.sharePanel.link\":[\"Link\"],\"app.sharePanel.onlyThe3dViewNoHeader\":[\"Only the 3D view, no header or toolbar.\"],\"app.sharePanel.open\":[\"Open\"],\"app.sharePanel.publicLink\":[\"Public link\"],\"app.sharePanel.shareProject\":[\"Share project\"],\"app.viewerToolbar.automaticDimensions\":[\"Automatic dimensions\"],\"app.viewerToolbar.camera\":[\"Camera\"],\"app.viewerToolbar.cleanPlanDimensionsAppearWithSelection\":[\"Clean plan; dimensions appear with selection\"],\"app.viewerToolbar.collapseSidebar\":[\"Collapse sidebar\"],\"app.viewerToolbar.crispOpaqueEdgeLines\":[\"Crisp, opaque edge lines\"],\"app.viewerToolbar.cutaway\":[\"Cutaway\"],\"app.viewerToolbar.default\":[\"Default\"],\"app.viewerToolbar.display\":[\"Display\"],\"app.viewerToolbar.displaySettings\":[\"Display settings\"],\"app.viewerToolbar.doorWindowMarks\":[\"Door/window marks\"],\"app.viewerToolbar.edges\":[\"Edges\"],\"app.viewerToolbar.enterVr\":[\"Enter VR\"],\"app.viewerToolbar.exitVr\":[\"Exit VR\"],\"app.viewerToolbar.expandSidebar\":[\"Expand sidebar\"],\"app.viewerToolbar.expert\":[\"Expert\"],\"app.viewerToolbar.exploded\":[\"Exploded\"],\"app.viewerToolbar.faceOfStud\":[\"Face of stud\"],\"app.viewerToolbar.faintOutlineOfMajorCreases\":[\"Faint outline of major creases\"],\"app.viewerToolbar.feetInches\":[\"Feet & inches\"],\"app.viewerToolbar.finishedFaces\":[\"Finished faces\"],\"app.viewerToolbar.flatAndFastNoAmbientOcclusion\":[\"Flat and fast — no ambient occlusion\"],\"app.viewerToolbar.floorPlanAnnotations\":[\"Floor plan annotations\"],\"app.viewerToolbar.floorPlanMode\":[\"Floor plan mode\"],\"app.viewerToolbar.fullAmbientOcclusion\":[\"Full ambient occlusion\"],\"app.viewerToolbar.fullDocumentationAndAnnotationControls\":[\"Full documentation and annotation controls\"],\"app.viewerToolbar.fullHeight\":[\"Full height\"],\"app.viewerToolbar.fullWallThickness\":[\"Full wall thickness\"],\"app.viewerToolbar.grid\":[\"Grid\"],\"app.viewerToolbar.levelsMode\":[\"Levels: \",[\"mode\"]],\"app.viewerToolbar.low\":[\"Low\"],\"app.viewerToolbar.magneticSnap\":[\"Magnetic snap\"],\"app.viewerToolbar.manual\":[\"Manual\"],\"app.viewerToolbar.manualDimensions\":[\"Manual dimensions\"],\"app.viewerToolbar.measurements\":[\"Measurements\"],\"app.viewerToolbar.meters\":[\"Meters\"],\"app.viewerToolbar.millimeters\":[\"Millimeters\"],\"app.viewerToolbar.n3dMeasurements\":[\"3D measurements\"],\"app.viewerToolbar.noEdgeLines\":[\"No edge lines\"],\"app.viewerToolbar.off\":[\"Off\"],\"app.viewerToolbar.on\":[\"On\"],\"app.viewerToolbar.orthographic\":[\"Orthographic\"],\"app.viewerToolbar.perspective\":[\"Perspective\"],\"app.viewerToolbar.preview\":[\"Preview\"],\"app.viewerToolbar.previewMode\":[\"Preview mode\"],\"app.viewerToolbar.render\":[\"Render\"],\"app.viewerToolbar.rendered\":[\"Rendered\"],\"app.viewerToolbar.roomLabels\":[\"Room labels\"],\"app.viewerToolbar.sceneTheme\":[\"Scene theme\"],\"app.viewerToolbar.shadows\":[\"Shadows\"],\"app.viewerToolbar.singleWallAxis\":[\"Single wall axis\"],\"app.viewerToolbar.soft\":[\"Soft\"],\"app.viewerToolbar.solid\":[\"Solid\"],\"app.viewerToolbar.solo\":[\"Solo\"],\"app.viewerToolbar.stack\":[\"Stack\"],\"app.viewerToolbar.stairAnnotations\":[\"Stair annotations\"],\"app.viewerToolbar.strong\":[\"Strong\"],\"app.viewerToolbar.structuralCoreFace\":[\"Structural core face\"],\"app.viewerToolbar.structuralGridsColumnCenters\":[\"Structural grids & column centers\"],\"app.viewerToolbar.translucent\":[\"Translucent\"],\"app.viewerToolbar.units\":[\"Units\"],\"app.viewerToolbar.walkthrough\":[\"Walkthrough\"],\"app.viewerToolbar.wallCenterline\":[\"Wall centerline\"],\"app.viewerToolbar.wallDimensions\":[\"Wall dimensions\"],\"app.viewerToolbar.wallsLabel\":[\"Walls: \",[\"label\"]],\"core.level.basement\":[\"Basement\"],\"core.level.basementNumber\":[\"Basement \",[\"number\"]],\"core.level.floorNumber\":[\"Floor \",[\"number\"]],\"core.level.groundFloor\":[\"Ground floor\"],\"editor.actionMenu.cameraActions.orbitLeft\":[\"Orbit Left\"],\"editor.actionMenu.cameraActions.orbitRight\":[\"Orbit Right\"],\"editor.actionMenu.cameraActions.topView\":[\"Top View\"],\"editor.actionMenu.controlModes.delete\":[\"Delete\"],\"editor.actionMenu.controlModes.select\":[\"Select\"],\"editor.actionMenu.followPascalPill.resumeFollowing\":[\"Resume following\"],\"editor.actionMenu.followPascalToggle.off\":[\"Follow Pascal: Off\"],\"editor.actionMenu.followPascalToggle.on\":[\"Follow Pascal: On\"],\"editor.actionMenu.furnishTools.appliance\":[\"Appliance\"],\"editor.actionMenu.furnishTools.bathroom\":[\"Bathroom\"],\"editor.actionMenu.furnishTools.furniture\":[\"Furniture\"],\"editor.actionMenu.furnishTools.kitchen\":[\"Kitchen\"],\"editor.actionMenu.furnishTools.outdoor\":[\"Outdoor\"],\"editor.actionMenu.measurementControl.angle\":[\"Angle\"],\"editor.actionMenu.measurementControl.angularDimension\":[\"Angular dimension\"],\"editor.actionMenu.measurementControl.arcLength\":[\"Arc length\"],\"editor.actionMenu.measurementControl.area\":[\"Area\"],\"editor.actionMenu.measurementControl.centerMark\":[\"Center mark\"],\"editor.actionMenu.measurementControl.chordDimension\":[\"Chord dimension\"],\"editor.actionMenu.measurementControl.continuousDimension\":[\"Continuous dimension\"],\"editor.actionMenu.measurementControl.coordinateDimensions\":[\"Coordinate dimensions\"],\"editor.actionMenu.measurementControl.diameterDimension\":[\"Diameter dimension\"],\"editor.actionMenu.measurementControl.distance\":[\"Distance\"],\"editor.actionMenu.measurementControl.floorPlan\":[\"Floor plan\"],\"editor.actionMenu.measurementControl.linearDimension\":[\"Linear dimension\"],\"editor.actionMenu.measurementControl.measureSelectedlabel\":[\"Measure: \",[\"selectedLabel\"]],\"editor.actionMenu.measurementControl.measurementOptions\":[\"Measurement options\"],\"editor.actionMenu.measurementControl.measurementType\":[\"Measurement type\"],\"editor.actionMenu.measurementControl.perimeter\":[\"Perimeter\"],\"editor.actionMenu.measurementControl.radiusDimension\":[\"Radius dimension\"],\"editor.actionMenu.measurementControl.smart\":[\"Smart\"],\"editor.actionMenu.measurementControl.volume\":[\"Volume\"],\"editor.actionMenu.pointAskButton.pointAndAsk\":[\"Point and ask\"],\"editor.actionMenu.pointAskButton.pointAndAskC\":[\"Point and ask (C)\"],\"editor.actionMenu.pointAskButton.pointAndAskWorksInThe\":[\"Point and ask works in the 3D view\"],\"editor.actionMenu.structureTools.ceiling\":[\"Ceiling\"],\"editor.actionMenu.structureTools.column\":[\"Column\"],\"editor.actionMenu.structureTools.door\":[\"Door\"],\"editor.actionMenu.structureTools.duct\":[\"Duct\"],\"editor.actionMenu.structureTools.ductFitting\":[\"Duct Fitting\"],\"editor.actionMenu.structureTools.dwvPipe\":[\"DWV Pipe\"],\"editor.actionMenu.structureTools.elevator\":[\"Elevator\"],\"editor.actionMenu.structureTools.fence\":[\"Fence\"],\"editor.actionMenu.structureTools.gableRoof\":[\"Gable Roof\"],\"editor.actionMenu.structureTools.hvacUnit\":[\"HVAC Unit\"],\"editor.actionMenu.structureTools.lineset\":[\"Lineset\"],\"editor.actionMenu.structureTools.liquidLine\":[\"Liquid Line\"],\"editor.actionMenu.structureTools.pipeFitting\":[\"Pipe Fitting\"],\"editor.actionMenu.structureTools.register\":[\"Register\"],\"editor.actionMenu.structureTools.shelf\":[\"Shelf\"],\"editor.actionMenu.structureTools.slab\":[\"Slab\"],\"editor.actionMenu.structureTools.spawnPoint\":[\"Spawn Point\"],\"editor.actionMenu.structureTools.stairs\":[\"Stairs\"],\"editor.actionMenu.structureTools.trap\":[\"Trap\"],\"editor.actionMenu.structureTools.wall\":[\"Wall\"],\"editor.actionMenu.structureTools.window\":[\"Window\"],\"editor.actionMenu.structureTools.zone\":[\"Zone\"],\"editor.actionMenu.viewToggles.below\":[\"below\"],\"editor.actionMenu.viewToggles.deleteGuideImage\":[\"Delete guide image\"],\"editor.actionMenu.viewToggles.deleteScan\":[\"Delete scan\"],\"editor.actionMenu.viewToggles.guideCount\":[[\"count\",\"plural\",{\"one\":[\"#\",\" guide image on this level\"],\"other\":[\"#\",\" guide images on this level\"]}]],\"editor.actionMenu.viewToggles.guideImageNumber\":[\"Guide image \",[\"number\"]],\"editor.actionMenu.viewToggles.guideImageSettings\":[\"Guide image settings\"],\"editor.actionMenu.viewToggles.guideImages\":[\"Guide images\"],\"editor.actionMenu.viewToggles.guides\":[\"Guides\"],\"editor.actionMenu.viewToggles.guidesHidden\":[\"Guides: Hidden\"],\"editor.actionMenu.viewToggles.guidesVisible\":[\"Guides: Visible\"],\"editor.actionMenu.viewToggles.hideGuideImages\":[\"Hide guide images\"],\"editor.actionMenu.viewToggles.hideReferenceFloor\":[\"Hide reference floor\"],\"editor.actionMenu.viewToggles.hideScans\":[\"Hide scans\"],\"editor.actionMenu.viewToggles.noLowerFloorAvailable\":[\"No lower floor available.\"],\"editor.actionMenu.viewToggles.opacity\":[\"Opacity\"],\"editor.actionMenu.viewToggles.referenceFloor\":[\"Reference floor\"],\"editor.actionMenu.viewToggles.referenceFloorSelectedlevelname\":[\"Reference floor: \",[\"selectedLevelName\"]],\"editor.actionMenu.viewToggles.referenceFloorSettings\":[\"Reference floor settings\"],\"editor.actionMenu.viewToggles.referenceSettings\":[\"Reference settings\"],\"editor.actionMenu.viewToggles.references\":[\"References\"],\"editor.actionMenu.viewToggles.referencesEmpty\":[\"Upload GLB meshes as scan references or blueprint images as guide references.\"],\"editor.actionMenu.viewToggles.referencesHidden\":[\"References: Hidden\"],\"editor.actionMenu.viewToggles.referencesVisible\":[\"References: Visible\"],\"editor.actionMenu.viewToggles.riserDiagram\":[\"Riser diagram\"],\"editor.actionMenu.viewToggles.scanCount\":[[\"count\",\"plural\",{\"one\":[\"#\",\" scan on this level\"],\"other\":[\"#\",\" scans on this level\"]}]],\"editor.actionMenu.viewToggles.scanNumber\":[\"Scan \",[\"number\"]],\"editor.actionMenu.viewToggles.scanSettings\":[\"Scan settings\"],\"editor.actionMenu.viewToggles.scans\":[\"Scans\"],\"editor.actionMenu.viewToggles.scansHidden\":[\"Scans: Hidden\"],\"editor.actionMenu.viewToggles.scansVisible\":[\"Scans: Visible\"],\"editor.actionMenu.viewToggles.showGuideImages\":[\"Show guide images\"],\"editor.actionMenu.viewToggles.showReferenceFloor\":[\"Show reference floor\"],\"editor.actionMenu.viewToggles.showScans\":[\"Show scans\"],\"editor.actionMenu.viewToggles.uploadScanOrGuideImage\":[\"Upload scan or guide image\"],\"editor.backToHome\":[\"Back to home\"],\"editor.buildPanel.advanced\":[\"Advanced\"],\"editor.buildPanel.rooms.hint\":[\"walls · floor · ceiling\"],\"editor.buildPanel.rooms.idle\":[\"Pick a shape to start. Every room brings its own walls, floor and ceiling.\"],\"editor.buildPanel.rooms.polygon.caption\":[[\"lead\"],\" then the first one again to close. For L-shapes and angled rooms.\"],\"editor.buildPanel.rooms.polygon.label\":[\"Polygon\"],\"editor.buildPanel.rooms.polygon.lead\":[\"Click each corner,\"],\"editor.buildPanel.rooms.polygon.title\":[\"Polygon room\"],\"editor.buildPanel.rooms.rectangle.caption\":[[\"lead\"],\" on the grid. Walls, floor and ceiling are created together.\"],\"editor.buildPanel.rooms.rectangle.label\":[\"Rectangle\"],\"editor.buildPanel.rooms.rectangle.lead\":[\"Click two corners\"],\"editor.buildPanel.rooms.rectangle.title\":[\"Rectangle room\"],\"editor.buildPanel.rooms.title\":[\"Rooms\"],\"editor.buildPanel.rooms.walls.caption\":[[\"lead\"],\" Close a loop and it becomes a room; leave it open for partitions.\"],\"editor.buildPanel.rooms.walls.label\":[\"Walls\"],\"editor.buildPanel.rooms.walls.lead\":[\"Draw one wall at a time.\"],\"editor.buildPanel.rooms.walls.title\":[\"Walls\"],\"editor.cameraControlsHint\":[\"Camera controls hint\"],\"editor.cameraHint.pan\":[\"Pan\"],\"editor.cameraHint.rotate\":[\"Rotate\"],\"editor.cameraHint.zoom\":[\"Zoom\"],\"editor.dismiss\":[\"Dismiss\"],\"editor.dismissCameraControlsHint\":[\"Dismiss camera controls hint\"],\"editor.expandSidebar\":[\"Expand sidebar\"],\"editor.floatingActionMenu.axis\":[\"Axis\"],\"editor.floatingActionMenu.axis2\":[\"⌥ axis\"],\"editor.floatingActionMenu.noEquipment\":[\"⚠ no equipment\"],\"editor.floatingActionMenu.rTRotate\":[\"R/T rotate\"],\"editor.floatingActionMenu.registerCount\":[[\"count\",\"plural\",{\"one\":[\"#\",\" register\"],\"other\":[\"#\",\" registers\"]}]],\"editor.floatingActionMenu.runCount\":[[\"count\",\"plural\",{\"one\":[\"#\",\" run\"],\"other\":[\"#\",\" runs\"]}]],\"editor.floatingActionMenu.system\":[\"System\"],\"editor.helpers.buildingHelper.cancel\":[\"Cancel\"],\"editor.helpers.buildingHelper.placeBuilding\":[\"Place building\"],\"editor.helpers.buildingHelper.rotate\":[\"Rotate\"],\"editor.helpers.contextualHelperPanel.cancelPlacement\":[\"Cancel placement\"],\"editor.helpers.contextualHelperPanel.continuationClickOrPressCTo\":[\"Continuation — click or press C to cycle\"],\"editor.helpers.contextualHelperPanel.continuationLabel\":[\"Continuation: \",[\"label\"]],\"editor.helpers.contextualHelperPanel.dragToDrawFence\":[\"Drag to draw fence\"],\"editor.helpers.contextualHelperPanel.fenceTypeClickOrPressT\":[\"Fence type — click or press T to switch between straight, curved and freehand\"],\"editor.helpers.contextualHelperPanel.fewerShortcuts\":[\"Fewer shortcuts\"],\"editor.helpers.contextualHelperPanel.finishCurveOrDoubleClick\":[\"Finish curve (or double-click)\"],\"editor.helpers.contextualHelperPanel.gridLength\":[\"Grid: \",[\"length\"]],\"editor.helpers.contextualHelperPanel.gridStepClickOrTapCtrl\":[\"Grid step — click or tap Ctrl to cycle\"],\"editor.helpers.contextualHelperPanel.gridStepLength\":[\"Grid step: \",[\"length\"]],\"editor.helpers.contextualHelperPanel.hoverAPaintedSurfaceToErase\":[\"Hover a painted surface to erase\"],\"editor.helpers.contextualHelperPanel.hoverASurfaceToPaint\":[\"Hover a surface to paint\"],\"editor.helpers.contextualHelperPanel.hoverASurfaceToPickIts\":[\"Hover a surface to pick its material\"],\"editor.helpers.contextualHelperPanel.moreShortcuts\":[\"More shortcuts\"],\"editor.helpers.contextualHelperPanel.placeGateOnAFence\":[\"Place gate on a fence\"],\"editor.helpers.contextualHelperPanel.placePassageOnAFence\":[\"Place passage on a fence\"],\"editor.helpers.contextualHelperPanel.selectAMaterialToPaint\":[\"Select a material to paint\"],\"editor.helpers.contextualHelperPanel.snappingAngles\":[\"Snapping: Angles\"],\"editor.helpers.contextualHelperPanel.snappingGrid\":[\"Snapping: Grid\"],\"editor.helpers.contextualHelperPanel.snappingLines\":[\"Snapping: Lines\"],\"editor.helpers.contextualHelperPanel.snappingModeClickOrPressShift\":[\"Snapping mode — click or press Shift to cycle\"],\"editor.helpers.contextualHelperPanel.snappingOff\":[\"Snapping: Off\"],\"editor.helpers.contextualHelperPanel.straightContinuationIsUnavailableForCurved\":[\"Straight continuation is unavailable for curved or freehand fences\"],\"editor.helpers.contextualHelperPanel.straightContinuous\":[\"Straight: Continuous\"],\"editor.helpers.contextualHelperPanel.straightFenceContinuationClickOrPress\":[\"Straight fence continuation — click or press C to toggle\"],\"editor.helpers.contextualHelperPanel.straightSingle\":[\"Straight: Single\"],\"editor.helpers.contextualHelperPanel.verbScopeClickOrPressShift\":[[\"verb\"],\" scope — click or press Shift to cycle\"],\"editor.helpers.helperManager.addPoint\":[\"Add point\"],\"editor.helpers.helperManager.addPointClickTheFirstTo\":[\"Add point · click the first to close\"],\"editor.helpers.helperManager.brushSize\":[\"Brush size\"],\"editor.helpers.helperManager.cancel\":[\"Cancel\"],\"editor.helpers.helperManager.cancelPicking\":[\"Cancel picking\"],\"editor.helpers.helperManager.cancelStroke\":[\"Cancel stroke\"],\"editor.helpers.helperManager.done\":[\"Done\"],\"editor.helpers.helperManager.drawTheMezzanine\":[\"Draw the mezzanine\"],\"editor.helpers.helperManager.drawTheOpening\":[\"Draw the opening\"],\"editor.helpers.helperManager.drawTheTerrace\":[\"Draw the terrace\"],\"editor.helpers.helperManager.exitSmartMeasure\":[\"Exit smart measure\"],\"editor.helpers.helperManager.finish\":[\"Finish\"],\"editor.helpers.helperManager.finishAtTheEdge\":[\"Finish at the edge\"],\"editor.helpers.helperManager.freeMove\":[\"Free move\"],\"editor.helpers.helperManager.freeMoveSlideDoorsAndWindows\":[\"Free move · slide doors and windows\"],\"editor.helpers.helperManager.holdToPickAMaterial\":[\"Hold to pick a material\"],\"editor.helpers.helperManager.inspectSurfaceDimensions\":[\"Inspect surface dimensions\"],\"editor.helpers.helperManager.paintWithThisMaterial\":[\"Paint with this material\"],\"editor.helpers.helperManager.pickTargetHeight\":[\"Pick target height\"],\"editor.helpers.helperManager.pinMeasurementLens\":[\"Pin measurement lens\"],\"editor.helpers.helperManager.place\":[\"Place\"],\"editor.helpers.helperManager.placeInsideTheRoom\":[\"Place inside the room\"],\"editor.helpers.helperManager.pressAnywhereDragToTheOpposite\":[\"Press anywhere, drag to the opposite corner\"],\"editor.helpers.helperManager.raiseOrLower\":[\"Raise or lower\"],\"editor.helpers.helperManager.removeAPaintedPartOrReset\":[\"Remove a painted part, or reset a surface\"],\"editor.helpers.helperManager.removeLastPoint\":[\"Remove last point\"],\"editor.helpers.helperManager.resize\":[\"Resize\"],\"editor.helpers.helperManager.rotate45\":[\"Rotate ±45°\"],\"editor.helpers.helperManager.rotateTheSelection45\":[\"Rotate the selection ±45°\"],\"editor.helpers.helperManager.setOneCornerThenTheOpposite\":[\"Set one corner, then the opposite\"],\"editor.helpers.itemHelper.cancel\":[\"Cancel\"],\"editor.helpers.itemHelper.forcePlace\":[\"Force place\"],\"editor.helpers.itemHelper.place\":[\"Place\"],\"editor.helpers.itemHelper.rotate\":[\"Rotate\"],\"editor.helpers.registeredToolHelper.guidedConstraintsBypassed\":[\"Guided constraints bypassed\"],\"editor.lib.contextualHelp.addOrRemoveObjectsFromThe\":[\"Add or remove objects from the selection\"],\"editor.lib.contextualHelp.adjustOneSideSCornerRadius\":[\"Adjust one side’s corner radius\"],\"editor.lib.contextualHelp.clearTheSelectionOrClickOutside\":[\"Clear the selection (or click outside)\"],\"editor.lib.contextualHelp.clickAHandleDotToShow\":[\"Click a handle dot to show move arrows\"],\"editor.lib.contextualHelp.clickOrDragTheSelectionTo\":[\"Click or drag the selection to move it as one\"],\"editor.lib.contextualHelp.clickTheHandleDotToShow\":[\"Click the handle dot to show move + rotate handles\"],\"editor.lib.contextualHelp.detachTheJointWhileDraggingAn\":[\"Detach the joint while dragging an arrow\"],\"editor.lib.contextualHelp.dragLeftOrRightToRotate\":[\"Drag left or right to rotate selected object\"],\"editor.lib.contextualHelp.dragSelectedMovableObject\":[\"Drag selected movable object\"],\"editor.lib.contextualHelp.groupSelectionSessionOnly\":[\"Group selection (session only)\"],\"editor.lib.contextualHelp.holdToRotateFreely\":[\"Hold to rotate freely\"],\"editor.lib.contextualHelp.rotate45\":[\"Rotate ±45°\"],\"editor.lib.contextualHelp.rotateTheSelection45\":[\"Rotate the selection ±45°\"],\"editor.lib.contextualHelp.rotatingFreely\":[\"Rotating freely (no angle step)\"],\"editor.lib.contextualHelp.switchTheRotationAxisYX\":[\"Switch the rotation axis (Y → X → Z)\"],\"editor.lib.contextualHelp.ungroupSessionSelection\":[\"Ungroup session selection\"],\"editor.lib.continuation.continuous\":[\"Continuous\"],\"editor.lib.continuation.continuousCanopy\":[\"Continuous canopy\"],\"editor.lib.continuation.continuousRun\":[\"Continuous run\"],\"editor.lib.continuation.curvedFence\":[\"Curved fence\"],\"editor.lib.continuation.freehandFence\":[\"Freehand fence\"],\"editor.lib.continuation.placeMultiple\":[\"Place multiple\"],\"editor.lib.continuation.placeOnce\":[\"Place once\"],\"editor.lib.continuation.polygonRoom\":[\"Polygon room\"],\"editor.lib.continuation.rectangleRoom\":[\"Rectangle room\"],\"editor.lib.continuation.singleCabinet\":[\"Single cabinet\"],\"editor.lib.continuation.singleCanopy\":[\"Single canopy\"],\"editor.lib.continuation.singleFence\":[\"Single fence\"],\"editor.lib.continuation.walls\":[\"Walls\"],\"editor.lib.hudTitle.cutOpening\":[\"Cut opening\"],\"editor.lib.hudTitle.divideRoom\":[\"Divide room\"],\"editor.lib.hudTitle.editKind\":[\"Edit \",[\"kind\"]],\"editor.lib.hudTitle.erase\":[\"Erase\"],\"editor.lib.hudTitle.levelTerrain\":[\"Level terrain\"],\"editor.lib.hudTitle.lowerTerrain\":[\"Lower terrain\"],\"editor.lib.hudTitle.mezzanine\":[\"Mezzanine\"],\"editor.lib.hudTitle.moveKind\":[\"Move \",[\"kind\"]],\"editor.lib.hudTitle.moveRoom\":[\"Move room\"],\"editor.lib.hudTitle.moveSelection\":[\"Move selection\"],\"editor.lib.hudTitle.paint\":[\"Paint\"],\"editor.lib.hudTitle.paintARectangle\":[\"Paint a rectangle\"],\"editor.lib.hudTitle.paintAShape\":[\"Paint a shape\"],\"editor.lib.hudTitle.pickMaterial\":[\"Pick material\"],\"editor.lib.hudTitle.raiseTerrain\":[\"Raise terrain\"],\"editor.lib.hudTitle.resize\":[\"Resize\"],\"editor.lib.hudTitle.rotate\":[\"Rotate\"],\"editor.lib.hudTitle.select\":[\"Select\"],\"editor.lib.hudTitle.smartMeasure\":[\"Smart measure\"],\"editor.lib.hudTitle.smoothTerrain\":[\"Smooth terrain\"],\"editor.lib.hudTitle.splitKind\":[\"Split \",[\"kind\"]],\"editor.lib.hudTitle.terrace\":[\"Terrace\"],\"editor.lib.wallDrawVariant.polygonRoom\":[\"Polygon room\"],\"editor.lib.wallDrawVariant.rectangleRoom\":[\"Rectangle room\"],\"editor.lib.wallDrawVariant.walls\":[\"Walls\"],\"editor.reloadEditor\":[\"Reload editor\"],\"editor.theEditorSceneFailedToRender\":[\"The editor scene failed to render\"],\"editor.toolHint.aCurtainWallTakesNoCorner\":[\"A curtain wall takes no corner window\"],\"editor.toolHint.aCurvedWallTakesNoCorner\":[\"A curved wall takes no corner window\"],\"editor.toolHint.addACornerClickTheFirst\":[\"Add a corner · click the first to close\"],\"editor.toolHint.anotherOpeningIsInTheWay\":[\"Another opening is in the way at the corner\"],\"editor.toolHint.autoHangers\":[\"Auto hangers\"],\"editor.toolHint.autoHangersClickOrPressH\":[\"Auto hangers - click or press H to toggle\"],\"editor.toolHint.autoHangersOff\":[\"Auto hangers: Off\"],\"editor.toolHint.autoHangersOn\":[\"Auto hangers: On\"],\"editor.toolHint.bypassSnapping\":[\"Bypass snapping\"],\"editor.toolHint.cancel\":[\"Cancel\"],\"editor.toolHint.cancelMove\":[\"Cancel move\"],\"editor.toolHint.cancelRunExit\":[\"Cancel run / exit\"],\"editor.toolHint.cancelStartPoint\":[\"Cancel start point\"],\"editor.toolHint.cornerWindow\":[\"Corner window\"],\"editor.toolHint.cuts\":[\"Cuts\"],\"editor.toolHint.cutsValue\":[\"Cuts: \",[\"value\"]],\"editor.toolHint.cutsValueEven\":[\"Cuts: \",[\"value\"],\", even\"],\"editor.toolHint.cycleMonoGableButterfly\":[\"Cycle mono / gable / butterfly\"],\"editor.toolHint.cycleSnappingMode\":[\"Cycle snapping mode\"],\"editor.toolHint.doorStyleClickOrPressL\":[\"Door style — click or press L to cycle\"],\"editor.toolHint.doorTypeClickOrPressO\":[\"Door type — click or press O to cycle\"],\"editor.toolHint.dropDownspoutFromOutlet\":[\"Drop downspout from outlet\"],\"editor.toolHint.ductDiameterDownUp\":[\"Duct diameter down / up\"],\"editor.toolHint.endRunCancel\":[\"End run / cancel\"],\"editor.toolHint.exit\":[\"Exit\"],\"editor.toolHint.exitDrawing\":[\"Exit drawing\"],\"editor.toolHint.finishAndContinue\":[\"Finish and continue\"],\"editor.toolHint.finishCeiling\":[\"Finish ceiling\"],\"editor.toolHint.finishGridAxis\":[\"Finish grid axis\"],\"editor.toolHint.finishMeasurement\":[\"Finish measurement\"],\"editor.toolHint.finishMultiPointWitnesses\":[\"Finish multi-point witnesses\"],\"editor.toolHint.finishSlab\":[\"Finish slab\"],\"editor.toolHint.flipSide\":[\"Flip side\"],\"editor.toolHint.followTraceALineset\":[\"Follow: trace a lineset\"],\"editor.toolHint.forcePlace\":[\"Force place\"],\"editor.toolHint.freePlacement\":[\"Free placement\"],\"editor.toolHint.goVerticalClickToPlace\":[\"Go vertical ↕, click to place\"],\"editor.toolHint.highlightOutlet\":[\"Highlight outlet\"],\"editor.toolHint.joinAsACornerWindow\":[\"Join as a corner window\"],\"editor.toolHint.key.altDrag\":[\"Alt + drag\"],\"editor.toolHint.key.backspace\":[\"Backspace\"],\"editor.toolHint.key.click\":[\"Click\"],\"editor.toolHint.key.clickAgain\":[\"Click again\"],\"editor.toolHint.key.command\":[\"Command\"],\"editor.toolHint.key.control\":[\"Control\"],\"editor.toolHint.key.delete\":[\"Delete\"],\"editor.toolHint.key.doubleClick\":[\"Double click\"],\"editor.toolHint.key.drag\":[\"Drag\"],\"editor.toolHint.key.enter\":[\"Enter\"],\"editor.toolHint.key.hover\":[\"Hover\"],\"editor.toolHint.key.hoverADuctEnd\":[\"Hover a duct end\"],\"editor.toolHint.key.hoverAPipeEnd\":[\"Hover a pipe end\"],\"editor.toolHint.key.hoverGutter\":[\"Hover gutter\"],\"editor.toolHint.key.leftClick\":[\"Left click\"],\"editor.toolHint.key.middleClick\":[\"Middle click\"],\"editor.toolHint.key.rShiftR\":[\"R / Shift+R\"],\"editor.toolHint.key.rightClick\":[\"Right click\"],\"editor.toolHint.key.scroll\":[\"Scroll\"],\"editor.toolHint.key.scrollWheel\":[\"Scroll wheel\"],\"editor.toolHint.key.space\":[\"Space\"],\"editor.toolHint.key.tab\":[\"Tab\"],\"editor.toolHint.mountFloorCeilingWall\":[\"Mount: floor / ceiling / wall\"],\"editor.toolHint.noRoomForTheMatchingWindow\":[\"No room for the matching window on the other wall\"],\"editor.toolHint.noWallMeetsHere\":[\"No wall meets here\"],\"editor.toolHint.numberOfCutsScrollOrClick\":[\"Number of cuts — scroll or click to change\"],\"editor.toolHint.pickWitnessPoint\":[\"Pick witness point\"],\"editor.toolHint.pipeSizeDownUp\":[\"Pipe size down / up\"],\"editor.toolHint.placeAndContinue\":[\"Place and continue\"],\"editor.toolHint.placeBlock\":[\"Place block\"],\"editor.toolHint.placeBoxVentOnRoof\":[\"Place box vent on roof\"],\"editor.toolHint.placeCabinet\":[\"Place cabinet\"],\"editor.toolHint.placeCanopyOrSetTheNext\":[\"Place canopy or set the next run point\"],\"editor.toolHint.placeChimneyOnRoof\":[\"Place chimney on roof\"],\"editor.toolHint.placeColumn\":[\"Place column\"],\"editor.toolHint.placeCupolaOnRoof\":[\"Place cupola on roof\"],\"editor.toolHint.placeDimensionLineWhenNeeded\":[\"Place dimension line when needed\"],\"editor.toolHint.placeDoorOnWall\":[\"Place door on wall\"],\"editor.toolHint.placeDormerOnRoof\":[\"Place dormer on roof\"],\"editor.toolHint.placeElevator\":[\"Place elevator\"],\"editor.toolHint.placeEyebrowVentOnRoof\":[\"Place eyebrow vent on roof\"],\"editor.toolHint.placeFitting\":[\"Place fitting\"],\"editor.toolHint.placeGutterOnRoofEave\":[\"Place gutter on roof eave\"],\"editor.toolHint.placeItLockedTo45\":[\"Place it (locked to 45°)\"],\"editor.toolHint.placeItem\":[\"Place item\"],\"editor.toolHint.placeMeasurementPoint\":[\"Place measurement point\"],\"editor.toolHint.placeOnAFence\":[\"Place on a fence\"],\"editor.toolHint.placeRegister\":[\"Place register\"],\"editor.toolHint.placeRidgeVentOnRoof\":[\"Place ridge vent on roof\"],\"editor.toolHint.placeShelf\":[\"Place shelf\"],\"editor.toolHint.placeSkylightOnRoof\":[\"Place skylight on roof\"],\"editor.toolHint.placeSolarPanelArrayOnRoof\":[\"Place solar panel array on roof\"],\"editor.toolHint.placeSpawnPoint\":[\"Place spawn point\"],\"editor.toolHint.placeStairs\":[\"Place stairs\"],\"editor.toolHint.placeTrap\":[\"Place trap\"],\"editor.toolHint.placeTurbineVentOnRoof\":[\"Place turbine vent on roof\"],\"editor.toolHint.placeUnit\":[\"Place unit\"],\"editor.toolHint.placeWindowOnWall\":[\"Place window on wall\"],\"editor.toolHint.placeWithoutTheCornerSnap\":[\"Place without the corner snap\"],\"editor.toolHint.placement\":[\"Placement\"],\"editor.toolHint.placementAuto\":[\"Placement: Auto\"],\"editor.toolHint.placementGround\":[\"Placement: Ground\"],\"editor.toolHint.placementRoof\":[\"Placement: Roof\"],\"editor.toolHint.placementSurfaceClickOrPressP\":[\"Placement surface - click or press P to cycle\"],\"editor.toolHint.placementType\":[\"Placement type\"],\"editor.toolHint.placementTypeClickOrPressI\":[\"Placement type — click or press I to toggle\"],\"editor.toolHint.removeLastPoint\":[\"Remove last point\"],\"editor.toolHint.removeLastWitness\":[\"Remove last witness\"],\"editor.toolHint.rotate\":[\"Rotate\"],\"editor.toolHint.rotate45\":[\"Rotate ±45°\"],\"editor.toolHint.rotate45FloorCeiling\":[\"Rotate ±45° (floor / ceiling)\"],\"editor.toolHint.rotateGhost15\":[\"Rotate ghost ±15°\"],\"editor.toolHint.rotateOrFlipTheRunSide\":[\"Rotate or flip the run side\"],\"editor.toolHint.rotateRoofDirection90\":[\"Rotate roof direction 90°\"],\"editor.toolHint.rotateSpawnPoint\":[\"Rotate spawn point\"],\"editor.toolHint.roundRectangularOval\":[\"Round / rectangular / oval\"],\"editor.toolHint.setFenceStartEnd\":[\"Set fence start / end\"],\"editor.toolHint.setOneCornerThenTheOpposite\":[\"Set one corner, then the opposite\"],\"editor.toolHint.setRoofFootprint\":[\"Set roof footprint\"],\"editor.toolHint.setWallStartEnd\":[\"Set wall start / end\"],\"editor.toolHint.slopeLevel\":[\"Slope / level\"],\"editor.toolHint.snapOntoTheRun\":[\"Snap onto the run\"],\"editor.toolHint.splitAtTheMarks\":[\"Split at the marks\"],\"editor.toolHint.startGridAxis\":[\"Start grid axis\"],\"editor.toolHint.startLineset\":[\"Start lineset\"],\"editor.toolHint.startLiquidLine\":[\"Start liquid line\"],\"editor.toolHint.startRun\":[\"Start run\"],\"editor.toolHint.startSegment\":[\"Start segment\"],\"editor.toolHint.stepBackOrCancel\":[\"Step back or cancel\"],\"editor.toolHint.style\":[\"Style\"],\"editor.toolHint.styleBarn\":[\"Style: Barn\"],\"editor.toolHint.styleCasement\":[\"Style: Casement\"],\"editor.toolHint.styleCraftsman\":[\"Style: Craftsman\"],\"editor.toolHint.styleDoubleHung\":[\"Style: Double-hung\"],\"editor.toolHint.styleFrench\":[\"Style: French\"],\"editor.toolHint.styleGlass\":[\"Style: Glass\"],\"editor.toolHint.styleGrid\":[\"Style: Grid\"],\"editor.toolHint.styleHalfLouvered\":[\"Style: Half-louvered\"],\"editor.toolHint.styleHorizontalBands\":[\"Style: Horizontal bands\"],\"editor.toolHint.styleModern\":[\"Style: Modern\"],\"editor.toolHint.stylePanel\":[\"Style: Panel\"],\"editor.toolHint.stylePaneledGlass\":[\"Style: Paneled glass\"],\"editor.toolHint.styleShaker\":[\"Style: Shaker\"],\"editor.toolHint.styleSingle\":[\"Style: Single\"],\"editor.toolHint.styleSixPanel\":[\"Style: Six-panel\"],\"editor.toolHint.styleSliding\":[\"Style: Sliding\"],\"editor.toolHint.styleTallGrid\":[\"Style: Tall grid\"],\"editor.toolHint.styleTransom\":[\"Style: Transom\"],\"editor.toolHint.styleTripleHung\":[\"Style: Triple-hung\"],\"editor.toolHint.styleWideGrid\":[\"Style: Wide grid\"],\"editor.toolHint.switchRotationAxisYXZ\":[\"Switch rotation axis (Y → X → Z)\"],\"editor.toolHint.theWallsMeetAtTooSharp\":[\"The walls meet at too sharp or too flat an angle\"],\"editor.toolHint.theWindowWaitingThereIsTaller\":[\"The window waiting there is taller than this wall\"],\"editor.toolHint.threeOrMoreWallsMeetHere\":[\"Three or more walls meet here\"],\"editor.toolHint.traceCeilingOutline\":[\"Trace ceiling outline\"],\"editor.toolHint.traceSlabOutline\":[\"Trace slab outline\"],\"editor.toolHint.type\":[\"Type\"],\"editor.toolHint.typeAwning\":[\"Type: Awning\"],\"editor.toolHint.typeBarn\":[\"Type: Barn\"],\"editor.toolHint.typeBay\":[\"Type: Bay\"],\"editor.toolHint.typeBow\":[\"Type: Bow\"],\"editor.toolHint.typeCabinet\":[\"Type: Cabinet\"],\"editor.toolHint.typeCasement\":[\"Type: Casement\"],\"editor.toolHint.typeDouble\":[\"Type: Double\"],\"editor.toolHint.typeDoubleHung\":[\"Type: Double Hung\"],\"editor.toolHint.typeFixed\":[\"Type: Fixed\"],\"editor.toolHint.typeFolding\":[\"Type: Folding\"],\"editor.toolHint.typeFrench\":[\"Type: French\"],\"editor.toolHint.typeHinged\":[\"Type: Hinged\"],\"editor.toolHint.typeIsland\":[\"Type: Island\"],\"editor.toolHint.typeLouvered\":[\"Type: Louvered\"],\"editor.toolHint.typePocket\":[\"Type: Pocket\"],\"editor.toolHint.typeSingleHung\":[\"Type: Single Hung\"],\"editor.toolHint.typeSliding\":[\"Type: Sliding\"],\"editor.toolHint.verticalStackClickToPlace\":[\"Vertical stack ↕, click to place\"],\"editor.toolHint.wasteVent\":[\"Waste / vent\"],\"editor.toolHint.windowStyleClickOrPressL\":[\"Window style — click or press L to cycle\"],\"editor.toolHint.windowTypeClickOrPressO\":[\"Window type — click or press O to cycle\"],\"editor.views.plugins\":[\"Plugins\"],\"editor.views.view2d\":[\"2D\"],\"editor.views.view3d\":[\"3D\"],\"editor.views.viewBar.auto\":[\"Auto\"],\"editor.views.viewBar.browsePlugins\":[\"Browse plugins\"],\"editor.views.viewBar.closeLabel\":[\"Close \",[\"label\"]],\"editor.views.viewBar.closeSplit\":[\"Close split (\\\\)\"],\"editor.views.viewBar.ground\":[\"Ground\"],\"editor.views.viewBar.groundSolid\":[[\"standing\",\"select\",{\"partly\":[\"Partly below grade · ground solid\"],\"below\":[\"Below grade · ground solid\"],\"other\":[\"Ground solid\"]}]],\"editor.views.viewBar.groundVeiled\":[[\"standing\",\"select\",{\"partly\":[\"Partly below grade · ground veiled\"],\"below\":[\"Below grade · ground veiled\"],\"other\":[\"Ground veiled\"]}]],\"editor.views.viewBar.keepTheGroundSolid\":[\"Keep the ground solid\"],\"editor.views.viewBar.moreViews\":[\"More views\"],\"editor.views.viewBar.paneViews\":[\"Pane \",[\"pane\"],\" views\"],\"editor.views.viewBar.pinLabel\":[\"Pin \",[\"label\"]],\"editor.views.viewBar.pinToTheViewBar\":[\"Pin to the view bar\"],\"editor.views.viewBar.solid\":[\"Solid\"],\"editor.views.viewBar.split\":[\"Split (\\\\)\"],\"editor.views.viewBar.split2\":[\"Split\"],\"editor.views.viewBar.swapPanes\":[\"Swap panes\"],\"editor.views.viewBar.unpinFromTheViewBar\":[\"Unpin from the view bar\"],\"editor.views.viewBar.unpinLabel\":[\"Unpin \",[\"label\"]],\"editor.views.viewBar.veilTheGroundOverALevel\":[\"Veil the ground over a level below grade\"],\"editor.views.viewBar.views\":[\"Views\"],\"editor.youCanRetryTheSceneOr\":[\"You can retry the scene or return home without reloading the whole app shell.\"],\"node.block.description\":[\"A topology-backed solid edited directly in the canvas.\"],\"node.block.label\":[\"Block\"],\"node.boxVent.description\":[\"Small louvered exhaust vent that sits on a roof slope.\"],\"node.boxVent.label\":[\"Box Vent\"],\"node.building.description\":[\"A building container holding one or more levels.\"],\"node.building.label\":[\"Building\"],\"node.cabinet.description\":[\"A configurable parametric base cabinet.\"],\"node.cabinet.label\":[\"Modular Cabinet\"],\"node.cabinetModule.description\":[\"An editable module inside a modular cabinet run.\"],\"node.cabinetModule.label\":[\"Cabinet Module\"],\"node.ceiling.description\":[\"A polygon-bounded ceiling surface that hosts ceiling-mounted items.\"],\"node.ceiling.label\":[\"Ceiling\"],\"node.chimney.description\":[\"Vertical masonry stack on a roof segment.\"],\"node.chimney.label\":[\"Chimney\"],\"node.column.description\":[\"A parametric column with configurable cross-section, base, and capital.\"],\"node.column.label\":[\"Column\"],\"node.constructionDimension.description\":[\"Associative linear, curved, circular, angular, or coordinate plan dimension.\"],\"node.constructionDimension.label\":[\"Construction Dimension\"],\"node.cupola.description\":[\"Louvered roof lantern with a dome or pyramid cap and optional finial.\"],\"node.cupola.label\":[\"Cupola\"],\"node.door.description\":[\"A door cut into a wall. Animated open/close state.\"],\"node.door.label\":[\"Door\"],\"node.dormer.description\":[\"House-shaped protrusion on a roof segment.\"],\"node.dormer.label\":[\"Dormer\"],\"node.downspout.description\":[\"Vertical drop pipe from a gutter outlet to the ground.\"],\"node.downspout.label\":[\"Downspout\"],\"node.ductFitting.description\":[\"Elbow, tee, reducer, or square-to-round transition connecting duct runs.\"],\"node.ductFitting.label\":[\"Duct Fitting\"],\"node.ductSegment.description\":[\"HVAC duct run — polyline of round, rect, or flat-oval sections.\"],\"node.ductSegment.label\":[\"Duct\"],\"node.ductTerminal.description\":[\"Duct terminal — supply register, ceiling diffuser, or return grille. Duct runs end at its collar.\"],\"node.ductTerminal.label\":[\"Register\"],\"node.elevator.description\":[\"A multi-level elevator shaft with configurable openings per level.\"],\"node.elevator.label\":[\"Elevator\"],\"node.eyebrowVent.description\":[\"Low curved lens-shaped roof vent with a louvered front.\"],\"node.eyebrowVent.label\":[\"Eyebrow Vent\"],\"node.fence.description\":[\"A straight or curved fence segment with configurable posts and infill.\"],\"node.fence.label\":[\"Fence\"],\"node.fenceGate.description\":[\"A gate hosted by a fence.\"],\"node.fenceGate.label\":[\"Gate\"],\"node.fenceOpening.description\":[\"An intentional opening in a fence.\"],\"node.fenceOpening.label\":[\"Open Passage\"],\"node.floorOpening.label\":[\"Floor opening\"],\"node.guide.description\":[\"A measurement / reference annotation (linear, area, or arc).\"],\"node.guide.label\":[\"Guide\"],\"node.gutter.description\":[\"Rain-water channel running along the eave of a roof segment.\"],\"node.gutter.label\":[\"Gutter\"],\"node.hvacEquipment.description\":[\"Furnace, air handler, or condenser — duct runs connect to its supply/return collars.\"],\"node.hvacEquipment.label\":[\"HVAC Unit\"],\"node.importedMesh.description\":[\"Geometry preserved from an imported model when no native Pascal shape exists.\"],\"node.importedMesh.label\":[\"Imported Mesh\"],\"node.item.description\":[\"A catalog-backed item (furniture, fixtures, decorations).\"],\"node.item.label\":[\"Item\"],\"node.leanToExtension.description\":[\"An attached mono-pitch or freestanding mono, gable, or butterfly canopy with managed structure and drainage.\"],\"node.leanToExtension.label\":[\"Canopy\"],\"node.level.description\":[\"A single floor of a building, holding walls / slabs / ceilings / items.\"],\"node.level.label\":[\"Level\"],\"node.lineset.description\":[\"Refrigerant lineset — copper suction + liquid pair joining a condenser to the indoor coil.\"],\"node.lineset.label\":[\"Lineset\"],\"node.liquidLine.description\":[\"Standalone refrigerant liquid line — a thin bare-copper run; Follow mode traces an existing lineset.\"],\"node.liquidLine.label\":[\"Liquid Line\"],\"node.measurement.description\":[\"A persistent distance, angle, area, perimeter, or volume annotation.\"],\"node.measurement.label\":[\"Measurement\"],\"node.pipeFitting.description\":[\"DWV joint — elbow bend, 45° wye, or sanitary tee.\"],\"node.pipeFitting.label\":[\"Pipe Fitting\"],\"node.pipeSegment.description\":[\"Drain / waste / vent pipe run — draw level or toggle a ¼″ per foot fall with S.\"],\"node.pipeSegment.label\":[\"DWV Pipe\"],\"node.pipeTrap.description\":[\"DWV P-trap — water seal on the waste line. The trap arm runs to the vent.\"],\"node.pipeTrap.label\":[\"Trap\"],\"node.proceduralItem.description\":[\"Experimental editable recipe\"],\"node.proceduralItem.label\":[\"Procedural item\"],\"node.ridgeVent.description\":[\"Ventilation strip running along the ridge of a roof segment.\"],\"node.ridgeVent.label\":[\"Ridge Vent\"],\"node.roof.description\":[\"A pitched / hip / gable roof composed of one or more segments.\"],\"node.roof.label\":[\"Roof\"],\"node.roofSegment.description\":[\"A single pitched plane of a parent roof.\"],\"node.roofSegment.label\":[\"Roof Segment\"],\"node.scan.description\":[\"A captured session with optional mesh, motion, media, and sensor data.\"],\"node.scan.label\":[\"Capture\"],\"node.separator.label\":[\"Separator\"],\"node.shelf.description\":[\"A configurable shelving unit. Items host on each row.\"],\"node.shelf.label\":[\"Shelf\"],\"node.site.description\":[\"The top-level container holding buildings, zones, and the property boundary.\"],\"node.site.label\":[\"Site\"],\"node.skylight.description\":[\"Framed glass opening on a roof segment.\"],\"node.skylight.label\":[\"Skylight\"],\"node.slab.description\":[\"A polygon-bounded floor surface that hosts items on top.\"],\"node.slab.label\":[\"Slab\"],\"node.solarPanel.description\":[\"Grid of photovoltaic panels mounted on a roof segment.\"],\"node.solarPanel.label\":[\"Solar Panel\"],\"node.spawn.description\":[\"Player or camera origin within a level. One per level.\"],\"node.spawn.label\":[\"Spawn Point\"],\"node.stair.description\":[\"A stair composed of one or more flights with configurable treads, risers, railings.\"],\"node.stair.label\":[\"Stair\"],\"node.stairSegment.description\":[\"A single flight of a parent stair.\"],\"node.stairSegment.label\":[\"Stair Segment\"],\"node.structuralGrid.description\":[\"Persistent construction grid axis with identification bubbles.\"],\"node.structuralGrid.label\":[\"Structural Grid\"],\"node.turbineVent.description\":[\"Wind-driven spinning whirlybird exhaust vent for a roof slope.\"],\"node.turbineVent.label\":[\"Turbine Vent\"],\"node.unit.description\":[\"A named group of zones forming one apartment, hotel room or commercial lot.\"],\"node.unit.label\":[\"Unit\"],\"node.wall.description\":[\"A straight or curved wall segment. Hosts doors, windows, lean-to extensions, and wall-mounted items.\"],\"node.wall.label\":[\"Wall\"],\"node.window.description\":[\"A window cut into a wall. Animated open/close for opening windows.\"],\"node.window.label\":[\"Window\"],\"node.zone.description\":[\"A polygonal site zone (lawn, water, paving) with a TSL gradient material.\"],\"node.zone.label\":[\"Zone\"],\"viewer.camera.orbitLeft\":[\"Orbit left\"],\"viewer.camera.orbitRight\":[\"Orbit right\"],\"viewer.camera.topView\":[\"Top view\"],\"viewer.common.off\":[\"Off\"],\"viewer.common.on\":[\"On\"],\"viewer.display.camera\":[\"Camera\"],\"viewer.display.colored\":[\"Colored\"],\"viewer.display.colors\":[\"Colors\"],\"viewer.display.edges.off\":[\"Off\"],\"viewer.display.edges.offDetail\":[\"No edge lines\"],\"viewer.display.edges.soft\":[\"Soft\"],\"viewer.display.edges.softDetail\":[\"Faint outline of major creases\"],\"viewer.display.edges.strong\":[\"Strong\"],\"viewer.display.edges.strongDetail\":[\"Crisp, opaque edge lines\"],\"viewer.display.edges.title\":[\"Edges\"],\"viewer.display.monochrome\":[\"Monochrome\"],\"viewer.display.orthographic\":[\"Orthographic\"],\"viewer.display.perspective\":[\"Perspective\"],\"viewer.display.render.rendered\":[\"Rendered\"],\"viewer.display.render.renderedDetail\":[\"Full ambient occlusion\"],\"viewer.display.render.solid\":[\"Solid\"],\"viewer.display.render.solidDetail\":[\"Flat and fast — no ambient occlusion\"],\"viewer.display.render.title\":[\"Render\"],\"viewer.display.shadows\":[\"Shadows\"],\"viewer.display.title\":[\"Display settings\"],\"viewer.floorplan.alignNorth\":[\"Align view to north\"],\"viewer.floorplan.empty\":[\"No floor plans are available for this scene.\"],\"viewer.floorplan.fit\":[\"Fit floor plan\"],\"viewer.floorplan.floor\":[\"Floor\"],\"viewer.floorplan.floorPlan\":[\"Floor plan\"],\"viewer.floorplan.viewLabel\":[[\"floor\"],\" 2D view\"],\"viewer.floorplan.zoomIn\":[\"Zoom in\"],\"viewer.floorplan.zoomOut\":[\"Zoom out\"],\"viewer.header.back\":[\"Back\"],\"viewer.header.levels\":[\"Levels\"],\"viewer.header.rooms\":[\"Rooms\"],\"viewer.header.selection\":[\"Selection\"],\"viewer.header.units\":[\"Units\"],\"viewer.header.untitled\":[\"Untitled\"],\"viewer.header.zones\":[\"Zones\"],\"viewer.levels.exploded\":[\"Exploded\"],\"viewer.levels.label\":[\"Levels: \",[\"mode\"]],\"viewer.levels.manual\":[\"Manual\"],\"viewer.levels.solo\":[\"Solo\"],\"viewer.levels.stacked\":[\"Stacked\"],\"viewer.stage.layout\":[\"Viewer layout\"],\"viewer.stage.split\":[\"Split\"],\"viewer.theme.blueprint\":[\"Blueprint\"],\"viewer.theme.mediterranean\":[\"Mediterranean\"],\"viewer.theme.night\":[\"Night\"],\"viewer.theme.overcast\":[\"Overcast\"],\"viewer.theme.paper\":[\"Paper\"],\"viewer.theme.studio\":[\"Studio\"],\"viewer.theme.sunset\":[\"Sunset\"],\"viewer.theme.title\":[\"Scene theme\"],\"viewer.theme.twilight\":[\"Twilight\"],\"viewer.theme.verdant\":[\"Verdant\"],\"viewer.visibility.guides\":[\"Guides\"],\"viewer.visibility.scans\":[\"Scans\"],\"viewer.visibility.title\":[\"Visibility\"],\"viewer.walkthrough.label\":[\"Walkthrough: \",[\"state\"]],\"viewer.walls.cutaway\":[\"Cutaway\"],\"viewer.walls.fullHeight\":[\"Full height\"],\"viewer.walls.label\":[\"Walls: \",[\"mode\"]],\"viewer.walls.low\":[\"Low\"]}")as Messages;
\ No newline at end of file
+/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"app.appShell.pascalHome\":[\"Pascal home\"],\"app.buildTab.addGate\":[\"Add Gate\"],\"app.buildTab.addOpenPassage\":[\"Add Open Passage\"],\"app.buildTab.addToRooms\":[\"Add to rooms\"],\"app.buildTab.allBuildTools\":[\"← All build tools\"],\"app.buildTab.chooseGateOrOpenPassageThen\":[\"Choose Gate or Open Passage, then click its position on any fence. Find placed gates and openings under their fence in the scene graph.\"],\"app.buildTab.clickALinesetToLayThe\":[\"Click a lineset to lay the line beside it.\"],\"app.buildTab.doubleGate\":[\"Double gate\"],\"app.buildTab.featuresExtensions\":[\"Features & extensions\"],\"app.buildTab.fenceFeatures\":[\"Fence features\"],\"app.buildTab.followLineset\":[\"Follow lineset\"],\"app.buildTab.gate\":[\"Gate\"],\"app.buildTab.gateStyle\":[\"Gate style\"],\"app.buildTab.horizontalBoards\":[\"Horizontal boards\"],\"app.buildTab.hoverAFenceToPreviewClick\":[\"Hover a fence to preview. Click to place. Esc cancels. Leave room between openings.\"],\"app.buildTab.leaves\":[\"Leaves\"],\"app.buildTab.liquidLine\":[\"Liquid Line\"],\"app.buildTab.matchFenceStyle\":[\"Match fence style\"],\"app.buildTab.mep\":[\"MEP\"],\"app.buildTab.off\":[\"Off\"],\"app.buildTab.on\":[\"On\"],\"app.buildTab.openRails\":[\"Open rails\"],\"app.buildTab.opening\":[\"Opening\"],\"app.buildTab.openingWidthM\":[\"Opening width (m)\"],\"app.buildTab.outdoor\":[\"Outdoor\"],\"app.buildTab.picket\":[\"Picket\"],\"app.buildTab.roofType\":[\"Roof type\"],\"app.buildTab.roomsAlreadyCreateTheirFloorAnd\":[\"Rooms already create their floor and ceiling. Use these for platforms and one-off structure.\"],\"app.buildTab.searchBuildToolsAndKitchenItems\":[\"Search build tools and kitchen items\"],\"app.buildTab.searchToolsFridgeSink\":[\"Search tools, fridge, sink…\"],\"app.buildTab.selectACurvedWallToMatch\":[\"Select a curved wall to match its radius and arc.\"],\"app.buildTab.singleGate\":[\"Single gate\"],\"app.buildTab.slabCeilingColumn\":[\"Slab, ceiling, column…\"],\"app.buildTab.solidPrivacy\":[\"Solid privacy\"],\"app.buildTab.traceALineAlongsideAnExisting\":[\"Trace a line alongside an existing lineset (F).\"],\"app.buildTab.verticalSlats\":[\"Vertical slats\"],\"app.editorNavbar.allProjects\":[\"All projects\"],\"app.editorNavbar.preview\":[\"Preview\"],\"app.editorNavbar.projectName\":[\"Project name\"],\"app.editorNavbar.renameProject\":[\"Rename project\"],\"app.editorNavbar.share\":[\"Share\"],\"app.kitchenBrowser.addLabel\":[\"Add \",[\"label\"]],\"app.kitchenBrowser.addToKitchen\":[\"Add to kitchen\"],\"app.kitchenBrowser.chooseAnItemThenClickTo\":[\"Choose an item, then click to place it. Appliances include their cabinetry.\"],\"app.kitchenBrowser.findInThisProjectLength\":[\"Find in this project · \",[\"length\"]],\"app.kitchenBrowser.findName\":[\"Find \",[\"name\"]],\"app.kitchenBrowser.groupAdd\":[\"Kitchen · Add\"],\"app.kitchenBrowser.groupInThisProject\":[\"Kitchen · In this project\"],\"app.kitchenBrowser.kitchenCabinet\":[\"Kitchen cabinet\"],\"app.kitchenBrowser.noMatchingKitchenItemsPlacedYet\":[\"No matching kitchen items placed yet.\"],\"app.kitchenBrowser.selectAndShowInScene\":[\"Select and show in scene\"],\"app.lib.buildPalette.ceiling\":[\"Ceiling\"],\"app.lib.buildPalette.column\":[\"Column\"],\"app.lib.buildPalette.door\":[\"Door\"],\"app.lib.buildPalette.duct\":[\"Duct\"],\"app.lib.buildPalette.dwvPipe\":[\"DWV Pipe\"],\"app.lib.buildPalette.elevator\":[\"Elevator\"],\"app.lib.buildPalette.fence\":[\"Fence\"],\"app.lib.buildPalette.hvacUnit\":[\"HVAC Unit\"],\"app.lib.buildPalette.kitchen\":[\"Kitchen\"],\"app.lib.buildPalette.lineset\":[\"Lineset\"],\"app.lib.buildPalette.liquidLine\":[\"Liquid Line\"],\"app.lib.buildPalette.mep\":[\"MEP\"],\"app.lib.buildPalette.register\":[\"Register\"],\"app.lib.buildPalette.roof\":[\"Roof\"],\"app.lib.buildPalette.shelf\":[\"Shelf\"],\"app.lib.buildPalette.slab\":[\"Slab\"],\"app.lib.buildPalette.spawnPoint\":[\"Spawn point\"],\"app.lib.buildPalette.stairs\":[\"Stairs\"],\"app.lib.buildPalette.terrace\":[\"Terrace\"],\"app.lib.buildPalette.terrain\":[\"Terrain\"],\"app.lib.buildPalette.wall\":[\"Wall\"],\"app.lib.buildPalette.window\":[\"Window\"],\"app.lib.buildPanelModel.addFitting\":[\"Add Fitting\"],\"app.lib.buildPanelModel.addGate\":[\"Add Gate\"],\"app.lib.buildPanelModel.addOpenPassage\":[\"Add Open Passage\"],\"app.lib.buildPanelModel.addTrap\":[\"Add Trap\"],\"app.lib.buildPanelModel.build\":[\"Build\"],\"app.lib.buildPanelModel.createFrom\":[\"Create from\"],\"app.lib.buildPanelModel.drawTheRoofFootprintWithTwo\":[\"Draw the roof footprint with two corner clicks.\"],\"app.lib.buildPanelModel.duct\":[\"Duct\"],\"app.lib.buildPanelModel.dwvPipe\":[\"DWV Pipe\"],\"app.lib.buildPanelModel.featuresExtensions\":[\"Features & extensions\"],\"app.lib.buildPanelModel.fence\":[\"Fence\"],\"app.lib.buildPanelModel.followLineset\":[\"Follow lineset\"],\"app.lib.buildPanelModel.gatesOpenings\":[\"Gates & openings\"],\"app.lib.buildPanelModel.hoverARoomToPreviewIts\":[\"Hover a room to preview its boundary, then click to place.\"],\"app.lib.buildPanelModel.kitchen\":[\"Kitchen\"],\"app.lib.buildPanelModel.mep\":[\"MEP\"],\"app.lib.buildPanelModel.modularCabinet\":[\"Modular Cabinet\"],\"app.lib.buildPanelModel.off\":[\"Off\"],\"app.lib.buildPanelModel.on\":[\"On\"],\"app.lib.buildPanelModel.painting\":[\"Painting\"],\"app.lib.buildPanelModel.roof\":[\"Roof\"],\"app.lib.buildPanelModel.roofType\":[\"Roof type\"],\"app.lib.buildPanelModel.toolCount\":[[\"count\",\"plural\",{\"one\":[\"#\",\" tool\"],\"other\":[\"#\",\" tools\"]}]],\"app.lib.buildTabState.conical\":[\"Conical\"],\"app.lib.buildTabState.draw\":[\"Draw\"],\"app.lib.buildTabState.dutch\":[\"Dutch\"],\"app.lib.buildTabState.flat\":[\"Flat\"],\"app.lib.buildTabState.gable\":[\"Gable\"],\"app.lib.buildTabState.gambrel\":[\"Gambrel\"],\"app.lib.buildTabState.hip\":[\"Hip\"],\"app.lib.buildTabState.mansard\":[\"Mansard\"],\"app.lib.buildTabState.room\":[\"Room\"],\"app.lib.buildTabState.shed\":[\"Shed\"],\"app.lib.buildTabState.wall\":[\"Wall\"],\"app.sharePanel.anyoneWithTheLinkCanView\":[\"Anyone with the link can view this project. They cannot edit it.\"],\"app.sharePanel.copied\":[\"Copied\"],\"app.sharePanel.copy\":[\"Copy\"],\"app.sharePanel.couldNotReadTheSharingState\":[\"Could not read the sharing state.\"],\"app.sharePanel.couldNotTurnOffThePublic\":[\"Could not turn off the public link.\"],\"app.sharePanel.couldNotTurnOnThePublic\":[\"Could not turn on the public link.\"],\"app.sharePanel.embedCode\":[\"Embed code\"],\"app.sharePanel.embedLink\":[\"Embed link\"],\"app.sharePanel.hideControls\":[\"Hide controls\"],\"app.sharePanel.link\":[\"Link\"],\"app.sharePanel.onlyThe3dViewNoHeader\":[\"Only the 3D view, no header or toolbar.\"],\"app.sharePanel.open\":[\"Open\"],\"app.sharePanel.publicLink\":[\"Public link\"],\"app.sharePanel.shareProject\":[\"Share project\"],\"app.viewerToolbar.automaticDimensions\":[\"Automatic dimensions\"],\"app.viewerToolbar.camera\":[\"Camera\"],\"app.viewerToolbar.cleanPlanDimensionsAppearWithSelection\":[\"Clean plan; dimensions appear with selection\"],\"app.viewerToolbar.collapseSidebar\":[\"Collapse sidebar\"],\"app.viewerToolbar.crispOpaqueEdgeLines\":[\"Crisp, opaque edge lines\"],\"app.viewerToolbar.cutaway\":[\"Cutaway\"],\"app.viewerToolbar.default\":[\"Default\"],\"app.viewerToolbar.display\":[\"Display\"],\"app.viewerToolbar.displaySettings\":[\"Display settings\"],\"app.viewerToolbar.doorWindowMarks\":[\"Door/window marks\"],\"app.viewerToolbar.edges\":[\"Edges\"],\"app.viewerToolbar.enterVr\":[\"Enter VR\"],\"app.viewerToolbar.exitVr\":[\"Exit VR\"],\"app.viewerToolbar.expandSidebar\":[\"Expand sidebar\"],\"app.viewerToolbar.expert\":[\"Expert\"],\"app.viewerToolbar.exploded\":[\"Exploded\"],\"app.viewerToolbar.faceOfStud\":[\"Face of stud\"],\"app.viewerToolbar.faintOutlineOfMajorCreases\":[\"Faint outline of major creases\"],\"app.viewerToolbar.feetInches\":[\"Feet & inches\"],\"app.viewerToolbar.finishedFaces\":[\"Finished faces\"],\"app.viewerToolbar.flatAndFastNoAmbientOcclusion\":[\"Flat and fast — no ambient occlusion\"],\"app.viewerToolbar.floorPlanAnnotations\":[\"Floor plan annotations\"],\"app.viewerToolbar.floorPlanMode\":[\"Floor plan mode\"],\"app.viewerToolbar.fullAmbientOcclusion\":[\"Full ambient occlusion\"],\"app.viewerToolbar.fullDocumentationAndAnnotationControls\":[\"Full documentation and annotation controls\"],\"app.viewerToolbar.fullHeight\":[\"Full height\"],\"app.viewerToolbar.fullWallThickness\":[\"Full wall thickness\"],\"app.viewerToolbar.grid\":[\"Grid\"],\"app.viewerToolbar.levelsMode\":[\"Levels: \",[\"mode\"]],\"app.viewerToolbar.low\":[\"Low\"],\"app.viewerToolbar.magneticSnap\":[\"Magnetic snap\"],\"app.viewerToolbar.manual\":[\"Manual\"],\"app.viewerToolbar.manualDimensions\":[\"Manual dimensions\"],\"app.viewerToolbar.measurements\":[\"Measurements\"],\"app.viewerToolbar.meters\":[\"Meters\"],\"app.viewerToolbar.millimeters\":[\"Millimeters\"],\"app.viewerToolbar.n3dMeasurements\":[\"3D measurements\"],\"app.viewerToolbar.noEdgeLines\":[\"No edge lines\"],\"app.viewerToolbar.off\":[\"Off\"],\"app.viewerToolbar.on\":[\"On\"],\"app.viewerToolbar.orthographic\":[\"Orthographic\"],\"app.viewerToolbar.perspective\":[\"Perspective\"],\"app.viewerToolbar.preview\":[\"Preview\"],\"app.viewerToolbar.previewMode\":[\"Preview mode\"],\"app.viewerToolbar.render\":[\"Render\"],\"app.viewerToolbar.rendered\":[\"Rendered\"],\"app.viewerToolbar.roomLabels\":[\"Room labels\"],\"app.viewerToolbar.sceneTheme\":[\"Scene theme\"],\"app.viewerToolbar.shadows\":[\"Shadows\"],\"app.viewerToolbar.singleWallAxis\":[\"Single wall axis\"],\"app.viewerToolbar.soft\":[\"Soft\"],\"app.viewerToolbar.solid\":[\"Solid\"],\"app.viewerToolbar.solo\":[\"Solo\"],\"app.viewerToolbar.stack\":[\"Stack\"],\"app.viewerToolbar.stairAnnotations\":[\"Stair annotations\"],\"app.viewerToolbar.strong\":[\"Strong\"],\"app.viewerToolbar.structuralCoreFace\":[\"Structural core face\"],\"app.viewerToolbar.structuralGridsColumnCenters\":[\"Structural grids & column centers\"],\"app.viewerToolbar.translucent\":[\"Translucent\"],\"app.viewerToolbar.units\":[\"Units\"],\"app.viewerToolbar.walkthrough\":[\"Walkthrough\"],\"app.viewerToolbar.wallCenterline\":[\"Wall centerline\"],\"app.viewerToolbar.wallDimensions\":[\"Wall dimensions\"],\"app.viewerToolbar.wallsLabel\":[\"Walls: \",[\"label\"]],\"core.level.basement\":[\"Basement\"],\"core.level.basementNumber\":[\"Basement \",[\"number\"]],\"core.level.floorNumber\":[\"Floor \",[\"number\"]],\"core.level.groundFloor\":[\"Ground floor\"],\"editor.actionMenu.cameraActions.orbitLeft\":[\"Orbit Left\"],\"editor.actionMenu.cameraActions.orbitRight\":[\"Orbit Right\"],\"editor.actionMenu.cameraActions.topView\":[\"Top View\"],\"editor.actionMenu.controlModes.delete\":[\"Delete\"],\"editor.actionMenu.controlModes.select\":[\"Select\"],\"editor.actionMenu.followPascalPill.resumeFollowing\":[\"Resume following\"],\"editor.actionMenu.followPascalToggle.off\":[\"Follow Pascal: Off\"],\"editor.actionMenu.followPascalToggle.on\":[\"Follow Pascal: On\"],\"editor.actionMenu.furnishTools.appliance\":[\"Appliance\"],\"editor.actionMenu.furnishTools.bathroom\":[\"Bathroom\"],\"editor.actionMenu.furnishTools.furniture\":[\"Furniture\"],\"editor.actionMenu.furnishTools.kitchen\":[\"Kitchen\"],\"editor.actionMenu.furnishTools.outdoor\":[\"Outdoor\"],\"editor.actionMenu.measurementControl.angle\":[\"Angle\"],\"editor.actionMenu.measurementControl.angularDimension\":[\"Angular dimension\"],\"editor.actionMenu.measurementControl.arcLength\":[\"Arc length\"],\"editor.actionMenu.measurementControl.area\":[\"Area\"],\"editor.actionMenu.measurementControl.centerMark\":[\"Center mark\"],\"editor.actionMenu.measurementControl.chordDimension\":[\"Chord dimension\"],\"editor.actionMenu.measurementControl.continuousDimension\":[\"Continuous dimension\"],\"editor.actionMenu.measurementControl.coordinateDimensions\":[\"Coordinate dimensions\"],\"editor.actionMenu.measurementControl.diameterDimension\":[\"Diameter dimension\"],\"editor.actionMenu.measurementControl.distance\":[\"Distance\"],\"editor.actionMenu.measurementControl.floorPlan\":[\"Floor plan\"],\"editor.actionMenu.measurementControl.linearDimension\":[\"Linear dimension\"],\"editor.actionMenu.measurementControl.measureSelectedlabel\":[\"Measure: \",[\"selectedLabel\"]],\"editor.actionMenu.measurementControl.measurementOptions\":[\"Measurement options\"],\"editor.actionMenu.measurementControl.measurementType\":[\"Measurement type\"],\"editor.actionMenu.measurementControl.perimeter\":[\"Perimeter\"],\"editor.actionMenu.measurementControl.radiusDimension\":[\"Radius dimension\"],\"editor.actionMenu.measurementControl.smart\":[\"Smart\"],\"editor.actionMenu.measurementControl.volume\":[\"Volume\"],\"editor.actionMenu.pointAskButton.pointAndAsk\":[\"Point and ask\"],\"editor.actionMenu.pointAskButton.pointAndAskC\":[\"Point and ask (C)\"],\"editor.actionMenu.pointAskButton.pointAndAskWorksInThe\":[\"Point and ask works in the 3D view\"],\"editor.actionMenu.structureTools.ceiling\":[\"Ceiling\"],\"editor.actionMenu.structureTools.column\":[\"Column\"],\"editor.actionMenu.structureTools.door\":[\"Door\"],\"editor.actionMenu.structureTools.duct\":[\"Duct\"],\"editor.actionMenu.structureTools.ductFitting\":[\"Duct Fitting\"],\"editor.actionMenu.structureTools.dwvPipe\":[\"DWV Pipe\"],\"editor.actionMenu.structureTools.elevator\":[\"Elevator\"],\"editor.actionMenu.structureTools.fence\":[\"Fence\"],\"editor.actionMenu.structureTools.gableRoof\":[\"Gable Roof\"],\"editor.actionMenu.structureTools.hvacUnit\":[\"HVAC Unit\"],\"editor.actionMenu.structureTools.lineset\":[\"Lineset\"],\"editor.actionMenu.structureTools.liquidLine\":[\"Liquid Line\"],\"editor.actionMenu.structureTools.pipeFitting\":[\"Pipe Fitting\"],\"editor.actionMenu.structureTools.register\":[\"Register\"],\"editor.actionMenu.structureTools.shelf\":[\"Shelf\"],\"editor.actionMenu.structureTools.slab\":[\"Slab\"],\"editor.actionMenu.structureTools.spawnPoint\":[\"Spawn Point\"],\"editor.actionMenu.structureTools.stairs\":[\"Stairs\"],\"editor.actionMenu.structureTools.trap\":[\"Trap\"],\"editor.actionMenu.structureTools.wall\":[\"Wall\"],\"editor.actionMenu.structureTools.window\":[\"Window\"],\"editor.actionMenu.structureTools.zone\":[\"Zone\"],\"editor.actionMenu.viewToggles.deleteGuideImage\":[\"Delete guide image\"],\"editor.actionMenu.viewToggles.deleteScan\":[\"Delete scan\"],\"editor.actionMenu.viewToggles.guideCount\":[[\"count\",\"plural\",{\"one\":[\"#\",\" guide image on this level\"],\"other\":[\"#\",\" guide images on this level\"]}]],\"editor.actionMenu.viewToggles.guideImageNumber\":[\"Guide image \",[\"number\"]],\"editor.actionMenu.viewToggles.guideImageSettings\":[\"Guide image settings\"],\"editor.actionMenu.viewToggles.guideImages\":[\"Guide images\"],\"editor.actionMenu.viewToggles.guides\":[\"Guides\"],\"editor.actionMenu.viewToggles.guidesHidden\":[\"Guides: Hidden\"],\"editor.actionMenu.viewToggles.guidesVisible\":[\"Guides: Visible\"],\"editor.actionMenu.viewToggles.hideGuideImages\":[\"Hide guide images\"],\"editor.actionMenu.viewToggles.hideReferenceFloor\":[\"Hide reference floor\"],\"editor.actionMenu.viewToggles.hideScans\":[\"Hide scans\"],\"editor.actionMenu.viewToggles.levelsBelow\":[[\"count\"],\" below\"],\"editor.actionMenu.viewToggles.noLowerFloorAvailable\":[\"No lower floor available.\"],\"editor.actionMenu.viewToggles.opacity\":[\"Opacity\"],\"editor.actionMenu.viewToggles.referenceFloor\":[\"Reference floor\"],\"editor.actionMenu.viewToggles.referenceFloorSelectedlevelname\":[\"Reference floor: \",[\"selectedLevelName\"]],\"editor.actionMenu.viewToggles.referenceFloorSettings\":[\"Reference floor settings\"],\"editor.actionMenu.viewToggles.referenceSettings\":[\"Reference settings\"],\"editor.actionMenu.viewToggles.references\":[\"References\"],\"editor.actionMenu.viewToggles.referencesEmpty\":[\"Upload GLB meshes as scan references or blueprint images as guide references.\"],\"editor.actionMenu.viewToggles.referencesHidden\":[\"References: Hidden\"],\"editor.actionMenu.viewToggles.referencesVisible\":[\"References: Visible\"],\"editor.actionMenu.viewToggles.riserDiagram\":[\"Riser diagram\"],\"editor.actionMenu.viewToggles.scanCount\":[[\"count\",\"plural\",{\"one\":[\"#\",\" scan on this level\"],\"other\":[\"#\",\" scans on this level\"]}]],\"editor.actionMenu.viewToggles.scanNumber\":[\"Scan \",[\"number\"]],\"editor.actionMenu.viewToggles.scanSettings\":[\"Scan settings\"],\"editor.actionMenu.viewToggles.scans\":[\"Scans\"],\"editor.actionMenu.viewToggles.scansHidden\":[\"Scans: Hidden\"],\"editor.actionMenu.viewToggles.scansVisible\":[\"Scans: Visible\"],\"editor.actionMenu.viewToggles.showGuideImages\":[\"Show guide images\"],\"editor.actionMenu.viewToggles.showReferenceFloor\":[\"Show reference floor\"],\"editor.actionMenu.viewToggles.showScans\":[\"Show scans\"],\"editor.actionMenu.viewToggles.uploadScanOrGuideImage\":[\"Upload scan or guide image\"],\"editor.backToHome\":[\"Back to home\"],\"editor.buildPanel.advanced\":[\"Advanced\"],\"editor.buildPanel.rooms.hint\":[\"walls · floor · ceiling\"],\"editor.buildPanel.rooms.idle\":[\"Pick a shape to start. Every room brings its own walls, floor and ceiling.\"],\"editor.buildPanel.rooms.polygon.caption\":[[\"lead\"],\" then the first one again to close. For L-shapes and angled rooms.\"],\"editor.buildPanel.rooms.polygon.label\":[\"Polygon\"],\"editor.buildPanel.rooms.polygon.lead\":[\"Click each corner,\"],\"editor.buildPanel.rooms.polygon.title\":[\"Polygon room\"],\"editor.buildPanel.rooms.rectangle.caption\":[[\"lead\"],\" on the grid. Walls, floor and ceiling are created together.\"],\"editor.buildPanel.rooms.rectangle.label\":[\"Rectangle\"],\"editor.buildPanel.rooms.rectangle.lead\":[\"Click two corners\"],\"editor.buildPanel.rooms.rectangle.title\":[\"Rectangle room\"],\"editor.buildPanel.rooms.title\":[\"Rooms\"],\"editor.buildPanel.rooms.walls.caption\":[[\"lead\"],\" Close a loop and it becomes a room; leave it open for partitions.\"],\"editor.buildPanel.rooms.walls.label\":[\"Walls\"],\"editor.buildPanel.rooms.walls.lead\":[\"Draw one wall at a time.\"],\"editor.buildPanel.rooms.walls.title\":[\"Walls\"],\"editor.cameraControlsHint\":[\"Camera controls hint\"],\"editor.cameraHint.pan\":[\"Pan\"],\"editor.cameraHint.rotate\":[\"Rotate\"],\"editor.cameraHint.zoom\":[\"Zoom\"],\"editor.dismiss\":[\"Dismiss\"],\"editor.dismissCameraControlsHint\":[\"Dismiss camera controls hint\"],\"editor.expandSidebar\":[\"Expand sidebar\"],\"editor.floatingActionMenu.axis\":[\"Axis\"],\"editor.floatingActionMenu.axis2\":[\"⌥ axis\"],\"editor.floatingActionMenu.noEquipment\":[\"⚠ no equipment\"],\"editor.floatingActionMenu.rTRotate\":[\"R/T rotate\"],\"editor.floatingActionMenu.registerCount\":[[\"count\",\"plural\",{\"one\":[\"#\",\" register\"],\"other\":[\"#\",\" registers\"]}]],\"editor.floatingActionMenu.runCount\":[[\"count\",\"plural\",{\"one\":[\"#\",\" run\"],\"other\":[\"#\",\" runs\"]}]],\"editor.floatingActionMenu.system\":[\"System\"],\"editor.helpers.buildingHelper.cancel\":[\"Cancel\"],\"editor.helpers.buildingHelper.placeBuilding\":[\"Place building\"],\"editor.helpers.buildingHelper.rotate\":[\"Rotate\"],\"editor.helpers.contextualHelperPanel.cancelPlacement\":[\"Cancel placement\"],\"editor.helpers.contextualHelperPanel.continuationClickOrPressCTo\":[\"Continuation — click or press C to cycle\"],\"editor.helpers.contextualHelperPanel.continuationLabel\":[\"Continuation: \",[\"label\"]],\"editor.helpers.contextualHelperPanel.dragToDrawFence\":[\"Drag to draw fence\"],\"editor.helpers.contextualHelperPanel.eraseScope\":[\"Erase: \",[\"scope\"]],\"editor.helpers.contextualHelperPanel.eraseScopeClickOrPressShift\":[\"Erase scope — click or press Shift to cycle\"],\"editor.helpers.contextualHelperPanel.eraseScopeLabel\":[\"Erase scope: \",[\"scope\"]],\"editor.helpers.contextualHelperPanel.fenceTypeClickOrPressT\":[\"Fence type — click or press T to switch between straight, curved and freehand\"],\"editor.helpers.contextualHelperPanel.fewerShortcuts\":[\"Fewer shortcuts\"],\"editor.helpers.contextualHelperPanel.finishCurveOrDoubleClick\":[\"Finish curve (or double-click)\"],\"editor.helpers.contextualHelperPanel.gridLength\":[\"Grid: \",[\"length\"]],\"editor.helpers.contextualHelperPanel.gridStepClickOrTapCtrl\":[\"Grid step — click or tap Ctrl to cycle\"],\"editor.helpers.contextualHelperPanel.gridStepLength\":[\"Grid step: \",[\"length\"]],\"editor.helpers.contextualHelperPanel.hoverAPaintedSurfaceToErase\":[\"Hover a painted surface to erase\"],\"editor.helpers.contextualHelperPanel.hoverASurfaceToPaint\":[\"Hover a surface to paint\"],\"editor.helpers.contextualHelperPanel.hoverASurfaceToPickIts\":[\"Hover a surface to pick its material\"],\"editor.helpers.contextualHelperPanel.moreShortcuts\":[\"More shortcuts\"],\"editor.helpers.contextualHelperPanel.paintScope\":[\"Paint: \",[\"scope\"]],\"editor.helpers.contextualHelperPanel.paintScopeClickOrPressShift\":[\"Paint scope — click or press Shift to cycle\"],\"editor.helpers.contextualHelperPanel.paintScopeLabel\":[\"Paint scope: \",[\"scope\"]],\"editor.helpers.contextualHelperPanel.pickScope\":[\"Pick: \",[\"scope\"]],\"editor.helpers.contextualHelperPanel.placeGateOnAFence\":[\"Place gate on a fence\"],\"editor.helpers.contextualHelperPanel.placePassageOnAFence\":[\"Place passage on a fence\"],\"editor.helpers.contextualHelperPanel.selectAMaterialToPaint\":[\"Select a material to paint\"],\"editor.helpers.contextualHelperPanel.snappingAngles\":[\"Snapping: Angles\"],\"editor.helpers.contextualHelperPanel.snappingGrid\":[\"Snapping: Grid\"],\"editor.helpers.contextualHelperPanel.snappingLines\":[\"Snapping: Lines\"],\"editor.helpers.contextualHelperPanel.snappingModeClickOrPressShift\":[\"Snapping mode — click or press Shift to cycle\"],\"editor.helpers.contextualHelperPanel.snappingOff\":[\"Snapping: Off\"],\"editor.helpers.contextualHelperPanel.straightContinuationIsUnavailableForCurved\":[\"Straight continuation is unavailable for curved or freehand fences\"],\"editor.helpers.contextualHelperPanel.straightContinuous\":[\"Straight: Continuous\"],\"editor.helpers.contextualHelperPanel.straightFenceContinuationClickOrPress\":[\"Straight fence continuation — click or press C to toggle\"],\"editor.helpers.contextualHelperPanel.straightSingle\":[\"Straight: Single\"],\"editor.helpers.helperManager.addPoint\":[\"Add point\"],\"editor.helpers.helperManager.addPointClickTheFirstTo\":[\"Add point · click the first to close\"],\"editor.helpers.helperManager.brushSize\":[\"Brush size\"],\"editor.helpers.helperManager.cancel\":[\"Cancel\"],\"editor.helpers.helperManager.cancelPicking\":[\"Cancel picking\"],\"editor.helpers.helperManager.cancelStroke\":[\"Cancel stroke\"],\"editor.helpers.helperManager.done\":[\"Done\"],\"editor.helpers.helperManager.drawTheMezzanine\":[\"Draw the mezzanine\"],\"editor.helpers.helperManager.drawTheOpening\":[\"Draw the opening\"],\"editor.helpers.helperManager.drawTheTerrace\":[\"Draw the terrace\"],\"editor.helpers.helperManager.exitSmartMeasure\":[\"Exit smart measure\"],\"editor.helpers.helperManager.finish\":[\"Finish\"],\"editor.helpers.helperManager.finishAtTheEdge\":[\"Finish at the edge\"],\"editor.helpers.helperManager.freeMove\":[\"Free move\"],\"editor.helpers.helperManager.freeMoveSlideDoorsAndWindows\":[\"Free move · slide doors and windows\"],\"editor.helpers.helperManager.holdToPickAMaterial\":[\"Hold to pick a material\"],\"editor.helpers.helperManager.inspectSurfaceDimensions\":[\"Inspect surface dimensions\"],\"editor.helpers.helperManager.paintWithThisMaterial\":[\"Paint with this material\"],\"editor.helpers.helperManager.pickTargetHeight\":[\"Pick target height\"],\"editor.helpers.helperManager.pinMeasurementLens\":[\"Pin measurement lens\"],\"editor.helpers.helperManager.place\":[\"Place\"],\"editor.helpers.helperManager.placeInsideTheRoom\":[\"Place inside the room\"],\"editor.helpers.helperManager.pressAnywhereDragToTheOpposite\":[\"Press anywhere, drag to the opposite corner\"],\"editor.helpers.helperManager.raiseOrLower\":[\"Raise or lower\"],\"editor.helpers.helperManager.removeAPaintedPartOrReset\":[\"Remove a painted part, or reset a surface\"],\"editor.helpers.helperManager.removeLastPoint\":[\"Remove last point\"],\"editor.helpers.helperManager.resize\":[\"Resize\"],\"editor.helpers.helperManager.rotate45\":[\"Rotate ±45°\"],\"editor.helpers.helperManager.rotateTheSelection45\":[\"Rotate the selection ±45°\"],\"editor.helpers.helperManager.setOneCornerThenTheOpposite\":[\"Set one corner, then the opposite\"],\"editor.helpers.itemHelper.cancel\":[\"Cancel\"],\"editor.helpers.itemHelper.forcePlace\":[\"Force place\"],\"editor.helpers.itemHelper.place\":[\"Place\"],\"editor.helpers.itemHelper.rotate\":[\"Rotate\"],\"editor.helpers.registeredToolHelper.guidedConstraintsBypassed\":[\"Guided constraints bypassed\"],\"editor.lib.contextualHelp.addOrRemoveObjectsFromThe\":[\"Add or remove objects from the selection\"],\"editor.lib.contextualHelp.adjustOneSideSCornerRadius\":[\"Adjust one side’s corner radius\"],\"editor.lib.contextualHelp.clearTheSelectionOrClickOutside\":[\"Clear the selection (or click outside)\"],\"editor.lib.contextualHelp.clickAHandleDotToShow\":[\"Click a handle dot to show move arrows\"],\"editor.lib.contextualHelp.clickOrDragTheSelectionTo\":[\"Click or drag the selection to move it as one\"],\"editor.lib.contextualHelp.clickTheHandleDotToShow\":[\"Click the handle dot to show move + rotate handles\"],\"editor.lib.contextualHelp.detachTheJointWhileDraggingAn\":[\"Detach the joint while dragging an arrow\"],\"editor.lib.contextualHelp.dragLeftOrRightToRotate\":[\"Drag left or right to rotate selected object\"],\"editor.lib.contextualHelp.dragSelectedMovableObject\":[\"Drag selected movable object\"],\"editor.lib.contextualHelp.groupSelectionSessionOnly\":[\"Group selection (session only)\"],\"editor.lib.contextualHelp.holdToRotateFreely\":[\"Hold to rotate freely\"],\"editor.lib.contextualHelp.rotate45\":[\"Rotate ±45°\"],\"editor.lib.contextualHelp.rotateTheSelection45\":[\"Rotate the selection ±45°\"],\"editor.lib.contextualHelp.rotatingFreely\":[\"Rotating freely (no angle step)\"],\"editor.lib.contextualHelp.switchTheRotationAxisYX\":[\"Switch the rotation axis (Y → X → Z)\"],\"editor.lib.contextualHelp.ungroupSessionSelection\":[\"Ungroup session selection\"],\"editor.lib.continuation.continuous\":[\"Continuous\"],\"editor.lib.continuation.continuousCanopy\":[\"Continuous canopy\"],\"editor.lib.continuation.continuousRun\":[\"Continuous run\"],\"editor.lib.continuation.curvedFence\":[\"Curved fence\"],\"editor.lib.continuation.freehandFence\":[\"Freehand fence\"],\"editor.lib.continuation.placeMultiple\":[\"Place multiple\"],\"editor.lib.continuation.placeOnce\":[\"Place once\"],\"editor.lib.continuation.polygonRoom\":[\"Polygon room\"],\"editor.lib.continuation.rectangleRoom\":[\"Rectangle room\"],\"editor.lib.continuation.singleCabinet\":[\"Single cabinet\"],\"editor.lib.continuation.singleCanopy\":[\"Single canopy\"],\"editor.lib.continuation.singleFence\":[\"Single fence\"],\"editor.lib.continuation.walls\":[\"Walls\"],\"editor.lib.hudTitle.cutOpening\":[\"Cut opening\"],\"editor.lib.hudTitle.divideRoom\":[\"Divide room\"],\"editor.lib.hudTitle.editKind\":[\"Edit \",[\"kind\"]],\"editor.lib.hudTitle.erase\":[\"Erase\"],\"editor.lib.hudTitle.levelTerrain\":[\"Level terrain\"],\"editor.lib.hudTitle.lowerTerrain\":[\"Lower terrain\"],\"editor.lib.hudTitle.mezzanine\":[\"Mezzanine\"],\"editor.lib.hudTitle.moveKind\":[\"Move \",[\"kind\"]],\"editor.lib.hudTitle.moveRoom\":[\"Move room\"],\"editor.lib.hudTitle.moveSelection\":[\"Move selection\"],\"editor.lib.hudTitle.paint\":[\"Paint\"],\"editor.lib.hudTitle.paintARectangle\":[\"Paint a rectangle\"],\"editor.lib.hudTitle.paintAShape\":[\"Paint a shape\"],\"editor.lib.hudTitle.pickMaterial\":[\"Pick material\"],\"editor.lib.hudTitle.raiseTerrain\":[\"Raise terrain\"],\"editor.lib.hudTitle.resize\":[\"Resize\"],\"editor.lib.hudTitle.rotate\":[\"Rotate\"],\"editor.lib.hudTitle.select\":[\"Select\"],\"editor.lib.hudTitle.smartMeasure\":[\"Smart measure\"],\"editor.lib.hudTitle.smoothTerrain\":[\"Smooth terrain\"],\"editor.lib.hudTitle.splitKind\":[\"Split \",[\"kind\"]],\"editor.lib.hudTitle.terrace\":[\"Terrace\"],\"editor.lib.wallDrawVariant.polygonRoom\":[\"Polygon room\"],\"editor.lib.wallDrawVariant.rectangleRoom\":[\"Rectangle room\"],\"editor.lib.wallDrawVariant.walls\":[\"Walls\"],\"editor.reloadEditor\":[\"Reload editor\"],\"editor.theEditorSceneFailedToRender\":[\"The editor scene failed to render\"],\"editor.toolHint.aCurtainWallTakesNoCorner.1qxjv5i\":[\"A curtain wall takes no corner window\"],\"editor.toolHint.aCurvedWallTakesNoCorner.1vdnaw5\":[\"A curved wall takes no corner window\"],\"editor.toolHint.addACornerClickTheFirst.o4r67t\":[\"Add a corner · click the first to close\"],\"editor.toolHint.anotherOpeningIsInTheWay.11l9dd0\":[\"Another opening is in the way at the corner\"],\"editor.toolHint.autoHangers.10554ka\":[\"Auto hangers\"],\"editor.toolHint.autoHangersClickOrPressH.rwa3ka\":[\"Auto hangers - click or press H to toggle\"],\"editor.toolHint.autoHangersOff.7yx01x\":[\"Auto hangers: Off\"],\"editor.toolHint.autoHangersOn.10b1umh\":[\"Auto hangers: On\"],\"editor.toolHint.bypassSnapping.w5lmdv\":[\"Bypass snapping\"],\"editor.toolHint.cancel.ew9em3\":[\"Cancel\"],\"editor.toolHint.cancelMove.lvp31c\":[\"Cancel move\"],\"editor.toolHint.cancelRunExit.zqjf3h\":[\"Cancel run / exit\"],\"editor.toolHint.cancelStartPoint.1xbq2lh\":[\"Cancel start point\"],\"editor.toolHint.cornerWindow.1avkzpo\":[\"Corner window\"],\"editor.toolHint.cuts.1y0axps\":[\"Cuts\"],\"editor.toolHint.cutsValue.ouzhvb\":[\"Cuts: \",[\"value\"]],\"editor.toolHint.cutsValueEven.1ngsz3\":[\"Cuts: \",[\"value\"],\", even\"],\"editor.toolHint.cycleMonoGableButterfly.1poga3m\":[\"Cycle mono / gable / butterfly\"],\"editor.toolHint.cycleSnappingMode.1ct0gn6\":[\"Cycle snapping mode\"],\"editor.toolHint.doorStyleClickOrPressL.33pe65\":[\"Door style — click or press L to cycle\"],\"editor.toolHint.doorTypeClickOrPressO.1hhh8gt\":[\"Door type — click or press O to cycle\"],\"editor.toolHint.dropDownspoutFromOutlet.1k4h1m4\":[\"Drop downspout from outlet\"],\"editor.toolHint.ductDiameterDownUp.1wdz5vq\":[\"Duct diameter down / up\"],\"editor.toolHint.endRunCancel.59dh2w\":[\"End run / cancel\"],\"editor.toolHint.exit.engmg5\":[\"Exit\"],\"editor.toolHint.exitDrawing.9noxyb\":[\"Exit drawing\"],\"editor.toolHint.finishAndContinue.1gpfsks\":[\"Finish and continue\"],\"editor.toolHint.finishCeiling.1c1lfel\":[\"Finish ceiling\"],\"editor.toolHint.finishGridAxis.1wvrfhr\":[\"Finish grid axis\"],\"editor.toolHint.finishMeasurement.1e4gv16\":[\"Finish measurement\"],\"editor.toolHint.finishMultiPointWitnesses.8wzskz\":[\"Finish multi-point witnesses\"],\"editor.toolHint.finishSlab.xmnm8e\":[\"Finish slab\"],\"editor.toolHint.flipSide.172xku9\":[\"Flip side\"],\"editor.toolHint.followTraceALineset.mgquwe\":[\"Follow: trace a lineset\"],\"editor.toolHint.forcePlace.1hq1nr\":[\"Force place\"],\"editor.toolHint.freePlacement.1nztdac\":[\"Free placement\"],\"editor.toolHint.goVerticalClickToPlace.dg8g6m\":[\"Go vertical ↕, click to place\"],\"editor.toolHint.highlightOutlet.65hoq8\":[\"Highlight outlet\"],\"editor.toolHint.joinAsACornerWindow.jvdp4j\":[\"Join as a corner window\"],\"editor.toolHint.key.altDrag.ai3wn9\":[\"Alt + drag\"],\"editor.toolHint.key.backspace.qy6qx8\":[\"Backspace\"],\"editor.toolHint.key.click.m8sun\":[\"Click\"],\"editor.toolHint.key.clickAgain.190ws9j\":[\"Click again\"],\"editor.toolHint.key.command.1j2mkia\":[\"Command\"],\"editor.toolHint.key.control.10fbl8e\":[\"Control\"],\"editor.toolHint.key.delete.oay2cq\":[\"Delete\"],\"editor.toolHint.key.doubleClick.vlma6o\":[\"Double click\"],\"editor.toolHint.key.drag.8pwtpf\":[\"Drag\"],\"editor.toolHint.key.enter.1ctpui5\":[\"Enter\"],\"editor.toolHint.key.hover.6xw79p\":[\"Hover\"],\"editor.toolHint.key.hoverADuctEnd.19axr3b\":[\"Hover a duct end\"],\"editor.toolHint.key.hoverAPipeEnd.1jbum5f\":[\"Hover a pipe end\"],\"editor.toolHint.key.hoverGutter.1dwcsno\":[\"Hover gutter\"],\"editor.toolHint.key.leftClick.s4gwfc\":[\"Left click\"],\"editor.toolHint.key.middleClick.1jbaan4\":[\"Middle click\"],\"editor.toolHint.key.rShiftR.13bnobh\":[\"R / Shift+R\"],\"editor.toolHint.key.rightClick.1ovld0h\":[\"Right click\"],\"editor.toolHint.key.scroll.ai6wr0\":[\"Scroll\"],\"editor.toolHint.key.scrollWheel.18j0ix7\":[\"Scroll wheel\"],\"editor.toolHint.key.space.1hrh82t\":[\"Space\"],\"editor.toolHint.key.tab.1xsal0s\":[\"Tab\"],\"editor.toolHint.mountFloorCeilingWall.32dxpv\":[\"Mount: floor / ceiling / wall\"],\"editor.toolHint.noRoomForTheMatchingWindow.1755948\":[\"No room for the matching window on the other wall\"],\"editor.toolHint.noWallMeetsHere.19n99yc\":[\"No wall meets here\"],\"editor.toolHint.numberOfCutsScrollOrClick.1kqe84b\":[\"Number of cuts — scroll or click to change\"],\"editor.toolHint.pickWitnessPoint.k3hgh1\":[\"Pick witness point\"],\"editor.toolHint.pipeSizeDownUp.wp04og\":[\"Pipe size down / up\"],\"editor.toolHint.placeAndContinue.qfwkrq\":[\"Place and continue\"],\"editor.toolHint.placeBlock.1aylwrx\":[\"Place block\"],\"editor.toolHint.placeBoxVentOnRoof.kf88e5\":[\"Place box vent on roof\"],\"editor.toolHint.placeCabinet.b0ouyk\":[\"Place cabinet\"],\"editor.toolHint.placeCanopyOrSetTheNext.12l7zf8\":[\"Place canopy or set the next run point\"],\"editor.toolHint.placeChimneyOnRoof.19dbqu\":[\"Place chimney on roof\"],\"editor.toolHint.placeColumn.1w2vq86\":[\"Place column\"],\"editor.toolHint.placeCupolaOnRoof.ofx3bn\":[\"Place cupola on roof\"],\"editor.toolHint.placeDimensionLineWhenNeeded.bjw2cj\":[\"Place dimension line when needed\"],\"editor.toolHint.placeDoorOnWall.1jwadf\":[\"Place door on wall\"],\"editor.toolHint.placeDormerOnRoof.1w518a6\":[\"Place dormer on roof\"],\"editor.toolHint.placeElevator.1f65zva\":[\"Place elevator\"],\"editor.toolHint.placeEyebrowVentOnRoof.1h1tqxn\":[\"Place eyebrow vent on roof\"],\"editor.toolHint.placeFitting.1pmx3vn\":[\"Place fitting\"],\"editor.toolHint.placeGutterOnRoofEave.llwzf9\":[\"Place gutter on roof eave\"],\"editor.toolHint.placeItLockedTo45.16e4csk\":[\"Place it (locked to 45°)\"],\"editor.toolHint.placeItem.teynf\":[\"Place item\"],\"editor.toolHint.placeMeasurementPoint.bsatli\":[\"Place measurement point\"],\"editor.toolHint.placeOnAFence.1dptstr\":[\"Place on a fence\"],\"editor.toolHint.placeRegister.1uebycd\":[\"Place register\"],\"editor.toolHint.placeRidgeVentOnRoof.2tpd8r\":[\"Place ridge vent on roof\"],\"editor.toolHint.placeShelf.y4l3iw\":[\"Place shelf\"],\"editor.toolHint.placeSkylightOnRoof.e215pe\":[\"Place skylight on roof\"],\"editor.toolHint.placeSolarPanelArrayOnRoof.kk11fn\":[\"Place solar panel array on roof\"],\"editor.toolHint.placeSpawnPoint.205o25\":[\"Place spawn point\"],\"editor.toolHint.placeStairs.zwxxu2\":[\"Place stairs\"],\"editor.toolHint.placeTrap.1gxemn3\":[\"Place trap\"],\"editor.toolHint.placeTurbineVentOnRoof.1iqeluf\":[\"Place turbine vent on roof\"],\"editor.toolHint.placeUnit.8zkx4q\":[\"Place unit\"],\"editor.toolHint.placeWindowOnWall.1k3qnfb\":[\"Place window on wall\"],\"editor.toolHint.placeWithoutTheCornerSnap.1nifqew\":[\"Place without the corner snap\"],\"editor.toolHint.placement.13lcvts\":[\"Placement\"],\"editor.toolHint.placementAuto.1caa52d\":[\"Placement: Auto\"],\"editor.toolHint.placementGround.1ruz145\":[\"Placement: Ground\"],\"editor.toolHint.placementRoof.renkw8\":[\"Placement: Roof\"],\"editor.toolHint.placementSurfaceClickOrPressP.w56h19\":[\"Placement surface - click or press P to cycle\"],\"editor.toolHint.placementType.1mdpl60\":[\"Placement type\"],\"editor.toolHint.placementTypeClickOrPressI.10cgxh2\":[\"Placement type — click or press I to toggle\"],\"editor.toolHint.removeLastPoint.2dmdcx\":[\"Remove last point\"],\"editor.toolHint.removeLastWitness.1b6vvzw\":[\"Remove last witness\"],\"editor.toolHint.rotate.1thqa0a\":[\"Rotate\"],\"editor.toolHint.rotate45.9zq68u\":[\"Rotate ±45°\"],\"editor.toolHint.rotate45FloorCeiling.m9t57d\":[\"Rotate ±45° (floor / ceiling)\"],\"editor.toolHint.rotateGhost15.rsa52c\":[\"Rotate ghost ±15°\"],\"editor.toolHint.rotateOrFlipTheRunSide.t5ior7\":[\"Rotate or flip the run side\"],\"editor.toolHint.rotateRoofDirection90.tvbji2\":[\"Rotate roof direction 90°\"],\"editor.toolHint.rotateSpawnPoint.1opcuu7\":[\"Rotate spawn point\"],\"editor.toolHint.roundRectangularOval.e4nh6x\":[\"Round / rectangular / oval\"],\"editor.toolHint.setFenceStartEnd.1phbwsq\":[\"Set fence start / end\"],\"editor.toolHint.setOneCornerThenTheOpposite.8tsl49\":[\"Set one corner, then the opposite\"],\"editor.toolHint.setRoofFootprint.p50n0o\":[\"Set roof footprint\"],\"editor.toolHint.setWallStartEnd.1r8ubcx\":[\"Set wall start / end\"],\"editor.toolHint.slopeLevel.ftqp67\":[\"Slope / level\"],\"editor.toolHint.snapOntoTheRun.86yhmp\":[\"Snap onto the run\"],\"editor.toolHint.splitAtTheMarks.x5tpdd\":[\"Split at the marks\"],\"editor.toolHint.startGridAxis.k92yza\":[\"Start grid axis\"],\"editor.toolHint.startLineset.23q8dh\":[\"Start lineset\"],\"editor.toolHint.startLiquidLine.1rlxsgd\":[\"Start liquid line\"],\"editor.toolHint.startRun.r6fc5u\":[\"Start run\"],\"editor.toolHint.startSegment.rolym6\":[\"Start segment\"],\"editor.toolHint.stepBackOrCancel.zbfdkn\":[\"Step back or cancel\"],\"editor.toolHint.style.nf3vcm\":[\"Style\"],\"editor.toolHint.styleBarn.k9n1x\":[\"Style: Barn\"],\"editor.toolHint.styleCasement.ziklec\":[\"Style: Casement\"],\"editor.toolHint.styleCraftsman.52e6a9\":[\"Style: Craftsman\"],\"editor.toolHint.styleDoubleHung.1lg8pkg\":[\"Style: Double-hung\"],\"editor.toolHint.styleFrench.1ue3j64\":[\"Style: French\"],\"editor.toolHint.styleGlass.qudnb4\":[\"Style: Glass\"],\"editor.toolHint.styleGrid.1vuq4po\":[\"Style: Grid\"],\"editor.toolHint.styleHalfLouvered.13b1few\":[\"Style: Half-louvered\"],\"editor.toolHint.styleHorizontalBands.12ethxk\":[\"Style: Horizontal bands\"],\"editor.toolHint.styleModern.1fh8hhn\":[\"Style: Modern\"],\"editor.toolHint.stylePanel.922jze\":[\"Style: Panel\"],\"editor.toolHint.stylePaneledGlass.17a17en\":[\"Style: Paneled glass\"],\"editor.toolHint.styleShaker.49z17k\":[\"Style: Shaker\"],\"editor.toolHint.styleSingle.6f3cm0\":[\"Style: Single\"],\"editor.toolHint.styleSixPanel.u49laj\":[\"Style: Six-panel\"],\"editor.toolHint.styleSliding.q81s0i\":[\"Style: Sliding\"],\"editor.toolHint.styleTallGrid.1eotg3x\":[\"Style: Tall grid\"],\"editor.toolHint.styleTransom.kb9bh6\":[\"Style: Transom\"],\"editor.toolHint.styleTripleHung.pxnqi3\":[\"Style: Triple-hung\"],\"editor.toolHint.styleWideGrid.12n27et\":[\"Style: Wide grid\"],\"editor.toolHint.switchRotationAxisYXZ.15lohm6\":[\"Switch rotation axis (Y → X → Z)\"],\"editor.toolHint.theWallsMeetAtTooSharp.kh3wi3\":[\"The walls meet at too sharp or too flat an angle\"],\"editor.toolHint.theWindowWaitingThereIsTaller.1tqwez4\":[\"The window waiting there is taller than this wall\"],\"editor.toolHint.threeOrMoreWallsMeetHere.rgifif\":[\"Three or more walls meet here\"],\"editor.toolHint.traceCeilingOutline.1b639wv\":[\"Trace ceiling outline\"],\"editor.toolHint.traceSlabOutline.z0j2lc\":[\"Trace slab outline\"],\"editor.toolHint.type.1m2zofh\":[\"Type\"],\"editor.toolHint.typeAwning.1cj59al\":[\"Type: Awning\"],\"editor.toolHint.typeBarn.sbnygq\":[\"Type: Barn\"],\"editor.toolHint.typeBay.1200hc1\":[\"Type: Bay\"],\"editor.toolHint.typeBow.14s2t9p\":[\"Type: Bow\"],\"editor.toolHint.typeCabinet.1r68je5\":[\"Type: Cabinet\"],\"editor.toolHint.typeCasement.176uo9j\":[\"Type: Casement\"],\"editor.toolHint.typeDouble.af7w4i\":[\"Type: Double\"],\"editor.toolHint.typeDoubleHung.t482fu\":[\"Type: Double Hung\"],\"editor.toolHint.typeFixed.v1cjez\":[\"Type: Fixed\"],\"editor.toolHint.typeFolding.sxxyng\":[\"Type: Folding\"],\"editor.toolHint.typeFrench.1y57z1b\":[\"Type: French\"],\"editor.toolHint.typeHinged.1xrcfju\":[\"Type: Hinged\"],\"editor.toolHint.typeIsland.ufr3ce\":[\"Type: Island\"],\"editor.toolHint.typeLouvered.oxl1cz\":[\"Type: Louvered\"],\"editor.toolHint.typePocket.hc65x9\":[\"Type: Pocket\"],\"editor.toolHint.typeSingleHung.p53pyl\":[\"Type: Single Hung\"],\"editor.toolHint.typeSliding.nwmr3f\":[\"Type: Sliding\"],\"editor.toolHint.verticalStackClickToPlace.ijcn4q\":[\"Vertical stack ↕, click to place\"],\"editor.toolHint.wasteVent.1hvi3vj\":[\"Waste / vent\"],\"editor.toolHint.windowStyleClickOrPressL.ah7qm9\":[\"Window style — click or press L to cycle\"],\"editor.toolHint.windowTypeClickOrPressO.wv4x35\":[\"Window type — click or press O to cycle\"],\"editor.views.plugins\":[\"Plugins\"],\"editor.views.view2d\":[\"2D\"],\"editor.views.view3d\":[\"3D\"],\"editor.views.viewBar.auto\":[\"Auto\"],\"editor.views.viewBar.browsePlugins\":[\"Browse plugins\"],\"editor.views.viewBar.closeLabel\":[\"Close \",[\"label\"]],\"editor.views.viewBar.closeSplit\":[\"Close split (\\\\)\"],\"editor.views.viewBar.ground\":[\"Ground\"],\"editor.views.viewBar.groundSolid\":[[\"standing\",\"select\",{\"partly\":[\"Partly below grade · ground solid\"],\"below\":[\"Below grade · ground solid\"],\"other\":[\"Ground solid\"]}]],\"editor.views.viewBar.groundVeiled\":[[\"standing\",\"select\",{\"partly\":[\"Partly below grade · ground veiled\"],\"below\":[\"Below grade · ground veiled\"],\"other\":[\"Ground veiled\"]}]],\"editor.views.viewBar.keepTheGroundSolid\":[\"Keep the ground solid\"],\"editor.views.viewBar.moreViews\":[\"More views\"],\"editor.views.viewBar.paneViews\":[\"Pane \",[\"pane\"],\" views\"],\"editor.views.viewBar.pinLabel\":[\"Pin \",[\"label\"]],\"editor.views.viewBar.pinToTheViewBar\":[\"Pin to the view bar\"],\"editor.views.viewBar.solid\":[\"Solid\"],\"editor.views.viewBar.split\":[\"Split (\\\\)\"],\"editor.views.viewBar.split2\":[\"Split\"],\"editor.views.viewBar.swapPanes\":[\"Swap panes\"],\"editor.views.viewBar.unpinFromTheViewBar\":[\"Unpin from the view bar\"],\"editor.views.viewBar.unpinLabel\":[\"Unpin \",[\"label\"]],\"editor.views.viewBar.veilTheGroundOverALevel\":[\"Veil the ground over a level below grade\"],\"editor.views.viewBar.views\":[\"Views\"],\"editor.youCanRetryTheSceneOr\":[\"You can retry the scene or return home without reloading the whole app shell.\"],\"node.block.description\":[\"A topology-backed solid edited directly in the canvas.\"],\"node.block.label\":[\"Block\"],\"node.boxVent.description\":[\"Small louvered exhaust vent that sits on a roof slope.\"],\"node.boxVent.label\":[\"Box Vent\"],\"node.building.description\":[\"A building container holding one or more levels.\"],\"node.building.label\":[\"Building\"],\"node.cabinet.description\":[\"A configurable parametric base cabinet.\"],\"node.cabinet.label\":[\"Modular Cabinet\"],\"node.cabinetModule.description\":[\"An editable module inside a modular cabinet run.\"],\"node.cabinetModule.label\":[\"Cabinet Module\"],\"node.ceiling.description\":[\"A polygon-bounded ceiling surface that hosts ceiling-mounted items.\"],\"node.ceiling.label\":[\"Ceiling\"],\"node.chimney.description\":[\"Vertical masonry stack on a roof segment.\"],\"node.chimney.label\":[\"Chimney\"],\"node.column.description\":[\"A parametric column with configurable cross-section, base, and capital.\"],\"node.column.label\":[\"Column\"],\"node.constructionDimension.description\":[\"Associative linear, curved, circular, angular, or coordinate plan dimension.\"],\"node.constructionDimension.label\":[\"Construction Dimension\"],\"node.cupola.description\":[\"Louvered roof lantern with a dome or pyramid cap and optional finial.\"],\"node.cupola.label\":[\"Cupola\"],\"node.door.description\":[\"A door cut into a wall. Animated open/close state.\"],\"node.door.label\":[\"Door\"],\"node.dormer.description\":[\"House-shaped protrusion on a roof segment.\"],\"node.dormer.label\":[\"Dormer\"],\"node.downspout.description\":[\"Vertical drop pipe from a gutter outlet to the ground.\"],\"node.downspout.label\":[\"Downspout\"],\"node.ductFitting.description\":[\"Elbow, tee, reducer, or square-to-round transition connecting duct runs.\"],\"node.ductFitting.label\":[\"Duct Fitting\"],\"node.ductSegment.description\":[\"HVAC duct run — polyline of round, rect, or flat-oval sections.\"],\"node.ductSegment.label\":[\"Duct\"],\"node.ductTerminal.description\":[\"Duct terminal — supply register, ceiling diffuser, or return grille. Duct runs end at its collar.\"],\"node.ductTerminal.label\":[\"Register\"],\"node.elevator.description\":[\"A multi-level elevator shaft with configurable openings per level.\"],\"node.elevator.label\":[\"Elevator\"],\"node.eyebrowVent.description\":[\"Low curved lens-shaped roof vent with a louvered front.\"],\"node.eyebrowVent.label\":[\"Eyebrow Vent\"],\"node.fence.description\":[\"A straight or curved fence segment with configurable posts and infill.\"],\"node.fence.label\":[\"Fence\"],\"node.fenceGate.description\":[\"A gate hosted by a fence.\"],\"node.fenceGate.label\":[\"Gate\"],\"node.fenceOpening.description\":[\"An intentional opening in a fence.\"],\"node.fenceOpening.label\":[\"Open Passage\"],\"node.floorOpening.label\":[\"Floor opening\"],\"node.guide.description\":[\"A measurement / reference annotation (linear, area, or arc).\"],\"node.guide.label\":[\"Guide\"],\"node.gutter.description\":[\"Rain-water channel running along the eave of a roof segment.\"],\"node.gutter.label\":[\"Gutter\"],\"node.hvacEquipment.description\":[\"Furnace, air handler, or condenser — duct runs connect to its supply/return collars.\"],\"node.hvacEquipment.label\":[\"HVAC Unit\"],\"node.importedMesh.description\":[\"Geometry preserved from an imported model when no native Pascal shape exists.\"],\"node.importedMesh.label\":[\"Imported Mesh\"],\"node.item.description\":[\"A catalog-backed item (furniture, fixtures, decorations).\"],\"node.item.label\":[\"Item\"],\"node.leanToExtension.description\":[\"An attached mono-pitch or freestanding mono, gable, or butterfly canopy with managed structure and drainage.\"],\"node.leanToExtension.label\":[\"Canopy\"],\"node.level.description\":[\"A single floor of a building, holding walls / slabs / ceilings / items.\"],\"node.level.label\":[\"Level\"],\"node.lineset.description\":[\"Refrigerant lineset — copper suction + liquid pair joining a condenser to the indoor coil.\"],\"node.lineset.label\":[\"Lineset\"],\"node.liquidLine.description\":[\"Standalone refrigerant liquid line — a thin bare-copper run; Follow mode traces an existing lineset.\"],\"node.liquidLine.label\":[\"Liquid Line\"],\"node.measurement.description\":[\"A persistent distance, angle, area, perimeter, or volume annotation.\"],\"node.measurement.label\":[\"Measurement\"],\"node.pipeFitting.description\":[\"DWV joint — elbow bend, 45° wye, or sanitary tee.\"],\"node.pipeFitting.label\":[\"Pipe Fitting\"],\"node.pipeSegment.description\":[\"Drain / waste / vent pipe run — draw level or toggle a ¼″ per foot fall with S.\"],\"node.pipeSegment.label\":[\"DWV Pipe\"],\"node.pipeTrap.description\":[\"DWV P-trap — water seal on the waste line. The trap arm runs to the vent.\"],\"node.pipeTrap.label\":[\"Trap\"],\"node.proceduralItem.description\":[\"Experimental editable recipe\"],\"node.proceduralItem.label\":[\"Procedural item\"],\"node.ridgeVent.description\":[\"Ventilation strip running along the ridge of a roof segment.\"],\"node.ridgeVent.label\":[\"Ridge Vent\"],\"node.roof.description\":[\"A pitched / hip / gable roof composed of one or more segments.\"],\"node.roof.label\":[\"Roof\"],\"node.roofSegment.description\":[\"A single pitched plane of a parent roof.\"],\"node.roofSegment.label\":[\"Roof Segment\"],\"node.scan.description\":[\"A captured session with optional mesh, motion, media, and sensor data.\"],\"node.scan.label\":[\"Capture\"],\"node.separator.label\":[\"Separator\"],\"node.shelf.description\":[\"A configurable shelving unit. Items host on each row.\"],\"node.shelf.label\":[\"Shelf\"],\"node.site.description\":[\"The top-level container holding buildings, zones, and the property boundary.\"],\"node.site.label\":[\"Site\"],\"node.skylight.description\":[\"Framed glass opening on a roof segment.\"],\"node.skylight.label\":[\"Skylight\"],\"node.slab.description\":[\"A polygon-bounded floor surface that hosts items on top.\"],\"node.slab.label\":[\"Slab\"],\"node.solarPanel.description\":[\"Grid of photovoltaic panels mounted on a roof segment.\"],\"node.solarPanel.label\":[\"Solar Panel\"],\"node.spawn.description\":[\"Player or camera origin within a level. One per level.\"],\"node.spawn.label\":[\"Spawn Point\"],\"node.stair.description\":[\"A stair composed of one or more flights with configurable treads, risers, railings.\"],\"node.stair.label\":[\"Stair\"],\"node.stairSegment.description\":[\"A single flight of a parent stair.\"],\"node.stairSegment.label\":[\"Stair Segment\"],\"node.structuralGrid.description\":[\"Persistent construction grid axis with identification bubbles.\"],\"node.structuralGrid.label\":[\"Structural Grid\"],\"node.turbineVent.description\":[\"Wind-driven spinning whirlybird exhaust vent for a roof slope.\"],\"node.turbineVent.label\":[\"Turbine Vent\"],\"node.unit.description\":[\"A named group of zones forming one apartment, hotel room or commercial lot.\"],\"node.unit.label\":[\"Unit\"],\"node.wall.description\":[\"A straight or curved wall segment. Hosts doors, windows, lean-to extensions, and wall-mounted items.\"],\"node.wall.label\":[\"Wall\"],\"node.window.description\":[\"A window cut into a wall. Animated open/close for opening windows.\"],\"node.window.label\":[\"Window\"],\"node.zone.description\":[\"A polygonal site zone (lawn, water, paving) with a TSL gradient material.\"],\"node.zone.label\":[\"Zone\"],\"viewer.camera.orbitLeft\":[\"Orbit left\"],\"viewer.camera.orbitRight\":[\"Orbit right\"],\"viewer.camera.topView\":[\"Top view\"],\"viewer.common.off\":[\"Off\"],\"viewer.common.on\":[\"On\"],\"viewer.display.camera\":[\"Camera\"],\"viewer.display.colored\":[\"Colored\"],\"viewer.display.colors\":[\"Colors\"],\"viewer.display.edges.off\":[\"Off\"],\"viewer.display.edges.offDetail\":[\"No edge lines\"],\"viewer.display.edges.soft\":[\"Soft\"],\"viewer.display.edges.softDetail\":[\"Faint outline of major creases\"],\"viewer.display.edges.strong\":[\"Strong\"],\"viewer.display.edges.strongDetail\":[\"Crisp, opaque edge lines\"],\"viewer.display.edges.title\":[\"Edges\"],\"viewer.display.monochrome\":[\"Monochrome\"],\"viewer.display.orthographic\":[\"Orthographic\"],\"viewer.display.perspective\":[\"Perspective\"],\"viewer.display.render.rendered\":[\"Rendered\"],\"viewer.display.render.renderedDetail\":[\"Full ambient occlusion\"],\"viewer.display.render.solid\":[\"Solid\"],\"viewer.display.render.solidDetail\":[\"Flat and fast — no ambient occlusion\"],\"viewer.display.render.title\":[\"Render\"],\"viewer.display.shadows\":[\"Shadows\"],\"viewer.display.title\":[\"Display settings\"],\"viewer.floorplan.alignNorth\":[\"Align view to north\"],\"viewer.floorplan.empty\":[\"No floor plans are available for this scene.\"],\"viewer.floorplan.fit\":[\"Fit floor plan\"],\"viewer.floorplan.floor\":[\"Floor\"],\"viewer.floorplan.floorPlan\":[\"Floor plan\"],\"viewer.floorplan.viewLabel\":[[\"floor\"],\" 2D view\"],\"viewer.floorplan.zoomIn\":[\"Zoom in\"],\"viewer.floorplan.zoomOut\":[\"Zoom out\"],\"viewer.header.back\":[\"Back\"],\"viewer.header.levels\":[\"Levels\"],\"viewer.header.rooms\":[\"Rooms\"],\"viewer.header.selection\":[\"Selection\"],\"viewer.header.units\":[\"Units\"],\"viewer.header.untitled\":[\"Untitled\"],\"viewer.header.zones\":[\"Zones\"],\"viewer.levels.exploded\":[\"Exploded\"],\"viewer.levels.label\":[\"Levels: \",[\"mode\"]],\"viewer.levels.manual\":[\"Manual\"],\"viewer.levels.solo\":[\"Solo\"],\"viewer.levels.stacked\":[\"Stacked\"],\"viewer.stage.layout\":[\"Viewer layout\"],\"viewer.stage.split\":[\"Split\"],\"viewer.theme.blueprint\":[\"Blueprint\"],\"viewer.theme.mediterranean\":[\"Mediterranean\"],\"viewer.theme.night\":[\"Night\"],\"viewer.theme.overcast\":[\"Overcast\"],\"viewer.theme.paper\":[\"Paper\"],\"viewer.theme.studio\":[\"Studio\"],\"viewer.theme.sunset\":[\"Sunset\"],\"viewer.theme.title\":[\"Scene theme\"],\"viewer.theme.twilight\":[\"Twilight\"],\"viewer.theme.verdant\":[\"Verdant\"],\"viewer.visibility.guides\":[\"Guides\"],\"viewer.visibility.scans\":[\"Scans\"],\"viewer.visibility.title\":[\"Visibility\"],\"viewer.walkthrough.label\":[\"Walkthrough: \",[\"state\"]],\"viewer.walls.cutaway\":[\"Cutaway\"],\"viewer.walls.fullHeight\":[\"Full height\"],\"viewer.walls.label\":[\"Walls: \",[\"mode\"]],\"viewer.walls.low\":[\"Low\"]}")as Messages;
\ No newline at end of file
diff --git a/packages/editor/src/i18n/locales/es/messages.po b/packages/editor/src/i18n/locales/es/messages.po
index ec0367e8d0..fcb3e01f18 100644
--- a/packages/editor/src/i18n/locales/es/messages.po
+++ b/packages/editor/src/i18n/locales/es/messages.po
@@ -2461,16 +2461,6 @@ msgstr "Ventana"
msgid "editor.actionMenu.structureTools.zone"
msgstr "Zona"
-# Source-Hash: 43af78ba61aaa8ab
-# Review: required
-# AI-Provider: cursor-agent
-# AI-Model: claude-opus
-# English: "below"
-#: packages/editor/src/components/ui/action-menu/view-toggles.tsx
-#, fuzzy
-msgid "editor.actionMenu.viewToggles.below"
-msgstr "debajo"
-
# Source-Hash: cdf3f12939ba108c
# Review: required
# AI-Provider: cursor-agent
@@ -2591,6 +2581,16 @@ msgstr "Ocultar planta de referencia"
msgid "editor.actionMenu.viewToggles.hideScans"
msgstr "Ocultar escaneos 3D"
+# Source-Hash: 873620c284a5651f
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "{count} below"
+#: packages/editor/src/components/ui/action-menu/view-toggles.tsx
+#, fuzzy
+msgid "editor.actionMenu.viewToggles.levelsBelow"
+msgstr "{count} por debajo"
+
# Source-Hash: 22a59ae72d8c9504
# Review: required
# AI-Provider: cursor-agent
@@ -3133,6 +3133,36 @@ msgstr "Continuación: {label}"
msgid "editor.helpers.contextualHelperPanel.dragToDrawFence"
msgstr "Arrastra para dibujar la valla"
+# Source-Hash: b52e874718af1916
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Erase: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.eraseScope"
+msgstr "Borrar: {scope}"
+
+# Source-Hash: 61f7494abc319e66
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Erase scope — click or press Shift to cycle"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.eraseScopeClickOrPressShift"
+msgstr "Alcance del borrado: haz clic o pulsa Mayús para cambiar"
+
+# Source-Hash: 59993c163d68cc53
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Erase scope: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.eraseScopeLabel"
+msgstr "Alcance del borrado: {scope}"
+
# Source-Hash: a4bdcbc6cab772bf
# Review: required
# AI-Provider: cursor-agent
@@ -3233,6 +3263,46 @@ msgstr "Pasa el cursor por una superficie para tomar su material"
msgid "editor.helpers.contextualHelperPanel.moreShortcuts"
msgstr "Más atajos"
+# Source-Hash: 476b8f5f9ee542e6
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Paint: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.paintScope"
+msgstr "Pintar: {scope}"
+
+# Source-Hash: 9c09ce4c34122277
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Paint scope — click or press Shift to cycle"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.paintScopeClickOrPressShift"
+msgstr "Alcance de la pintura: haz clic o pulsa Mayús para cambiar"
+
+# Source-Hash: 7890aa81687f6654
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Paint scope: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.paintScopeLabel"
+msgstr "Alcance de la pintura: {scope}"
+
+# Source-Hash: a75b3abc0784b12b
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Pick: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.pickScope"
+msgstr "Tomar: {scope}"
+
# Source-Hash: 69c1044e6ea87ccf
# Review: required
# AI-Provider: cursor-agent
@@ -3353,16 +3423,6 @@ msgstr "Continuación de valla recta: haz clic o pulsa C para alternar"
msgid "editor.helpers.contextualHelperPanel.straightSingle"
msgstr "Recta: simple"
-# Source-Hash: 83e56140165f2535
-# Review: required
-# AI-Provider: cursor-agent
-# AI-Model: claude-opus
-# English: "{verb} scope — click or press Shift to cycle"
-#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
-#, fuzzy
-msgid "editor.helpers.contextualHelperPanel.verbScopeClickOrPressShift"
-msgstr "Alcance de {verb}: haz clic o pulsa Mayús para cambiar"
-
# Source-Hash: 9a56d90d461b4bca
# Review: required
# AI-Provider: cursor-agent
@@ -4280,7 +4340,7 @@ msgstr "No se pudo mostrar la escena del editor"
# English: "A curtain wall takes no corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.aCurtainWallTakesNoCorner"
+msgid "editor.toolHint.aCurtainWallTakesNoCorner.1qxjv5i"
msgstr "Un muro cortina no admite ventana de esquina"
# Source-Hash: 97f5e044d46501fb
@@ -4290,7 +4350,7 @@ msgstr "Un muro cortina no admite ventana de esquina"
# English: "A curved wall takes no corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.aCurvedWallTakesNoCorner"
+msgid "editor.toolHint.aCurvedWallTakesNoCorner.1vdnaw5"
msgstr "Un muro curvo no admite ventana de esquina"
# Source-Hash: 776d8ebece7fe1bb
@@ -4300,7 +4360,7 @@ msgstr "Un muro curvo no admite ventana de esquina"
# English: "Add a corner · click the first to close"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.addACornerClickTheFirst"
+msgid "editor.toolHint.addACornerClickTheFirst.o4r67t"
msgstr "Añadir esquina · haz clic en la primera para cerrar"
# Source-Hash: 6a0745dd047b149a
@@ -4310,7 +4370,7 @@ msgstr "Añadir esquina · haz clic en la primera para cerrar"
# English: "Another opening is in the way at the corner"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.anotherOpeningIsInTheWay"
+msgid "editor.toolHint.anotherOpeningIsInTheWay.11l9dd0"
msgstr "Otra abertura estorba en la esquina"
# Source-Hash: 441124187e7da2fc
@@ -4320,7 +4380,7 @@ msgstr "Otra abertura estorba en la esquina"
# English: "Auto hangers"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangers"
+msgid "editor.toolHint.autoHangers.10554ka"
msgstr "Colgadores automáticos"
# Source-Hash: 47a7f9a6a81156c3
@@ -4330,7 +4390,7 @@ msgstr "Colgadores automáticos"
# English: "Auto hangers - click or press H to toggle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangersClickOrPressH"
+msgid "editor.toolHint.autoHangersClickOrPressH.rwa3ka"
msgstr "Colgadores automáticos: haz clic o pulsa H para alternar"
# Source-Hash: d7944f31cba90e26
@@ -4340,7 +4400,7 @@ msgstr "Colgadores automáticos: haz clic o pulsa H para alternar"
# English: "Auto hangers: Off"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangersOff"
+msgid "editor.toolHint.autoHangersOff.7yx01x"
msgstr "Colgadores automáticos: desactivados"
# Source-Hash: 295882d015d08742
@@ -4350,7 +4410,7 @@ msgstr "Colgadores automáticos: desactivados"
# English: "Auto hangers: On"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangersOn"
+msgid "editor.toolHint.autoHangersOn.10b1umh"
msgstr "Colgadores automáticos: activados"
# Source-Hash: 8c039e5182b01c4d
@@ -4360,7 +4420,7 @@ msgstr "Colgadores automáticos: activados"
# English: "Bypass snapping"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.bypassSnapping"
+msgid "editor.toolHint.bypassSnapping.w5lmdv"
msgstr "Omitir el ajuste"
# Source-Hash: c0774c185060fc13
@@ -4370,7 +4430,7 @@ msgstr "Omitir el ajuste"
# English: "Cancel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancel"
+msgid "editor.toolHint.cancel.ew9em3"
msgstr "Cancelar"
# Source-Hash: 5b33b576fd30b74e
@@ -4380,7 +4440,7 @@ msgstr "Cancelar"
# English: "Cancel move"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancelMove"
+msgid "editor.toolHint.cancelMove.lvp31c"
msgstr "Cancelar movimiento"
# Source-Hash: 136fa29b9ae419bf
@@ -4390,7 +4450,7 @@ msgstr "Cancelar movimiento"
# English: "Cancel run / exit"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancelRunExit"
+msgid "editor.toolHint.cancelRunExit.zqjf3h"
msgstr "Cancelar tramo / salir"
# Source-Hash: 75b406824be91ac2
@@ -4400,7 +4460,7 @@ msgstr "Cancelar tramo / salir"
# English: "Cancel start point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancelStartPoint"
+msgid "editor.toolHint.cancelStartPoint.1xbq2lh"
msgstr "Cancelar punto inicial"
# Source-Hash: ffa5aaa1746303c4
@@ -4410,7 +4470,7 @@ msgstr "Cancelar punto inicial"
# English: "Corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cornerWindow"
+msgid "editor.toolHint.cornerWindow.1avkzpo"
msgstr "Ventana de esquina"
# Source-Hash: b0afdd855a02e4a7
@@ -4420,7 +4480,7 @@ msgstr "Ventana de esquina"
# English: "Cuts"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cuts"
+msgid "editor.toolHint.cuts.1y0axps"
msgstr "Cortes"
# Source-Hash: dc9fe7601cc525f8
@@ -4430,7 +4490,7 @@ msgstr "Cortes"
# English: "Cuts: {value}"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cutsValue"
+msgid "editor.toolHint.cutsValue.ouzhvb"
msgstr "Cortes: {value}"
# Source-Hash: a2e13bc4dc82624c
@@ -4440,7 +4500,7 @@ msgstr "Cortes: {value}"
# English: "Cuts: {value}, even"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cutsValueEven"
+msgid "editor.toolHint.cutsValueEven.1ngsz3"
msgstr "Cortes: {value}, uniformes"
# Source-Hash: 04152b4cec726f34
@@ -4450,7 +4510,7 @@ msgstr "Cortes: {value}, uniformes"
# English: "Cycle mono / gable / butterfly"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cycleMonoGableButterfly"
+msgid "editor.toolHint.cycleMonoGableButterfly.1poga3m"
msgstr "Cambiar un agua / dos aguas / mariposa"
# Source-Hash: 4fb6c83edb6652b5
@@ -4460,7 +4520,7 @@ msgstr "Cambiar un agua / dos aguas / mariposa"
# English: "Cycle snapping mode"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cycleSnappingMode"
+msgid "editor.toolHint.cycleSnappingMode.1ct0gn6"
msgstr "Cambiar el modo de ajuste"
# Source-Hash: 5d550a3ac76279de
@@ -4470,7 +4530,7 @@ msgstr "Cambiar el modo de ajuste"
# English: "Door style — click or press L to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.doorStyleClickOrPressL"
+msgid "editor.toolHint.doorStyleClickOrPressL.33pe65"
msgstr "Estilo de puerta: haz clic o pulsa L para cambiar"
# Source-Hash: 3272a7df5d7c6a9a
@@ -4480,7 +4540,7 @@ msgstr "Estilo de puerta: haz clic o pulsa L para cambiar"
# English: "Door type — click or press O to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.doorTypeClickOrPressO"
+msgid "editor.toolHint.doorTypeClickOrPressO.1hhh8gt"
msgstr "Tipo de puerta: haz clic o pulsa O para cambiar"
# Source-Hash: 366222b4435eefda
@@ -4490,7 +4550,7 @@ msgstr "Tipo de puerta: haz clic o pulsa O para cambiar"
# English: "Drop downspout from outlet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.dropDownspoutFromOutlet"
+msgid "editor.toolHint.dropDownspoutFromOutlet.1k4h1m4"
msgstr "Bajar la bajante desde la salida"
# Source-Hash: 03f306371f345007
@@ -4500,7 +4560,7 @@ msgstr "Bajar la bajante desde la salida"
# English: "Duct diameter down / up"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.ductDiameterDownUp"
+msgid "editor.toolHint.ductDiameterDownUp.1wdz5vq"
msgstr "Diámetro del conducto menos / más"
# Source-Hash: 7b4137e27f8327d9
@@ -4510,7 +4570,7 @@ msgstr "Diámetro del conducto menos / más"
# English: "End run / cancel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.endRunCancel"
+msgid "editor.toolHint.endRunCancel.59dh2w"
msgstr "Terminar tramo / cancelar"
# Source-Hash: 938aacb119b29dc1
@@ -4520,7 +4580,7 @@ msgstr "Terminar tramo / cancelar"
# English: "Exit"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.exit"
+msgid "editor.toolHint.exit.engmg5"
msgstr "Salir"
# Source-Hash: 7cb4e0688cabcb00
@@ -4530,7 +4590,7 @@ msgstr "Salir"
# English: "Exit drawing"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.exitDrawing"
+msgid "editor.toolHint.exitDrawing.9noxyb"
msgstr "Salir del dibujo"
# Source-Hash: 47025a103c456125
@@ -4540,7 +4600,7 @@ msgstr "Salir del dibujo"
# English: "Finish and continue"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishAndContinue"
+msgid "editor.toolHint.finishAndContinue.1gpfsks"
msgstr "Terminar y continuar"
# Source-Hash: 000918429b74128f
@@ -4550,7 +4610,7 @@ msgstr "Terminar y continuar"
# English: "Finish ceiling"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishCeiling"
+msgid "editor.toolHint.finishCeiling.1c1lfel"
msgstr "Terminar el techo"
# Source-Hash: 51a80a0dba5a6f30
@@ -4560,7 +4620,7 @@ msgstr "Terminar el techo"
# English: "Finish grid axis"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishGridAxis"
+msgid "editor.toolHint.finishGridAxis.1wvrfhr"
msgstr "Terminar el eje"
# Source-Hash: 87c7b98fc2e010e1
@@ -4570,7 +4630,7 @@ msgstr "Terminar el eje"
# English: "Finish measurement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishMeasurement"
+msgid "editor.toolHint.finishMeasurement.1e4gv16"
msgstr "Terminar la medida"
# Source-Hash: 5e1a0af7dc506826
@@ -4580,7 +4640,7 @@ msgstr "Terminar la medida"
# English: "Finish multi-point witnesses"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishMultiPointWitnesses"
+msgid "editor.toolHint.finishMultiPointWitnesses.8wzskz"
msgstr "Terminar los testigos de varios puntos"
# Source-Hash: 30fc0862501ba2e8
@@ -4590,7 +4650,7 @@ msgstr "Terminar los testigos de varios puntos"
# English: "Finish slab"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishSlab"
+msgid "editor.toolHint.finishSlab.xmnm8e"
msgstr "Terminar el forjado"
# Source-Hash: 66ed7c7598d3aa29
@@ -4600,7 +4660,7 @@ msgstr "Terminar el forjado"
# English: "Flip side"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.flipSide"
+msgid "editor.toolHint.flipSide.172xku9"
msgstr "Invertir el lado"
# Source-Hash: f5717f6a0905ffab
@@ -4610,7 +4670,7 @@ msgstr "Invertir el lado"
# English: "Follow: trace a lineset"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.followTraceALineset"
+msgid "editor.toolHint.followTraceALineset.mgquwe"
msgstr "Seguir: trazar junto a una línea frigorífica"
# Source-Hash: ed7f3d8417a3e074
@@ -4620,7 +4680,7 @@ msgstr "Seguir: trazar junto a una línea frigorífica"
# English: "Force place"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.forcePlace"
+msgid "editor.toolHint.forcePlace.1hq1nr"
msgstr "Forzar colocación"
# Source-Hash: cc0c14065951444d
@@ -4630,7 +4690,7 @@ msgstr "Forzar colocación"
# English: "Free placement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.freePlacement"
+msgid "editor.toolHint.freePlacement.1nztdac"
msgstr "Colocación libre"
# Source-Hash: f098a27096a9c1ea
@@ -4640,7 +4700,7 @@ msgstr "Colocación libre"
# English: "Go vertical ↕, click to place"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.goVerticalClickToPlace"
+msgid "editor.toolHint.goVerticalClickToPlace.dg8g6m"
msgstr "Pasar a vertical ↕, haz clic para colocar"
# Source-Hash: fd47f1820d8799c8
@@ -4650,7 +4710,7 @@ msgstr "Pasar a vertical ↕, haz clic para colocar"
# English: "Highlight outlet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.highlightOutlet"
+msgid "editor.toolHint.highlightOutlet.65hoq8"
msgstr "Resaltar la salida"
# Source-Hash: eb90058d0f856f67
@@ -4660,7 +4720,7 @@ msgstr "Resaltar la salida"
# English: "Join as a corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.joinAsACornerWindow"
+msgid "editor.toolHint.joinAsACornerWindow.jvdp4j"
msgstr "Unir como ventana de esquina"
# Source-Hash: 225b3161f2e59757
@@ -4670,7 +4730,7 @@ msgstr "Unir como ventana de esquina"
# English: "Alt + drag"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.altDrag"
+msgid "editor.toolHint.key.altDrag.ai3wn9"
msgstr "Alt + arrastrar"
# Source-Hash: dd66f883b173fc72
@@ -4680,7 +4740,7 @@ msgstr "Alt + arrastrar"
# English: "Backspace"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.backspace"
+msgid "editor.toolHint.key.backspace.qy6qx8"
msgstr "Retroceso"
# Source-Hash: a18387bc0be54c32
@@ -4690,7 +4750,7 @@ msgstr "Retroceso"
# English: "Click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.click"
+msgid "editor.toolHint.key.click.m8sun"
msgstr "Clic"
# Source-Hash: db9e60c1d30b8499
@@ -4700,7 +4760,7 @@ msgstr "Clic"
# English: "Click again"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.clickAgain"
+msgid "editor.toolHint.key.clickAgain.190ws9j"
msgstr "Volver a hacer clic"
# Source-Hash: f400330b9c9c12e8
@@ -4710,7 +4770,7 @@ msgstr "Volver a hacer clic"
# English: "Command"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.command"
+msgid "editor.toolHint.key.command.1j2mkia"
msgstr "Comando"
# Source-Hash: 976c63285a510b09
@@ -4720,7 +4780,7 @@ msgstr "Comando"
# English: "Control"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.control"
+msgid "editor.toolHint.key.control.10fbl8e"
msgstr "Control"
# Source-Hash: b26de372b4b0eaac
@@ -4730,7 +4790,7 @@ msgstr "Control"
# English: "Delete"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.delete"
+msgid "editor.toolHint.key.delete.oay2cq"
msgstr "Eliminar"
# Source-Hash: 88888c9d2719fa92
@@ -4740,7 +4800,7 @@ msgstr "Eliminar"
# English: "Double click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.doubleClick"
+msgid "editor.toolHint.key.doubleClick.vlma6o"
msgstr "Doble clic"
# Source-Hash: dfb85b2addb7b9fa
@@ -4750,7 +4810,7 @@ msgstr "Doble clic"
# English: "Drag"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.drag"
+msgid "editor.toolHint.key.drag.8pwtpf"
msgstr "Arrastrar"
# Source-Hash: ed9140d42148c99b
@@ -4760,7 +4820,7 @@ msgstr "Arrastrar"
# English: "Enter"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.enter"
+msgid "editor.toolHint.key.enter.1ctpui5"
msgstr "Intro"
# Source-Hash: 9195fa8b9c8ebdfb
@@ -4770,7 +4830,7 @@ msgstr "Intro"
# English: "Hover"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hover"
+msgid "editor.toolHint.key.hover.6xw79p"
msgstr "Pasar el cursor"
# Source-Hash: 2d78441b741bc562
@@ -4780,7 +4840,7 @@ msgstr "Pasar el cursor"
# English: "Hover a duct end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hoverADuctEnd"
+msgid "editor.toolHint.key.hoverADuctEnd.19axr3b"
msgstr "Pasa el cursor por un extremo del conducto"
# Source-Hash: 6083405086f61c76
@@ -4790,7 +4850,7 @@ msgstr "Pasa el cursor por un extremo del conducto"
# English: "Hover a pipe end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hoverAPipeEnd"
+msgid "editor.toolHint.key.hoverAPipeEnd.1jbum5f"
msgstr "Pasa el cursor por un extremo de la tubería"
# Source-Hash: a5a337eb76fdb066
@@ -4800,7 +4860,7 @@ msgstr "Pasa el cursor por un extremo de la tubería"
# English: "Hover gutter"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hoverGutter"
+msgid "editor.toolHint.key.hoverGutter.1dwcsno"
msgstr "Pasa el cursor por el canalón"
# Source-Hash: a58533594411e088
@@ -4810,7 +4870,7 @@ msgstr "Pasa el cursor por el canalón"
# English: "Left click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.leftClick"
+msgid "editor.toolHint.key.leftClick.s4gwfc"
msgstr "Clic izquierdo"
# Source-Hash: bc4ab608ec3d3b4f
@@ -4820,7 +4880,7 @@ msgstr "Clic izquierdo"
# English: "Middle click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.middleClick"
+msgid "editor.toolHint.key.middleClick.1jbaan4"
msgstr "Clic central"
# Source-Hash: 6791879c651108c7
@@ -4830,7 +4890,7 @@ msgstr "Clic central"
# English: "Right click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.rightClick"
+msgid "editor.toolHint.key.rightClick.1ovld0h"
msgstr "Clic derecho"
# Source-Hash: c836b21b42198868
@@ -4840,7 +4900,7 @@ msgstr "Clic derecho"
# English: "R / Shift+R"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.rShiftR"
+msgid "editor.toolHint.key.rShiftR.13bnobh"
msgstr "R / Mayús+R"
# Source-Hash: 9812aa06d8bb7544
@@ -4850,7 +4910,7 @@ msgstr "R / Mayús+R"
# English: "Scroll"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.scroll"
+msgid "editor.toolHint.key.scroll.ai6wr0"
msgstr "Desplazar"
# Source-Hash: f2174536230657c8
@@ -4860,7 +4920,7 @@ msgstr "Desplazar"
# English: "Scroll wheel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.scrollWheel"
+msgid "editor.toolHint.key.scrollWheel.18j0ix7"
msgstr "Rueda del ratón"
# Source-Hash: 82dd231086d87f3b
@@ -4870,7 +4930,7 @@ msgstr "Rueda del ratón"
# English: "Space"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.space"
+msgid "editor.toolHint.key.space.1hrh82t"
msgstr "Espacio"
# Source-Hash: 9e68aa2f472cad56
@@ -4880,7 +4940,7 @@ msgstr "Espacio"
# English: "Tab"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.tab"
+msgid "editor.toolHint.key.tab.1xsal0s"
msgstr "Tab"
# Source-Hash: 4b221b73f9496a49
@@ -4890,7 +4950,7 @@ msgstr "Tab"
# English: "Mount: floor / ceiling / wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.mountFloorCeilingWall"
+msgid "editor.toolHint.mountFloorCeilingWall.32dxpv"
msgstr "Montaje: suelo / techo / muro"
# Source-Hash: 225edfb1e45aed95
@@ -4900,7 +4960,7 @@ msgstr "Montaje: suelo / techo / muro"
# English: "No room for the matching window on the other wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.noRoomForTheMatchingWindow"
+msgid "editor.toolHint.noRoomForTheMatchingWindow.1755948"
msgstr "No hay espacio para la ventana correspondiente en el otro muro"
# Source-Hash: a7045d6b678bcd13
@@ -4910,7 +4970,7 @@ msgstr "No hay espacio para la ventana correspondiente en el otro muro"
# English: "No wall meets here"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.noWallMeetsHere"
+msgid "editor.toolHint.noWallMeetsHere.19n99yc"
msgstr "Aquí no se une ningún muro"
# Source-Hash: a639341dc21fed2c
@@ -4920,7 +4980,7 @@ msgstr "Aquí no se une ningún muro"
# English: "Number of cuts — scroll or click to change"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.numberOfCutsScrollOrClick"
+msgid "editor.toolHint.numberOfCutsScrollOrClick.1kqe84b"
msgstr "Número de cortes: desplaza o haz clic para cambiar"
# Source-Hash: af01bde3ae4b7e59
@@ -4930,7 +4990,7 @@ msgstr "Número de cortes: desplaza o haz clic para cambiar"
# English: "Pick witness point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.pickWitnessPoint"
+msgid "editor.toolHint.pickWitnessPoint.k3hgh1"
msgstr "Elegir punto testigo"
# Source-Hash: ecfd58576b28a9f6
@@ -4940,7 +5000,7 @@ msgstr "Elegir punto testigo"
# English: "Pipe size down / up"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.pipeSizeDownUp"
+msgid "editor.toolHint.pipeSizeDownUp.wp04og"
msgstr "Diámetro de tubería menos / más"
# Source-Hash: 7a1eb7b64f06bad0
@@ -4950,7 +5010,7 @@ msgstr "Diámetro de tubería menos / más"
# English: "Place and continue"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeAndContinue"
+msgid "editor.toolHint.placeAndContinue.qfwkrq"
msgstr "Colocar y continuar"
# Source-Hash: c6cda39e2e4b5d3a
@@ -4960,7 +5020,7 @@ msgstr "Colocar y continuar"
# English: "Place block"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeBlock"
+msgid "editor.toolHint.placeBlock.1aylwrx"
msgstr "Colocar bloque"
# Source-Hash: 45a743c52a1d72de
@@ -4970,7 +5030,7 @@ msgstr "Colocar bloque"
# English: "Place box vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeBoxVentOnRoof"
+msgid "editor.toolHint.placeBoxVentOnRoof.kf88e5"
msgstr "Colocar aireador en la cubierta"
# Source-Hash: 75142dd1d557efe2
@@ -4980,7 +5040,7 @@ msgstr "Colocar aireador en la cubierta"
# English: "Place cabinet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeCabinet"
+msgid "editor.toolHint.placeCabinet.b0ouyk"
msgstr "Colocar mueble"
# Source-Hash: da603a713d4c9909
@@ -4990,7 +5050,7 @@ msgstr "Colocar mueble"
# English: "Place canopy or set the next run point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeCanopyOrSetTheNext"
+msgid "editor.toolHint.placeCanopyOrSetTheNext.12l7zf8"
msgstr "Colocar la marquesina o el siguiente punto"
# Source-Hash: 8b3a30c6b7a5612d
@@ -5000,7 +5060,7 @@ msgstr "Colocar la marquesina o el siguiente punto"
# English: "Place chimney on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeChimneyOnRoof"
+msgid "editor.toolHint.placeChimneyOnRoof.19dbqu"
msgstr "Colocar chimenea en la cubierta"
# Source-Hash: 710d41e4e2f259fa
@@ -5010,7 +5070,7 @@ msgstr "Colocar chimenea en la cubierta"
# English: "Place column"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeColumn"
+msgid "editor.toolHint.placeColumn.1w2vq86"
msgstr "Colocar pilar"
# Source-Hash: ee1da4e12a71d9a9
@@ -5020,7 +5080,7 @@ msgstr "Colocar pilar"
# English: "Place cupola on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeCupolaOnRoof"
+msgid "editor.toolHint.placeCupolaOnRoof.ofx3bn"
msgstr "Colocar linterna en la cubierta"
# Source-Hash: 19c1fe8c46d213a5
@@ -5030,7 +5090,7 @@ msgstr "Colocar linterna en la cubierta"
# English: "Place dimension line when needed"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeDimensionLineWhenNeeded"
+msgid "editor.toolHint.placeDimensionLineWhenNeeded.bjw2cj"
msgstr "Colocar la línea de cota cuando haga falta"
# Source-Hash: 58f3e7efb6ea120b
@@ -5040,7 +5100,7 @@ msgstr "Colocar la línea de cota cuando haga falta"
# English: "Place door on wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeDoorOnWall"
+msgid "editor.toolHint.placeDoorOnWall.1jwadf"
msgstr "Colocar puerta en el muro"
# Source-Hash: de04e9d03d937c97
@@ -5050,7 +5110,7 @@ msgstr "Colocar puerta en el muro"
# English: "Place dormer on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeDormerOnRoof"
+msgid "editor.toolHint.placeDormerOnRoof.1w518a6"
msgstr "Colocar buhardilla en la cubierta"
# Source-Hash: c581645f2ee447c2
@@ -5060,7 +5120,7 @@ msgstr "Colocar buhardilla en la cubierta"
# English: "Place elevator"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeElevator"
+msgid "editor.toolHint.placeElevator.1f65zva"
msgstr "Colocar ascensor"
# Source-Hash: 096b8d6482717358
@@ -5070,7 +5130,7 @@ msgstr "Colocar ascensor"
# English: "Place eyebrow vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeEyebrowVentOnRoof"
+msgid "editor.toolHint.placeEyebrowVentOnRoof.1h1tqxn"
msgstr "Colocar respiradero de ceja en la cubierta"
# Source-Hash: e8d42c1c8370773f
@@ -5080,7 +5140,7 @@ msgstr "Colocar respiradero de ceja en la cubierta"
# English: "Place fitting"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeFitting"
+msgid "editor.toolHint.placeFitting.1pmx3vn"
msgstr "Colocar accesorio"
# Source-Hash: 2340a4b70cb0d9ad
@@ -5090,7 +5150,7 @@ msgstr "Colocar accesorio"
# English: "Place gutter on roof eave"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeGutterOnRoofEave"
+msgid "editor.toolHint.placeGutterOnRoofEave.llwzf9"
msgstr "Colocar canalón en el alero"
# Source-Hash: 706a8eafb6212833
@@ -5100,7 +5160,7 @@ msgstr "Colocar canalón en el alero"
# English: "Place item"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeItem"
+msgid "editor.toolHint.placeItem.teynf"
msgstr "Colocar elemento"
# Source-Hash: 1815c482e249932e
@@ -5110,7 +5170,7 @@ msgstr "Colocar elemento"
# English: "Place it (locked to 45°)"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeItLockedTo45"
+msgid "editor.toolHint.placeItLockedTo45.16e4csk"
msgstr "Colocar (bloqueado a 45°)"
# Source-Hash: 4a14340657532838
@@ -5120,7 +5180,7 @@ msgstr "Colocar (bloqueado a 45°)"
# English: "Place measurement point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeMeasurementPoint"
+msgid "editor.toolHint.placeMeasurementPoint.bsatli"
msgstr "Colocar punto de medida"
# Source-Hash: b3be684ac62fbf53
@@ -5130,7 +5190,7 @@ msgstr "Colocar punto de medida"
# English: "Placement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placement"
+msgid "editor.toolHint.placement.13lcvts"
msgstr "Colocación"
# Source-Hash: 2bb2ce6276c69b1e
@@ -5140,7 +5200,7 @@ msgstr "Colocación"
# English: "Placement: Auto"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementAuto"
+msgid "editor.toolHint.placementAuto.1caa52d"
msgstr "Colocación: automática"
# Source-Hash: ed78ac5354a1dcd8
@@ -5150,7 +5210,7 @@ msgstr "Colocación: automática"
# English: "Placement: Ground"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementGround"
+msgid "editor.toolHint.placementGround.1ruz145"
msgstr "Colocación: suelo"
# Source-Hash: a066a2c9d5e65a1a
@@ -5160,7 +5220,7 @@ msgstr "Colocación: suelo"
# English: "Placement: Roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementRoof"
+msgid "editor.toolHint.placementRoof.renkw8"
msgstr "Colocación: cubierta"
# Source-Hash: 8f74dbe5064c4c66
@@ -5170,7 +5230,7 @@ msgstr "Colocación: cubierta"
# English: "Placement surface - click or press P to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementSurfaceClickOrPressP"
+msgid "editor.toolHint.placementSurfaceClickOrPressP.w56h19"
msgstr "Superficie de colocación: haz clic o pulsa P para cambiar"
# Source-Hash: fe119955c925feaf
@@ -5180,7 +5240,7 @@ msgstr "Superficie de colocación: haz clic o pulsa P para cambiar"
# English: "Placement type"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementType"
+msgid "editor.toolHint.placementType.1mdpl60"
msgstr "Tipo de colocación"
# Source-Hash: 33043a35500168f5
@@ -5190,7 +5250,7 @@ msgstr "Tipo de colocación"
# English: "Placement type — click or press I to toggle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementTypeClickOrPressI"
+msgid "editor.toolHint.placementTypeClickOrPressI.10cgxh2"
msgstr "Tipo de colocación: haz clic o pulsa I para alternar"
# Source-Hash: 9945f412e6a9a446
@@ -5200,7 +5260,7 @@ msgstr "Tipo de colocación: haz clic o pulsa I para alternar"
# English: "Place on a fence"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeOnAFence"
+msgid "editor.toolHint.placeOnAFence.1dptstr"
msgstr "Colocar en una valla"
# Source-Hash: 6708118775a7da7f
@@ -5210,7 +5270,7 @@ msgstr "Colocar en una valla"
# English: "Place register"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeRegister"
+msgid "editor.toolHint.placeRegister.1uebycd"
msgstr "Colocar rejilla"
# Source-Hash: ebd2731f5c79306e
@@ -5220,7 +5280,7 @@ msgstr "Colocar rejilla"
# English: "Place ridge vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeRidgeVentOnRoof"
+msgid "editor.toolHint.placeRidgeVentOnRoof.2tpd8r"
msgstr "Colocar ventilación de cumbrera en la cubierta"
# Source-Hash: 9b3c66a867c23326
@@ -5230,7 +5290,7 @@ msgstr "Colocar ventilación de cumbrera en la cubierta"
# English: "Place shelf"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeShelf"
+msgid "editor.toolHint.placeShelf.y4l3iw"
msgstr "Colocar estantería"
# Source-Hash: f11cf5c1c9fe862d
@@ -5240,7 +5300,7 @@ msgstr "Colocar estantería"
# English: "Place skylight on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeSkylightOnRoof"
+msgid "editor.toolHint.placeSkylightOnRoof.e215pe"
msgstr "Colocar claraboya en la cubierta"
# Source-Hash: e989a58d6709cc16
@@ -5250,7 +5310,7 @@ msgstr "Colocar claraboya en la cubierta"
# English: "Place solar panel array on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeSolarPanelArrayOnRoof"
+msgid "editor.toolHint.placeSolarPanelArrayOnRoof.kk11fn"
msgstr "Colocar paneles solares en la cubierta"
# Source-Hash: b67f7036d5180cf5
@@ -5260,7 +5320,7 @@ msgstr "Colocar paneles solares en la cubierta"
# English: "Place spawn point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeSpawnPoint"
+msgid "editor.toolHint.placeSpawnPoint.205o25"
msgstr "Colocar punto de aparición"
# Source-Hash: 6c7f32a17e5636c3
@@ -5270,7 +5330,7 @@ msgstr "Colocar punto de aparición"
# English: "Place stairs"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeStairs"
+msgid "editor.toolHint.placeStairs.zwxxu2"
msgstr "Colocar escalera"
# Source-Hash: 641c0d3debd798a8
@@ -5280,7 +5340,7 @@ msgstr "Colocar escalera"
# English: "Place trap"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeTrap"
+msgid "editor.toolHint.placeTrap.1gxemn3"
msgstr "Colocar sifón"
# Source-Hash: 6f0a6f6c4b7588a0
@@ -5290,7 +5350,7 @@ msgstr "Colocar sifón"
# English: "Place turbine vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeTurbineVentOnRoof"
+msgid "editor.toolHint.placeTurbineVentOnRoof.1iqeluf"
msgstr "Colocar extractor eólico en la cubierta"
# Source-Hash: e65cf5edb4f51ed5
@@ -5300,7 +5360,7 @@ msgstr "Colocar extractor eólico en la cubierta"
# English: "Place unit"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeUnit"
+msgid "editor.toolHint.placeUnit.8zkx4q"
msgstr "Colocar equipo"
# Source-Hash: 86ce1c730154f68b
@@ -5310,7 +5370,7 @@ msgstr "Colocar equipo"
# English: "Place window on wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeWindowOnWall"
+msgid "editor.toolHint.placeWindowOnWall.1k3qnfb"
msgstr "Colocar ventana en el muro"
# Source-Hash: 2b612180a7617901
@@ -5320,7 +5380,7 @@ msgstr "Colocar ventana en el muro"
# English: "Place without the corner snap"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeWithoutTheCornerSnap"
+msgid "editor.toolHint.placeWithoutTheCornerSnap.1nifqew"
msgstr "Colocar sin el ajuste a la esquina"
# Source-Hash: 0dc6d121791696f7
@@ -5330,7 +5390,7 @@ msgstr "Colocar sin el ajuste a la esquina"
# English: "Remove last point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.removeLastPoint"
+msgid "editor.toolHint.removeLastPoint.2dmdcx"
msgstr "Quitar el último punto"
# Source-Hash: 8b74b1d962be10fc
@@ -5340,7 +5400,7 @@ msgstr "Quitar el último punto"
# English: "Remove last witness"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.removeLastWitness"
+msgid "editor.toolHint.removeLastWitness.1b6vvzw"
msgstr "Quitar el último testigo"
# Source-Hash: 306d409f8a1cf480
@@ -5350,7 +5410,7 @@ msgstr "Quitar el último testigo"
# English: "Rotate"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotate"
+msgid "editor.toolHint.rotate.1thqa0a"
msgstr "Girar"
# Source-Hash: 8a665ecaeffa9308
@@ -5360,7 +5420,7 @@ msgstr "Girar"
# English: "Rotate ±45°"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotate45"
+msgid "editor.toolHint.rotate45.9zq68u"
msgstr "Girar ±45°"
# Source-Hash: be2240289aa74df5
@@ -5370,7 +5430,7 @@ msgstr "Girar ±45°"
# English: "Rotate ±45° (floor / ceiling)"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotate45FloorCeiling"
+msgid "editor.toolHint.rotate45FloorCeiling.m9t57d"
msgstr "Girar ±45° (suelo / techo)"
# Source-Hash: d5fb78b07c0f8138
@@ -5380,7 +5440,7 @@ msgstr "Girar ±45° (suelo / techo)"
# English: "Rotate ghost ±15°"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateGhost15"
+msgid "editor.toolHint.rotateGhost15.rsa52c"
msgstr "Girar la vista previa ±15°"
# Source-Hash: 912d340cd16e27fa
@@ -5390,7 +5450,7 @@ msgstr "Girar la vista previa ±15°"
# English: "Rotate or flip the run side"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateOrFlipTheRunSide"
+msgid "editor.toolHint.rotateOrFlipTheRunSide.t5ior7"
msgstr "Girar o invertir el lado de la línea"
# Source-Hash: ad1dc0b5536cceef
@@ -5400,7 +5460,7 @@ msgstr "Girar o invertir el lado de la línea"
# English: "Rotate roof direction 90°"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateRoofDirection90"
+msgid "editor.toolHint.rotateRoofDirection90.tvbji2"
msgstr "Girar la orientación de la cubierta 90°"
# Source-Hash: fa24651e9e5f595a
@@ -5410,7 +5470,7 @@ msgstr "Girar la orientación de la cubierta 90°"
# English: "Rotate spawn point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateSpawnPoint"
+msgid "editor.toolHint.rotateSpawnPoint.1opcuu7"
msgstr "Girar el punto de aparición"
# Source-Hash: 2d693d87fe9b59e6
@@ -5420,7 +5480,7 @@ msgstr "Girar el punto de aparición"
# English: "Round / rectangular / oval"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.roundRectangularOval"
+msgid "editor.toolHint.roundRectangularOval.e4nh6x"
msgstr "Redondo / rectangular / ovalado"
# Source-Hash: f7d2c9cdcc637c97
@@ -5430,7 +5490,7 @@ msgstr "Redondo / rectangular / ovalado"
# English: "Set fence start / end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setFenceStartEnd"
+msgid "editor.toolHint.setFenceStartEnd.1phbwsq"
msgstr "Fijar inicio / fin de la valla"
# Source-Hash: c93ae898b4d59f6f
@@ -5440,7 +5500,7 @@ msgstr "Fijar inicio / fin de la valla"
# English: "Set one corner, then the opposite"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setOneCornerThenTheOpposite"
+msgid "editor.toolHint.setOneCornerThenTheOpposite.8tsl49"
msgstr "Fija una esquina y luego la opuesta"
# Source-Hash: 4f55171f10c6ceeb
@@ -5450,7 +5510,7 @@ msgstr "Fija una esquina y luego la opuesta"
# English: "Set roof footprint"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setRoofFootprint"
+msgid "editor.toolHint.setRoofFootprint.p50n0o"
msgstr "Fijar la planta de la cubierta"
# Source-Hash: 0243859b1d64c21e
@@ -5460,7 +5520,7 @@ msgstr "Fijar la planta de la cubierta"
# English: "Set wall start / end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setWallStartEnd"
+msgid "editor.toolHint.setWallStartEnd.1r8ubcx"
msgstr "Fijar inicio / fin del muro"
# Source-Hash: c2806cce9612fa50
@@ -5470,7 +5530,7 @@ msgstr "Fijar inicio / fin del muro"
# English: "Slope / level"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.slopeLevel"
+msgid "editor.toolHint.slopeLevel.ftqp67"
msgstr "Pendiente / horizontal"
# Source-Hash: 06c0ec40606db679
@@ -5480,7 +5540,7 @@ msgstr "Pendiente / horizontal"
# English: "Snap onto the run"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.snapOntoTheRun"
+msgid "editor.toolHint.snapOntoTheRun.86yhmp"
msgstr "Ajustar al tramo"
# Source-Hash: e214cccbac9c4fd2
@@ -5490,7 +5550,7 @@ msgstr "Ajustar al tramo"
# English: "Split at the marks"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.splitAtTheMarks"
+msgid "editor.toolHint.splitAtTheMarks.x5tpdd"
msgstr "Dividir en las marcas"
# Source-Hash: 94455c35bfeac6b4
@@ -5500,7 +5560,7 @@ msgstr "Dividir en las marcas"
# English: "Start grid axis"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startGridAxis"
+msgid "editor.toolHint.startGridAxis.k92yza"
msgstr "Iniciar el eje"
# Source-Hash: 2edb4c29bbe7c513
@@ -5510,7 +5570,7 @@ msgstr "Iniciar el eje"
# English: "Start lineset"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startLineset"
+msgid "editor.toolHint.startLineset.23q8dh"
msgstr "Iniciar la línea frigorífica"
# Source-Hash: 9e50f1b30e325208
@@ -5520,7 +5580,7 @@ msgstr "Iniciar la línea frigorífica"
# English: "Start liquid line"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startLiquidLine"
+msgid "editor.toolHint.startLiquidLine.1rlxsgd"
msgstr "Iniciar la línea de líquido"
# Source-Hash: 877ddcb778c211cc
@@ -5530,7 +5590,7 @@ msgstr "Iniciar la línea de líquido"
# English: "Start run"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startRun"
+msgid "editor.toolHint.startRun.r6fc5u"
msgstr "Iniciar el tramo"
# Source-Hash: 8a62bee64174bbc0
@@ -5540,7 +5600,7 @@ msgstr "Iniciar el tramo"
# English: "Start segment"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startSegment"
+msgid "editor.toolHint.startSegment.rolym6"
msgstr "Iniciar el segmento"
# Source-Hash: 6cc5dc51a8e66779
@@ -5550,7 +5610,7 @@ msgstr "Iniciar el segmento"
# English: "Step back or cancel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.stepBackOrCancel"
+msgid "editor.toolHint.stepBackOrCancel.zbfdkn"
msgstr "Retroceder o cancelar"
# Source-Hash: 1a79a485d91f3f28
@@ -5560,7 +5620,7 @@ msgstr "Retroceder o cancelar"
# English: "Style"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.style"
+msgid "editor.toolHint.style.nf3vcm"
msgstr "Estilo"
# Source-Hash: 81f595b1c47c0080
@@ -5570,7 +5630,7 @@ msgstr "Estilo"
# English: "Style: Barn"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleBarn"
+msgid "editor.toolHint.styleBarn.k9n1x"
msgstr "Estilo: granero"
# Source-Hash: 3a82c718fe215273
@@ -5580,7 +5640,7 @@ msgstr "Estilo: granero"
# English: "Style: Casement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleCasement"
+msgid "editor.toolHint.styleCasement.ziklec"
msgstr "Estilo: abatible"
# Source-Hash: 072e3331d1d105c0
@@ -5590,7 +5650,7 @@ msgstr "Estilo: abatible"
# English: "Style: Craftsman"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleCraftsman"
+msgid "editor.toolHint.styleCraftsman.52e6a9"
msgstr "Estilo: artesano"
# Source-Hash: b64d07557dec1714
@@ -5600,7 +5660,7 @@ msgstr "Estilo: artesano"
# English: "Style: Double-hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleDoubleHung"
+msgid "editor.toolHint.styleDoubleHung.1lg8pkg"
msgstr "Estilo: guillotina doble"
# Source-Hash: 55ef8761a537637f
@@ -5610,7 +5670,7 @@ msgstr "Estilo: guillotina doble"
# English: "Style: French"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleFrench"
+msgid "editor.toolHint.styleFrench.1ue3j64"
msgstr "Estilo: francesa"
# Source-Hash: bc8a751d87536dc3
@@ -5620,7 +5680,7 @@ msgstr "Estilo: francesa"
# English: "Style: Glass"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleGlass"
+msgid "editor.toolHint.styleGlass.qudnb4"
msgstr "Estilo: vidrio"
# Source-Hash: 40c1eb0bc83e207d
@@ -5630,7 +5690,7 @@ msgstr "Estilo: vidrio"
# English: "Style: Grid"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleGrid"
+msgid "editor.toolHint.styleGrid.1vuq4po"
msgstr "Estilo: cuadrícula"
# Source-Hash: f516886bab2e7f10
@@ -5640,7 +5700,7 @@ msgstr "Estilo: cuadrícula"
# English: "Style: Half-louvered"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleHalfLouvered"
+msgid "editor.toolHint.styleHalfLouvered.13b1few"
msgstr "Estilo: media lama"
# Source-Hash: 64e4389a695371a2
@@ -5650,7 +5710,7 @@ msgstr "Estilo: media lama"
# English: "Style: Horizontal bands"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleHorizontalBands"
+msgid "editor.toolHint.styleHorizontalBands.12ethxk"
msgstr "Estilo: bandas horizontales"
# Source-Hash: ff6d226a425b00c0
@@ -5660,7 +5720,7 @@ msgstr "Estilo: bandas horizontales"
# English: "Style: Modern"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleModern"
+msgid "editor.toolHint.styleModern.1fh8hhn"
msgstr "Estilo: moderno"
# Source-Hash: c6d17ba078ff47e7
@@ -5670,7 +5730,7 @@ msgstr "Estilo: moderno"
# English: "Style: Panel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.stylePanel"
+msgid "editor.toolHint.stylePanel.922jze"
msgstr "Estilo: panel"
# Source-Hash: 5e6baad0d2ce3a62
@@ -5680,7 +5740,7 @@ msgstr "Estilo: panel"
# English: "Style: Paneled glass"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.stylePaneledGlass"
+msgid "editor.toolHint.stylePaneledGlass.17a17en"
msgstr "Estilo: vidrio con paneles"
# Source-Hash: 6314388e6832c252
@@ -5690,7 +5750,7 @@ msgstr "Estilo: vidrio con paneles"
# English: "Style: Shaker"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleShaker"
+msgid "editor.toolHint.styleShaker.49z17k"
msgstr "Estilo: shaker"
# Source-Hash: a0f8e524f3ca121f
@@ -5700,7 +5760,7 @@ msgstr "Estilo: shaker"
# English: "Style: Single"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleSingle"
+msgid "editor.toolHint.styleSingle.6f3cm0"
msgstr "Estilo: simple"
# Source-Hash: 368279df3a472c86
@@ -5710,7 +5770,7 @@ msgstr "Estilo: simple"
# English: "Style: Six-panel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleSixPanel"
+msgid "editor.toolHint.styleSixPanel.u49laj"
msgstr "Estilo: seis paneles"
# Source-Hash: 8f3c2571d8168fee
@@ -5720,7 +5780,7 @@ msgstr "Estilo: seis paneles"
# English: "Style: Sliding"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleSliding"
+msgid "editor.toolHint.styleSliding.q81s0i"
msgstr "Estilo: corredera"
# Source-Hash: aa9d9eb137ca38d4
@@ -5730,7 +5790,7 @@ msgstr "Estilo: corredera"
# English: "Style: Tall grid"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleTallGrid"
+msgid "editor.toolHint.styleTallGrid.1eotg3x"
msgstr "Estilo: cuadrícula alta"
# Source-Hash: bc164648722b63e5
@@ -5740,7 +5800,7 @@ msgstr "Estilo: cuadrícula alta"
# English: "Style: Transom"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleTransom"
+msgid "editor.toolHint.styleTransom.kb9bh6"
msgstr "Estilo: montante"
# Source-Hash: 9a218f0c9ceb4697
@@ -5750,7 +5810,7 @@ msgstr "Estilo: montante"
# English: "Style: Triple-hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleTripleHung"
+msgid "editor.toolHint.styleTripleHung.pxnqi3"
msgstr "Estilo: guillotina triple"
# Source-Hash: 9f6df1344bd3d694
@@ -5760,7 +5820,7 @@ msgstr "Estilo: guillotina triple"
# English: "Style: Wide grid"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleWideGrid"
+msgid "editor.toolHint.styleWideGrid.12n27et"
msgstr "Estilo: cuadrícula ancha"
# Source-Hash: 711d4050c0cb95d7
@@ -5770,7 +5830,7 @@ msgstr "Estilo: cuadrícula ancha"
# English: "Switch rotation axis (Y → X → Z)"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.switchRotationAxisYXZ"
+msgid "editor.toolHint.switchRotationAxisYXZ.15lohm6"
msgstr "Cambiar el eje de giro (Y → X → Z)"
# Source-Hash: d650c71e042c2598
@@ -5780,7 +5840,7 @@ msgstr "Cambiar el eje de giro (Y → X → Z)"
# English: "The walls meet at too sharp or too flat an angle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.theWallsMeetAtTooSharp"
+msgid "editor.toolHint.theWallsMeetAtTooSharp.kh3wi3"
msgstr "Los muros se unen en un ángulo demasiado agudo o demasiado plano"
# Source-Hash: ab206ac56e65f190
@@ -5790,7 +5850,7 @@ msgstr "Los muros se unen en un ángulo demasiado agudo o demasiado plano"
# English: "The window waiting there is taller than this wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.theWindowWaitingThereIsTaller"
+msgid "editor.toolHint.theWindowWaitingThereIsTaller.1tqwez4"
msgstr "La ventana prevista ahí es más alta que este muro"
# Source-Hash: 9c1f47138ed5c7ee
@@ -5800,7 +5860,7 @@ msgstr "La ventana prevista ahí es más alta que este muro"
# English: "Three or more walls meet here"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.threeOrMoreWallsMeetHere"
+msgid "editor.toolHint.threeOrMoreWallsMeetHere.rgifif"
msgstr "Aquí se unen tres o más muros"
# Source-Hash: c3ca56fa28e15f07
@@ -5810,7 +5870,7 @@ msgstr "Aquí se unen tres o más muros"
# English: "Trace ceiling outline"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.traceCeilingOutline"
+msgid "editor.toolHint.traceCeilingOutline.1b639wv"
msgstr "Trazar el contorno del techo"
# Source-Hash: bdf71499d30a29de
@@ -5820,7 +5880,7 @@ msgstr "Trazar el contorno del techo"
# English: "Trace slab outline"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.traceSlabOutline"
+msgid "editor.toolHint.traceSlabOutline.z0j2lc"
msgstr "Trazar el contorno del forjado"
# Source-Hash: c44f7ab8bbd24858
@@ -5830,7 +5890,7 @@ msgstr "Trazar el contorno del forjado"
# English: "Type"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.type"
+msgid "editor.toolHint.type.1m2zofh"
msgstr "Tipo"
# Source-Hash: b54eaaff3349dcb1
@@ -5840,7 +5900,7 @@ msgstr "Tipo"
# English: "Type: Awning"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeAwning"
+msgid "editor.toolHint.typeAwning.1cj59al"
msgstr "Tipo: proyectante"
# Source-Hash: f399572a27417c66
@@ -5850,7 +5910,7 @@ msgstr "Tipo: proyectante"
# English: "Type: Barn"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeBarn"
+msgid "editor.toolHint.typeBarn.sbnygq"
msgstr "Tipo: granero"
# Source-Hash: a1df9782200b5f1e
@@ -5860,7 +5920,7 @@ msgstr "Tipo: granero"
# English: "Type: Bay"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeBay"
+msgid "editor.toolHint.typeBay.1200hc1"
msgstr "Tipo: mirador"
# Source-Hash: ff069a390e8e3f66
@@ -5870,7 +5930,7 @@ msgstr "Tipo: mirador"
# English: "Type: Bow"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeBow"
+msgid "editor.toolHint.typeBow.14s2t9p"
msgstr "Tipo: mirador curvo"
# Source-Hash: bdac5f3f2ea70fff
@@ -5880,7 +5940,7 @@ msgstr "Tipo: mirador curvo"
# English: "Type: Cabinet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeCabinet"
+msgid "editor.toolHint.typeCabinet.1r68je5"
msgstr "Tipo: armario"
# Source-Hash: e0754fc03997cbf9
@@ -5890,7 +5950,7 @@ msgstr "Tipo: armario"
# English: "Type: Casement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeCasement"
+msgid "editor.toolHint.typeCasement.176uo9j"
msgstr "Tipo: abatible"
# Source-Hash: 47d873446d6e173b
@@ -5900,7 +5960,7 @@ msgstr "Tipo: abatible"
# English: "Type: Double"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeDouble"
+msgid "editor.toolHint.typeDouble.af7w4i"
msgstr "Tipo: doble"
# Source-Hash: 5942e484513aaab5
@@ -5910,7 +5970,7 @@ msgstr "Tipo: doble"
# English: "Type: Double Hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeDoubleHung"
+msgid "editor.toolHint.typeDoubleHung.t482fu"
msgstr "Tipo: guillotina doble"
# Source-Hash: f9497fbfceefda27
@@ -5920,7 +5980,7 @@ msgstr "Tipo: guillotina doble"
# English: "Type: Fixed"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeFixed"
+msgid "editor.toolHint.typeFixed.v1cjez"
msgstr "Tipo: fija"
# Source-Hash: 0dcf07acc9cbf000
@@ -5930,7 +5990,7 @@ msgstr "Tipo: fija"
# English: "Type: Folding"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeFolding"
+msgid "editor.toolHint.typeFolding.sxxyng"
msgstr "Tipo: plegable"
# Source-Hash: bff7331f87f279aa
@@ -5940,7 +6000,7 @@ msgstr "Tipo: plegable"
# English: "Type: French"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeFrench"
+msgid "editor.toolHint.typeFrench.1y57z1b"
msgstr "Tipo: francesa"
# Source-Hash: 9d2c3b82079eb769
@@ -5950,7 +6010,7 @@ msgstr "Tipo: francesa"
# English: "Type: Hinged"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeHinged"
+msgid "editor.toolHint.typeHinged.1xrcfju"
msgstr "Tipo: batiente"
# Source-Hash: b8001b90ff522838
@@ -5960,7 +6020,7 @@ msgstr "Tipo: batiente"
# English: "Type: Island"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeIsland"
+msgid "editor.toolHint.typeIsland.ufr3ce"
msgstr "Tipo: isla"
# Source-Hash: 516833c5160d412e
@@ -5970,7 +6030,7 @@ msgstr "Tipo: isla"
# English: "Type: Louvered"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeLouvered"
+msgid "editor.toolHint.typeLouvered.oxl1cz"
msgstr "Tipo: de lamas"
# Source-Hash: 291272bf848ad6ab
@@ -5980,7 +6040,7 @@ msgstr "Tipo: de lamas"
# English: "Type: Pocket"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typePocket"
+msgid "editor.toolHint.typePocket.hc65x9"
msgstr "Tipo: corredera empotrada"
# Source-Hash: 46d0e53d6ae07c72
@@ -5990,7 +6050,7 @@ msgstr "Tipo: corredera empotrada"
# English: "Type: Single Hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeSingleHung"
+msgid "editor.toolHint.typeSingleHung.p53pyl"
msgstr "Tipo: guillotina simple"
# Source-Hash: b11115b50df8faac
@@ -6000,7 +6060,7 @@ msgstr "Tipo: guillotina simple"
# English: "Type: Sliding"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeSliding"
+msgid "editor.toolHint.typeSliding.nwmr3f"
msgstr "Tipo: corredera"
# Source-Hash: bff0c1694ee0a37e
@@ -6010,7 +6070,7 @@ msgstr "Tipo: corredera"
# English: "Vertical stack ↕, click to place"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.verticalStackClickToPlace"
+msgid "editor.toolHint.verticalStackClickToPlace.ijcn4q"
msgstr "Montante vertical ↕, haz clic para colocar"
# Source-Hash: bac471ee67af6412
@@ -6020,7 +6080,7 @@ msgstr "Montante vertical ↕, haz clic para colocar"
# English: "Waste / vent"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.wasteVent"
+msgid "editor.toolHint.wasteVent.1hvi3vj"
msgstr "Desagüe / ventilación"
# Source-Hash: 1c744b7e24fc786e
@@ -6030,7 +6090,7 @@ msgstr "Desagüe / ventilación"
# English: "Window style — click or press L to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.windowStyleClickOrPressL"
+msgid "editor.toolHint.windowStyleClickOrPressL.ah7qm9"
msgstr "Estilo de ventana: haz clic o pulsa L para cambiar"
# Source-Hash: dd6f0ab314fea26c
@@ -6040,7 +6100,7 @@ msgstr "Estilo de ventana: haz clic o pulsa L para cambiar"
# English: "Window type — click or press O to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.windowTypeClickOrPressO"
+msgid "editor.toolHint.windowTypeClickOrPressO.wv4x35"
msgstr "Tipo de ventana: haz clic o pulsa O para cambiar"
# Source-Hash: 9fc7a39bc32f287a
diff --git a/packages/editor/src/i18n/locales/fr/messages.po b/packages/editor/src/i18n/locales/fr/messages.po
index b4d494c9d9..e38d9b018b 100644
--- a/packages/editor/src/i18n/locales/fr/messages.po
+++ b/packages/editor/src/i18n/locales/fr/messages.po
@@ -2461,16 +2461,6 @@ msgstr "Fenêtre"
msgid "editor.actionMenu.structureTools.zone"
msgstr "Zone"
-# Source-Hash: 43af78ba61aaa8ab
-# Review: required
-# AI-Provider: cursor-agent
-# AI-Model: claude-opus
-# English: "below"
-#: packages/editor/src/components/ui/action-menu/view-toggles.tsx
-#, fuzzy
-msgid "editor.actionMenu.viewToggles.below"
-msgstr "en dessous"
-
# Source-Hash: cdf3f12939ba108c
# Review: required
# AI-Provider: cursor-agent
@@ -2591,6 +2581,16 @@ msgstr "Masquer le niveau de référence"
msgid "editor.actionMenu.viewToggles.hideScans"
msgstr "Masquer les relevés 3D"
+# Source-Hash: 873620c284a5651f
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "{count} below"
+#: packages/editor/src/components/ui/action-menu/view-toggles.tsx
+#, fuzzy
+msgid "editor.actionMenu.viewToggles.levelsBelow"
+msgstr "{count} en dessous"
+
# Source-Hash: 22a59ae72d8c9504
# Review: required
# AI-Provider: cursor-agent
@@ -3133,6 +3133,36 @@ msgstr "Enchaînement : {label}"
msgid "editor.helpers.contextualHelperPanel.dragToDrawFence"
msgstr "Faites glisser pour tracer la clôture"
+# Source-Hash: b52e874718af1916
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Erase: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.eraseScope"
+msgstr "Effacer : {scope}"
+
+# Source-Hash: 61f7494abc319e66
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Erase scope — click or press Shift to cycle"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.eraseScopeClickOrPressShift"
+msgstr "Portée de l’effacement — cliquez ou appuyez sur Maj pour changer"
+
+# Source-Hash: 59993c163d68cc53
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Erase scope: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.eraseScopeLabel"
+msgstr "Portée de l’effacement : {scope}"
+
# Source-Hash: a4bdcbc6cab772bf
# Review: required
# AI-Provider: cursor-agent
@@ -3233,6 +3263,46 @@ msgstr "Survolez une surface pour prélever son matériau"
msgid "editor.helpers.contextualHelperPanel.moreShortcuts"
msgstr "Plus de raccourcis"
+# Source-Hash: 476b8f5f9ee542e6
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Paint: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.paintScope"
+msgstr "Peindre : {scope}"
+
+# Source-Hash: 9c09ce4c34122277
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Paint scope — click or press Shift to cycle"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.paintScopeClickOrPressShift"
+msgstr "Portée de la peinture — cliquez ou appuyez sur Maj pour changer"
+
+# Source-Hash: 7890aa81687f6654
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Paint scope: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.paintScopeLabel"
+msgstr "Portée de la peinture : {scope}"
+
+# Source-Hash: a75b3abc0784b12b
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Pick: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.pickScope"
+msgstr "Prélever : {scope}"
+
# Source-Hash: 69c1044e6ea87ccf
# Review: required
# AI-Provider: cursor-agent
@@ -3353,16 +3423,6 @@ msgstr "Enchaînement de clôture droite — cliquez ou appuyez sur C pour bascu
msgid "editor.helpers.contextualHelperPanel.straightSingle"
msgstr "Droite : simple"
-# Source-Hash: 83e56140165f2535
-# Review: required
-# AI-Provider: cursor-agent
-# AI-Model: claude-opus
-# English: "{verb} scope — click or press Shift to cycle"
-#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
-#, fuzzy
-msgid "editor.helpers.contextualHelperPanel.verbScopeClickOrPressShift"
-msgstr "Portée : {verb} — cliquez ou appuyez sur Maj pour changer"
-
# Source-Hash: 9a56d90d461b4bca
# Review: required
# AI-Provider: cursor-agent
@@ -4280,7 +4340,7 @@ msgstr "La scène de l’éditeur n’a pas pu s’afficher"
# English: "A curtain wall takes no corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.aCurtainWallTakesNoCorner"
+msgid "editor.toolHint.aCurtainWallTakesNoCorner.1qxjv5i"
msgstr "Un mur-rideau n’accepte pas de fenêtre d’angle"
# Source-Hash: 97f5e044d46501fb
@@ -4290,7 +4350,7 @@ msgstr "Un mur-rideau n’accepte pas de fenêtre d’angle"
# English: "A curved wall takes no corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.aCurvedWallTakesNoCorner"
+msgid "editor.toolHint.aCurvedWallTakesNoCorner.1vdnaw5"
msgstr "Un mur courbe n’accepte pas de fenêtre d’angle"
# Source-Hash: 776d8ebece7fe1bb
@@ -4300,7 +4360,7 @@ msgstr "Un mur courbe n’accepte pas de fenêtre d’angle"
# English: "Add a corner · click the first to close"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.addACornerClickTheFirst"
+msgid "editor.toolHint.addACornerClickTheFirst.o4r67t"
msgstr "Ajouter un angle · cliquez sur le premier pour fermer"
# Source-Hash: 6a0745dd047b149a
@@ -4310,7 +4370,7 @@ msgstr "Ajouter un angle · cliquez sur le premier pour fermer"
# English: "Another opening is in the way at the corner"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.anotherOpeningIsInTheWay"
+msgid "editor.toolHint.anotherOpeningIsInTheWay.11l9dd0"
msgstr "Une autre ouverture gêne à l’angle"
# Source-Hash: 441124187e7da2fc
@@ -4320,7 +4380,7 @@ msgstr "Une autre ouverture gêne à l’angle"
# English: "Auto hangers"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangers"
+msgid "editor.toolHint.autoHangers.10554ka"
msgstr "Suspentes auto"
# Source-Hash: 47a7f9a6a81156c3
@@ -4330,7 +4390,7 @@ msgstr "Suspentes auto"
# English: "Auto hangers - click or press H to toggle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangersClickOrPressH"
+msgid "editor.toolHint.autoHangersClickOrPressH.rwa3ka"
msgstr "Suspentes auto - cliquez ou appuyez sur H pour basculer"
# Source-Hash: d7944f31cba90e26
@@ -4340,7 +4400,7 @@ msgstr "Suspentes auto - cliquez ou appuyez sur H pour basculer"
# English: "Auto hangers: Off"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangersOff"
+msgid "editor.toolHint.autoHangersOff.7yx01x"
msgstr "Suspentes auto : désactivées"
# Source-Hash: 295882d015d08742
@@ -4350,7 +4410,7 @@ msgstr "Suspentes auto : désactivées"
# English: "Auto hangers: On"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangersOn"
+msgid "editor.toolHint.autoHangersOn.10b1umh"
msgstr "Suspentes auto : activées"
# Source-Hash: 8c039e5182b01c4d
@@ -4360,7 +4420,7 @@ msgstr "Suspentes auto : activées"
# English: "Bypass snapping"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.bypassSnapping"
+msgid "editor.toolHint.bypassSnapping.w5lmdv"
msgstr "Ignorer l’aimantation"
# Source-Hash: c0774c185060fc13
@@ -4370,7 +4430,7 @@ msgstr "Ignorer l’aimantation"
# English: "Cancel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancel"
+msgid "editor.toolHint.cancel.ew9em3"
msgstr "Annuler"
# Source-Hash: 5b33b576fd30b74e
@@ -4380,7 +4440,7 @@ msgstr "Annuler"
# English: "Cancel move"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancelMove"
+msgid "editor.toolHint.cancelMove.lvp31c"
msgstr "Annuler le déplacement"
# Source-Hash: 136fa29b9ae419bf
@@ -4390,7 +4450,7 @@ msgstr "Annuler le déplacement"
# English: "Cancel run / exit"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancelRunExit"
+msgid "editor.toolHint.cancelRunExit.zqjf3h"
msgstr "Annuler le tronçon / quitter"
# Source-Hash: 75b406824be91ac2
@@ -4400,7 +4460,7 @@ msgstr "Annuler le tronçon / quitter"
# English: "Cancel start point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancelStartPoint"
+msgid "editor.toolHint.cancelStartPoint.1xbq2lh"
msgstr "Annuler le point de départ"
# Source-Hash: ffa5aaa1746303c4
@@ -4410,7 +4470,7 @@ msgstr "Annuler le point de départ"
# English: "Corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cornerWindow"
+msgid "editor.toolHint.cornerWindow.1avkzpo"
msgstr "Fenêtre d’angle"
# Source-Hash: b0afdd855a02e4a7
@@ -4420,7 +4480,7 @@ msgstr "Fenêtre d’angle"
# English: "Cuts"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cuts"
+msgid "editor.toolHint.cuts.1y0axps"
msgstr "Coupes"
# Source-Hash: dc9fe7601cc525f8
@@ -4430,7 +4490,7 @@ msgstr "Coupes"
# English: "Cuts: {value}"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cutsValue"
+msgid "editor.toolHint.cutsValue.ouzhvb"
msgstr "Coupes : {value}"
# Source-Hash: a2e13bc4dc82624c
@@ -4440,7 +4500,7 @@ msgstr "Coupes : {value}"
# English: "Cuts: {value}, even"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cutsValueEven"
+msgid "editor.toolHint.cutsValueEven.1ngsz3"
msgstr "Coupes : {value}, régulières"
# Source-Hash: 04152b4cec726f34
@@ -4450,7 +4510,7 @@ msgstr "Coupes : {value}, régulières"
# English: "Cycle mono / gable / butterfly"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cycleMonoGableButterfly"
+msgid "editor.toolHint.cycleMonoGableButterfly.1poga3m"
msgstr "Basculer un pan / deux pans / papillon"
# Source-Hash: 4fb6c83edb6652b5
@@ -4460,7 +4520,7 @@ msgstr "Basculer un pan / deux pans / papillon"
# English: "Cycle snapping mode"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cycleSnappingMode"
+msgid "editor.toolHint.cycleSnappingMode.1ct0gn6"
msgstr "Changer le mode d’aimantation"
# Source-Hash: 5d550a3ac76279de
@@ -4470,7 +4530,7 @@ msgstr "Changer le mode d’aimantation"
# English: "Door style — click or press L to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.doorStyleClickOrPressL"
+msgid "editor.toolHint.doorStyleClickOrPressL.33pe65"
msgstr "Style de porte — cliquez ou appuyez sur L pour changer"
# Source-Hash: 3272a7df5d7c6a9a
@@ -4480,7 +4540,7 @@ msgstr "Style de porte — cliquez ou appuyez sur L pour changer"
# English: "Door type — click or press O to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.doorTypeClickOrPressO"
+msgid "editor.toolHint.doorTypeClickOrPressO.1hhh8gt"
msgstr "Type de porte — cliquez ou appuyez sur O pour changer"
# Source-Hash: 366222b4435eefda
@@ -4490,7 +4550,7 @@ msgstr "Type de porte — cliquez ou appuyez sur O pour changer"
# English: "Drop downspout from outlet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.dropDownspoutFromOutlet"
+msgid "editor.toolHint.dropDownspoutFromOutlet.1k4h1m4"
msgstr "Descendre la descente depuis la sortie"
# Source-Hash: 03f306371f345007
@@ -4500,7 +4560,7 @@ msgstr "Descendre la descente depuis la sortie"
# English: "Duct diameter down / up"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.ductDiameterDownUp"
+msgid "editor.toolHint.ductDiameterDownUp.1wdz5vq"
msgstr "Diamètre de gaine moins / plus"
# Source-Hash: 7b4137e27f8327d9
@@ -4510,7 +4570,7 @@ msgstr "Diamètre de gaine moins / plus"
# English: "End run / cancel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.endRunCancel"
+msgid "editor.toolHint.endRunCancel.59dh2w"
msgstr "Terminer le tronçon / annuler"
# Source-Hash: 938aacb119b29dc1
@@ -4520,7 +4580,7 @@ msgstr "Terminer le tronçon / annuler"
# English: "Exit"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.exit"
+msgid "editor.toolHint.exit.engmg5"
msgstr "Quitter"
# Source-Hash: 7cb4e0688cabcb00
@@ -4530,7 +4590,7 @@ msgstr "Quitter"
# English: "Exit drawing"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.exitDrawing"
+msgid "editor.toolHint.exitDrawing.9noxyb"
msgstr "Quitter le tracé"
# Source-Hash: 47025a103c456125
@@ -4540,7 +4600,7 @@ msgstr "Quitter le tracé"
# English: "Finish and continue"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishAndContinue"
+msgid "editor.toolHint.finishAndContinue.1gpfsks"
msgstr "Terminer et continuer"
# Source-Hash: 000918429b74128f
@@ -4550,7 +4610,7 @@ msgstr "Terminer et continuer"
# English: "Finish ceiling"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishCeiling"
+msgid "editor.toolHint.finishCeiling.1c1lfel"
msgstr "Terminer le plafond"
# Source-Hash: 51a80a0dba5a6f30
@@ -4560,7 +4620,7 @@ msgstr "Terminer le plafond"
# English: "Finish grid axis"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishGridAxis"
+msgid "editor.toolHint.finishGridAxis.1wvrfhr"
msgstr "Terminer l’axe de trame"
# Source-Hash: 87c7b98fc2e010e1
@@ -4570,7 +4630,7 @@ msgstr "Terminer l’axe de trame"
# English: "Finish measurement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishMeasurement"
+msgid "editor.toolHint.finishMeasurement.1e4gv16"
msgstr "Terminer la mesure"
# Source-Hash: 5e1a0af7dc506826
@@ -4580,7 +4640,7 @@ msgstr "Terminer la mesure"
# English: "Finish multi-point witnesses"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishMultiPointWitnesses"
+msgid "editor.toolHint.finishMultiPointWitnesses.8wzskz"
msgstr "Terminer les repères multipoints"
# Source-Hash: 30fc0862501ba2e8
@@ -4590,7 +4650,7 @@ msgstr "Terminer les repères multipoints"
# English: "Finish slab"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishSlab"
+msgid "editor.toolHint.finishSlab.xmnm8e"
msgstr "Terminer la dalle"
# Source-Hash: 66ed7c7598d3aa29
@@ -4600,7 +4660,7 @@ msgstr "Terminer la dalle"
# English: "Flip side"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.flipSide"
+msgid "editor.toolHint.flipSide.172xku9"
msgstr "Inverser le côté"
# Source-Hash: f5717f6a0905ffab
@@ -4610,7 +4670,7 @@ msgstr "Inverser le côté"
# English: "Follow: trace a lineset"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.followTraceALineset"
+msgid "editor.toolHint.followTraceALineset.mgquwe"
msgstr "Suivre : longer une liaison frigorifique"
# Source-Hash: ed7f3d8417a3e074
@@ -4620,7 +4680,7 @@ msgstr "Suivre : longer une liaison frigorifique"
# English: "Force place"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.forcePlace"
+msgid "editor.toolHint.forcePlace.1hq1nr"
msgstr "Forcer le placement"
# Source-Hash: cc0c14065951444d
@@ -4630,7 +4690,7 @@ msgstr "Forcer le placement"
# English: "Free placement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.freePlacement"
+msgid "editor.toolHint.freePlacement.1nztdac"
msgstr "Placement libre"
# Source-Hash: f098a27096a9c1ea
@@ -4640,7 +4700,7 @@ msgstr "Placement libre"
# English: "Go vertical ↕, click to place"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.goVerticalClickToPlace"
+msgid "editor.toolHint.goVerticalClickToPlace.dg8g6m"
msgstr "Passer en vertical ↕, cliquez pour placer"
# Source-Hash: fd47f1820d8799c8
@@ -4650,7 +4710,7 @@ msgstr "Passer en vertical ↕, cliquez pour placer"
# English: "Highlight outlet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.highlightOutlet"
+msgid "editor.toolHint.highlightOutlet.65hoq8"
msgstr "Mettre en évidence la sortie"
# Source-Hash: eb90058d0f856f67
@@ -4660,7 +4720,7 @@ msgstr "Mettre en évidence la sortie"
# English: "Join as a corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.joinAsACornerWindow"
+msgid "editor.toolHint.joinAsACornerWindow.jvdp4j"
msgstr "Joindre en fenêtre d’angle"
# Source-Hash: 225b3161f2e59757
@@ -4670,7 +4730,7 @@ msgstr "Joindre en fenêtre d’angle"
# English: "Alt + drag"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.altDrag"
+msgid "editor.toolHint.key.altDrag.ai3wn9"
msgstr "Alt + glisser"
# Source-Hash: dd66f883b173fc72
@@ -4680,7 +4740,7 @@ msgstr "Alt + glisser"
# English: "Backspace"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.backspace"
+msgid "editor.toolHint.key.backspace.qy6qx8"
msgstr "Retour arrière"
# Source-Hash: a18387bc0be54c32
@@ -4690,7 +4750,7 @@ msgstr "Retour arrière"
# English: "Click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.click"
+msgid "editor.toolHint.key.click.m8sun"
msgstr "Clic"
# Source-Hash: db9e60c1d30b8499
@@ -4700,7 +4760,7 @@ msgstr "Clic"
# English: "Click again"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.clickAgain"
+msgid "editor.toolHint.key.clickAgain.190ws9j"
msgstr "Cliquer à nouveau"
# Source-Hash: f400330b9c9c12e8
@@ -4710,7 +4770,7 @@ msgstr "Cliquer à nouveau"
# English: "Command"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.command"
+msgid "editor.toolHint.key.command.1j2mkia"
msgstr "Commande"
# Source-Hash: 976c63285a510b09
@@ -4720,7 +4780,7 @@ msgstr "Commande"
# English: "Control"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.control"
+msgid "editor.toolHint.key.control.10fbl8e"
msgstr "Contrôle"
# Source-Hash: b26de372b4b0eaac
@@ -4730,7 +4790,7 @@ msgstr "Contrôle"
# English: "Delete"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.delete"
+msgid "editor.toolHint.key.delete.oay2cq"
msgstr "Supprimer"
# Source-Hash: 88888c9d2719fa92
@@ -4740,7 +4800,7 @@ msgstr "Supprimer"
# English: "Double click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.doubleClick"
+msgid "editor.toolHint.key.doubleClick.vlma6o"
msgstr "Double-clic"
# Source-Hash: dfb85b2addb7b9fa
@@ -4750,7 +4810,7 @@ msgstr "Double-clic"
# English: "Drag"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.drag"
+msgid "editor.toolHint.key.drag.8pwtpf"
msgstr "Glisser"
# Source-Hash: ed9140d42148c99b
@@ -4760,7 +4820,7 @@ msgstr "Glisser"
# English: "Enter"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.enter"
+msgid "editor.toolHint.key.enter.1ctpui5"
msgstr "Entrée"
# Source-Hash: 9195fa8b9c8ebdfb
@@ -4770,7 +4830,7 @@ msgstr "Entrée"
# English: "Hover"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hover"
+msgid "editor.toolHint.key.hover.6xw79p"
msgstr "Survoler"
# Source-Hash: 2d78441b741bc562
@@ -4780,7 +4840,7 @@ msgstr "Survoler"
# English: "Hover a duct end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hoverADuctEnd"
+msgid "editor.toolHint.key.hoverADuctEnd.19axr3b"
msgstr "Survolez une extrémité de gaine"
# Source-Hash: 6083405086f61c76
@@ -4790,7 +4850,7 @@ msgstr "Survolez une extrémité de gaine"
# English: "Hover a pipe end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hoverAPipeEnd"
+msgid "editor.toolHint.key.hoverAPipeEnd.1jbum5f"
msgstr "Survolez une extrémité de tuyau"
# Source-Hash: a5a337eb76fdb066
@@ -4800,7 +4860,7 @@ msgstr "Survolez une extrémité de tuyau"
# English: "Hover gutter"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hoverGutter"
+msgid "editor.toolHint.key.hoverGutter.1dwcsno"
msgstr "Survolez la gouttière"
# Source-Hash: a58533594411e088
@@ -4810,7 +4870,7 @@ msgstr "Survolez la gouttière"
# English: "Left click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.leftClick"
+msgid "editor.toolHint.key.leftClick.s4gwfc"
msgstr "Clic gauche"
# Source-Hash: bc4ab608ec3d3b4f
@@ -4820,7 +4880,7 @@ msgstr "Clic gauche"
# English: "Middle click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.middleClick"
+msgid "editor.toolHint.key.middleClick.1jbaan4"
msgstr "Clic central"
# Source-Hash: 6791879c651108c7
@@ -4830,7 +4890,7 @@ msgstr "Clic central"
# English: "Right click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.rightClick"
+msgid "editor.toolHint.key.rightClick.1ovld0h"
msgstr "Clic droit"
# Source-Hash: c836b21b42198868
@@ -4840,7 +4900,7 @@ msgstr "Clic droit"
# English: "R / Shift+R"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.rShiftR"
+msgid "editor.toolHint.key.rShiftR.13bnobh"
msgstr "R / Maj+R"
# Source-Hash: 9812aa06d8bb7544
@@ -4850,7 +4910,7 @@ msgstr "R / Maj+R"
# English: "Scroll"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.scroll"
+msgid "editor.toolHint.key.scroll.ai6wr0"
msgstr "Défilement"
# Source-Hash: f2174536230657c8
@@ -4860,7 +4920,7 @@ msgstr "Défilement"
# English: "Scroll wheel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.scrollWheel"
+msgid "editor.toolHint.key.scrollWheel.18j0ix7"
msgstr "Molette"
# Source-Hash: 82dd231086d87f3b
@@ -4870,7 +4930,7 @@ msgstr "Molette"
# English: "Space"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.space"
+msgid "editor.toolHint.key.space.1hrh82t"
msgstr "Espace"
# Source-Hash: 9e68aa2f472cad56
@@ -4880,7 +4940,7 @@ msgstr "Espace"
# English: "Tab"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.tab"
+msgid "editor.toolHint.key.tab.1xsal0s"
msgstr "Tab"
# Source-Hash: 4b221b73f9496a49
@@ -4890,7 +4950,7 @@ msgstr "Tab"
# English: "Mount: floor / ceiling / wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.mountFloorCeilingWall"
+msgid "editor.toolHint.mountFloorCeilingWall.32dxpv"
msgstr "Pose : sol / plafond / mur"
# Source-Hash: 225edfb1e45aed95
@@ -4900,7 +4960,7 @@ msgstr "Pose : sol / plafond / mur"
# English: "No room for the matching window on the other wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.noRoomForTheMatchingWindow"
+msgid "editor.toolHint.noRoomForTheMatchingWindow.1755948"
msgstr "Pas de place pour la fenêtre correspondante sur l’autre mur"
# Source-Hash: a7045d6b678bcd13
@@ -4910,7 +4970,7 @@ msgstr "Pas de place pour la fenêtre correspondante sur l’autre mur"
# English: "No wall meets here"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.noWallMeetsHere"
+msgid "editor.toolHint.noWallMeetsHere.19n99yc"
msgstr "Aucun mur ne se rejoint ici"
# Source-Hash: a639341dc21fed2c
@@ -4920,7 +4980,7 @@ msgstr "Aucun mur ne se rejoint ici"
# English: "Number of cuts — scroll or click to change"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.numberOfCutsScrollOrClick"
+msgid "editor.toolHint.numberOfCutsScrollOrClick.1kqe84b"
msgstr "Nombre de coupes — faites défiler ou cliquez pour modifier"
# Source-Hash: af01bde3ae4b7e59
@@ -4930,7 +4990,7 @@ msgstr "Nombre de coupes — faites défiler ou cliquez pour modifier"
# English: "Pick witness point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.pickWitnessPoint"
+msgid "editor.toolHint.pickWitnessPoint.k3hgh1"
msgstr "Choisir un point de repère"
# Source-Hash: ecfd58576b28a9f6
@@ -4940,7 +5000,7 @@ msgstr "Choisir un point de repère"
# English: "Pipe size down / up"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.pipeSizeDownUp"
+msgid "editor.toolHint.pipeSizeDownUp.wp04og"
msgstr "Diamètre de tuyau moins / plus"
# Source-Hash: 7a1eb7b64f06bad0
@@ -4950,7 +5010,7 @@ msgstr "Diamètre de tuyau moins / plus"
# English: "Place and continue"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeAndContinue"
+msgid "editor.toolHint.placeAndContinue.qfwkrq"
msgstr "Placer et continuer"
# Source-Hash: c6cda39e2e4b5d3a
@@ -4960,7 +5020,7 @@ msgstr "Placer et continuer"
# English: "Place block"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeBlock"
+msgid "editor.toolHint.placeBlock.1aylwrx"
msgstr "Placer le bloc"
# Source-Hash: 45a743c52a1d72de
@@ -4970,7 +5030,7 @@ msgstr "Placer le bloc"
# English: "Place box vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeBoxVentOnRoof"
+msgid "editor.toolHint.placeBoxVentOnRoof.kf88e5"
msgstr "Placer l’aérateur sur le toit"
# Source-Hash: 75142dd1d557efe2
@@ -4980,7 +5040,7 @@ msgstr "Placer l’aérateur sur le toit"
# English: "Place cabinet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeCabinet"
+msgid "editor.toolHint.placeCabinet.b0ouyk"
msgstr "Placer le meuble"
# Source-Hash: da603a713d4c9909
@@ -4990,7 +5050,7 @@ msgstr "Placer le meuble"
# English: "Place canopy or set the next run point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeCanopyOrSetTheNext"
+msgid "editor.toolHint.placeCanopyOrSetTheNext.12l7zf8"
msgstr "Placer l’auvent ou le point suivant"
# Source-Hash: 8b3a30c6b7a5612d
@@ -5000,7 +5060,7 @@ msgstr "Placer l’auvent ou le point suivant"
# English: "Place chimney on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeChimneyOnRoof"
+msgid "editor.toolHint.placeChimneyOnRoof.19dbqu"
msgstr "Placer la cheminée sur le toit"
# Source-Hash: 710d41e4e2f259fa
@@ -5010,7 +5070,7 @@ msgstr "Placer la cheminée sur le toit"
# English: "Place column"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeColumn"
+msgid "editor.toolHint.placeColumn.1w2vq86"
msgstr "Placer le poteau"
# Source-Hash: ee1da4e12a71d9a9
@@ -5020,7 +5080,7 @@ msgstr "Placer le poteau"
# English: "Place cupola on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeCupolaOnRoof"
+msgid "editor.toolHint.placeCupolaOnRoof.ofx3bn"
msgstr "Placer le lanterneau sur le toit"
# Source-Hash: 19c1fe8c46d213a5
@@ -5030,7 +5090,7 @@ msgstr "Placer le lanterneau sur le toit"
# English: "Place dimension line when needed"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeDimensionLineWhenNeeded"
+msgid "editor.toolHint.placeDimensionLineWhenNeeded.bjw2cj"
msgstr "Placer la ligne de cote si nécessaire"
# Source-Hash: 58f3e7efb6ea120b
@@ -5040,7 +5100,7 @@ msgstr "Placer la ligne de cote si nécessaire"
# English: "Place door on wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeDoorOnWall"
+msgid "editor.toolHint.placeDoorOnWall.1jwadf"
msgstr "Placer la porte sur le mur"
# Source-Hash: de04e9d03d937c97
@@ -5050,7 +5110,7 @@ msgstr "Placer la porte sur le mur"
# English: "Place dormer on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeDormerOnRoof"
+msgid "editor.toolHint.placeDormerOnRoof.1w518a6"
msgstr "Placer la lucarne sur le toit"
# Source-Hash: c581645f2ee447c2
@@ -5060,7 +5120,7 @@ msgstr "Placer la lucarne sur le toit"
# English: "Place elevator"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeElevator"
+msgid "editor.toolHint.placeElevator.1f65zva"
msgstr "Placer l’ascenseur"
# Source-Hash: 096b8d6482717358
@@ -5070,7 +5130,7 @@ msgstr "Placer l’ascenseur"
# English: "Place eyebrow vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeEyebrowVentOnRoof"
+msgid "editor.toolHint.placeEyebrowVentOnRoof.1h1tqxn"
msgstr "Placer le chien-assis sur le toit"
# Source-Hash: e8d42c1c8370773f
@@ -5080,7 +5140,7 @@ msgstr "Placer le chien-assis sur le toit"
# English: "Place fitting"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeFitting"
+msgid "editor.toolHint.placeFitting.1pmx3vn"
msgstr "Placer le raccord"
# Source-Hash: 2340a4b70cb0d9ad
@@ -5090,7 +5150,7 @@ msgstr "Placer le raccord"
# English: "Place gutter on roof eave"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeGutterOnRoofEave"
+msgid "editor.toolHint.placeGutterOnRoofEave.llwzf9"
msgstr "Placer la gouttière sur l’égout du toit"
# Source-Hash: 706a8eafb6212833
@@ -5100,7 +5160,7 @@ msgstr "Placer la gouttière sur l’égout du toit"
# English: "Place item"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeItem"
+msgid "editor.toolHint.placeItem.teynf"
msgstr "Placer l’élément"
# Source-Hash: 1815c482e249932e
@@ -5110,7 +5170,7 @@ msgstr "Placer l’élément"
# English: "Place it (locked to 45°)"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeItLockedTo45"
+msgid "editor.toolHint.placeItLockedTo45.16e4csk"
msgstr "Placer (verrouillé à 45°)"
# Source-Hash: 4a14340657532838
@@ -5120,7 +5180,7 @@ msgstr "Placer (verrouillé à 45°)"
# English: "Place measurement point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeMeasurementPoint"
+msgid "editor.toolHint.placeMeasurementPoint.bsatli"
msgstr "Placer le point de mesure"
# Source-Hash: b3be684ac62fbf53
@@ -5130,7 +5190,7 @@ msgstr "Placer le point de mesure"
# English: "Placement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placement"
+msgid "editor.toolHint.placement.13lcvts"
msgstr "Placement"
# Source-Hash: 2bb2ce6276c69b1e
@@ -5140,7 +5200,7 @@ msgstr "Placement"
# English: "Placement: Auto"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementAuto"
+msgid "editor.toolHint.placementAuto.1caa52d"
msgstr "Placement : auto"
# Source-Hash: ed78ac5354a1dcd8
@@ -5150,7 +5210,7 @@ msgstr "Placement : auto"
# English: "Placement: Ground"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementGround"
+msgid "editor.toolHint.placementGround.1ruz145"
msgstr "Placement : sol"
# Source-Hash: a066a2c9d5e65a1a
@@ -5160,7 +5220,7 @@ msgstr "Placement : sol"
# English: "Placement: Roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementRoof"
+msgid "editor.toolHint.placementRoof.renkw8"
msgstr "Placement : toit"
# Source-Hash: 8f74dbe5064c4c66
@@ -5170,7 +5230,7 @@ msgstr "Placement : toit"
# English: "Placement surface - click or press P to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementSurfaceClickOrPressP"
+msgid "editor.toolHint.placementSurfaceClickOrPressP.w56h19"
msgstr "Surface de placement - cliquez ou appuyez sur P pour changer"
# Source-Hash: fe119955c925feaf
@@ -5180,7 +5240,7 @@ msgstr "Surface de placement - cliquez ou appuyez sur P pour changer"
# English: "Placement type"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementType"
+msgid "editor.toolHint.placementType.1mdpl60"
msgstr "Type de placement"
# Source-Hash: 33043a35500168f5
@@ -5190,7 +5250,7 @@ msgstr "Type de placement"
# English: "Placement type — click or press I to toggle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementTypeClickOrPressI"
+msgid "editor.toolHint.placementTypeClickOrPressI.10cgxh2"
msgstr "Type de placement — cliquez ou appuyez sur I pour basculer"
# Source-Hash: 9945f412e6a9a446
@@ -5200,7 +5260,7 @@ msgstr "Type de placement — cliquez ou appuyez sur I pour basculer"
# English: "Place on a fence"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeOnAFence"
+msgid "editor.toolHint.placeOnAFence.1dptstr"
msgstr "Placer sur une clôture"
# Source-Hash: 6708118775a7da7f
@@ -5210,7 +5270,7 @@ msgstr "Placer sur une clôture"
# English: "Place register"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeRegister"
+msgid "editor.toolHint.placeRegister.1uebycd"
msgstr "Placer la bouche"
# Source-Hash: ebd2731f5c79306e
@@ -5220,7 +5280,7 @@ msgstr "Placer la bouche"
# English: "Place ridge vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeRidgeVentOnRoof"
+msgid "editor.toolHint.placeRidgeVentOnRoof.2tpd8r"
msgstr "Placer la ventilation de faîtage sur le toit"
# Source-Hash: 9b3c66a867c23326
@@ -5230,7 +5290,7 @@ msgstr "Placer la ventilation de faîtage sur le toit"
# English: "Place shelf"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeShelf"
+msgid "editor.toolHint.placeShelf.y4l3iw"
msgstr "Placer l’étagère"
# Source-Hash: f11cf5c1c9fe862d
@@ -5240,7 +5300,7 @@ msgstr "Placer l’étagère"
# English: "Place skylight on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeSkylightOnRoof"
+msgid "editor.toolHint.placeSkylightOnRoof.e215pe"
msgstr "Placer la fenêtre de toit"
# Source-Hash: e989a58d6709cc16
@@ -5250,7 +5310,7 @@ msgstr "Placer la fenêtre de toit"
# English: "Place solar panel array on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeSolarPanelArrayOnRoof"
+msgid "editor.toolHint.placeSolarPanelArrayOnRoof.kk11fn"
msgstr "Placer les panneaux solaires sur le toit"
# Source-Hash: b67f7036d5180cf5
@@ -5260,7 +5320,7 @@ msgstr "Placer les panneaux solaires sur le toit"
# English: "Place spawn point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeSpawnPoint"
+msgid "editor.toolHint.placeSpawnPoint.205o25"
msgstr "Placer le point d’apparition"
# Source-Hash: 6c7f32a17e5636c3
@@ -5270,7 +5330,7 @@ msgstr "Placer le point d’apparition"
# English: "Place stairs"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeStairs"
+msgid "editor.toolHint.placeStairs.zwxxu2"
msgstr "Placer l’escalier"
# Source-Hash: 641c0d3debd798a8
@@ -5280,7 +5340,7 @@ msgstr "Placer l’escalier"
# English: "Place trap"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeTrap"
+msgid "editor.toolHint.placeTrap.1gxemn3"
msgstr "Placer le siphon"
# Source-Hash: 6f0a6f6c4b7588a0
@@ -5290,7 +5350,7 @@ msgstr "Placer le siphon"
# English: "Place turbine vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeTurbineVentOnRoof"
+msgid "editor.toolHint.placeTurbineVentOnRoof.1iqeluf"
msgstr "Placer l’extracteur éolien sur le toit"
# Source-Hash: e65cf5edb4f51ed5
@@ -5300,7 +5360,7 @@ msgstr "Placer l’extracteur éolien sur le toit"
# English: "Place unit"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeUnit"
+msgid "editor.toolHint.placeUnit.8zkx4q"
msgstr "Placer l’unité"
# Source-Hash: 86ce1c730154f68b
@@ -5310,7 +5370,7 @@ msgstr "Placer l’unité"
# English: "Place window on wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeWindowOnWall"
+msgid "editor.toolHint.placeWindowOnWall.1k3qnfb"
msgstr "Placer la fenêtre sur le mur"
# Source-Hash: 2b612180a7617901
@@ -5320,7 +5380,7 @@ msgstr "Placer la fenêtre sur le mur"
# English: "Place without the corner snap"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeWithoutTheCornerSnap"
+msgid "editor.toolHint.placeWithoutTheCornerSnap.1nifqew"
msgstr "Placer sans l’aimantation d’angle"
# Source-Hash: 0dc6d121791696f7
@@ -5330,7 +5390,7 @@ msgstr "Placer sans l’aimantation d’angle"
# English: "Remove last point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.removeLastPoint"
+msgid "editor.toolHint.removeLastPoint.2dmdcx"
msgstr "Retirer le dernier point"
# Source-Hash: 8b74b1d962be10fc
@@ -5340,7 +5400,7 @@ msgstr "Retirer le dernier point"
# English: "Remove last witness"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.removeLastWitness"
+msgid "editor.toolHint.removeLastWitness.1b6vvzw"
msgstr "Retirer le dernier repère"
# Source-Hash: 306d409f8a1cf480
@@ -5350,7 +5410,7 @@ msgstr "Retirer le dernier repère"
# English: "Rotate"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotate"
+msgid "editor.toolHint.rotate.1thqa0a"
msgstr "Pivoter"
# Source-Hash: 8a665ecaeffa9308
@@ -5360,7 +5420,7 @@ msgstr "Pivoter"
# English: "Rotate ±45°"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotate45"
+msgid "editor.toolHint.rotate45.9zq68u"
msgstr "Pivoter de ±45°"
# Source-Hash: be2240289aa74df5
@@ -5370,7 +5430,7 @@ msgstr "Pivoter de ±45°"
# English: "Rotate ±45° (floor / ceiling)"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotate45FloorCeiling"
+msgid "editor.toolHint.rotate45FloorCeiling.m9t57d"
msgstr "Pivoter de ±45° (sol / plafond)"
# Source-Hash: d5fb78b07c0f8138
@@ -5380,7 +5440,7 @@ msgstr "Pivoter de ±45° (sol / plafond)"
# English: "Rotate ghost ±15°"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateGhost15"
+msgid "editor.toolHint.rotateGhost15.rsa52c"
msgstr "Pivoter l’aperçu de ±15°"
# Source-Hash: 912d340cd16e27fa
@@ -5390,7 +5450,7 @@ msgstr "Pivoter l’aperçu de ±15°"
# English: "Rotate or flip the run side"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateOrFlipTheRunSide"
+msgid "editor.toolHint.rotateOrFlipTheRunSide.t5ior7"
msgstr "Pivoter ou inverser le côté de la rangée"
# Source-Hash: ad1dc0b5536cceef
@@ -5400,7 +5460,7 @@ msgstr "Pivoter ou inverser le côté de la rangée"
# English: "Rotate roof direction 90°"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateRoofDirection90"
+msgid "editor.toolHint.rotateRoofDirection90.tvbji2"
msgstr "Pivoter l’orientation du toit de 90°"
# Source-Hash: fa24651e9e5f595a
@@ -5410,7 +5470,7 @@ msgstr "Pivoter l’orientation du toit de 90°"
# English: "Rotate spawn point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateSpawnPoint"
+msgid "editor.toolHint.rotateSpawnPoint.1opcuu7"
msgstr "Pivoter le point d’apparition"
# Source-Hash: 2d693d87fe9b59e6
@@ -5420,7 +5480,7 @@ msgstr "Pivoter le point d’apparition"
# English: "Round / rectangular / oval"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.roundRectangularOval"
+msgid "editor.toolHint.roundRectangularOval.e4nh6x"
msgstr "Rond / rectangulaire / oblong"
# Source-Hash: f7d2c9cdcc637c97
@@ -5430,7 +5490,7 @@ msgstr "Rond / rectangulaire / oblong"
# English: "Set fence start / end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setFenceStartEnd"
+msgid "editor.toolHint.setFenceStartEnd.1phbwsq"
msgstr "Définir le début / la fin de la clôture"
# Source-Hash: c93ae898b4d59f6f
@@ -5440,7 +5500,7 @@ msgstr "Définir le début / la fin de la clôture"
# English: "Set one corner, then the opposite"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setOneCornerThenTheOpposite"
+msgid "editor.toolHint.setOneCornerThenTheOpposite.8tsl49"
msgstr "Placez un angle, puis l’angle opposé"
# Source-Hash: 4f55171f10c6ceeb
@@ -5450,7 +5510,7 @@ msgstr "Placez un angle, puis l’angle opposé"
# English: "Set roof footprint"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setRoofFootprint"
+msgid "editor.toolHint.setRoofFootprint.p50n0o"
msgstr "Définir l’emprise du toit"
# Source-Hash: 0243859b1d64c21e
@@ -5460,7 +5520,7 @@ msgstr "Définir l’emprise du toit"
# English: "Set wall start / end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setWallStartEnd"
+msgid "editor.toolHint.setWallStartEnd.1r8ubcx"
msgstr "Définir le début / la fin du mur"
# Source-Hash: c2806cce9612fa50
@@ -5470,7 +5530,7 @@ msgstr "Définir le début / la fin du mur"
# English: "Slope / level"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.slopeLevel"
+msgid "editor.toolHint.slopeLevel.ftqp67"
msgstr "Pente / à plat"
# Source-Hash: 06c0ec40606db679
@@ -5480,7 +5540,7 @@ msgstr "Pente / à plat"
# English: "Snap onto the run"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.snapOntoTheRun"
+msgid "editor.toolHint.snapOntoTheRun.86yhmp"
msgstr "Aimanter sur le tronçon"
# Source-Hash: e214cccbac9c4fd2
@@ -5490,7 +5550,7 @@ msgstr "Aimanter sur le tronçon"
# English: "Split at the marks"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.splitAtTheMarks"
+msgid "editor.toolHint.splitAtTheMarks.x5tpdd"
msgstr "Diviser aux repères"
# Source-Hash: 94455c35bfeac6b4
@@ -5500,7 +5560,7 @@ msgstr "Diviser aux repères"
# English: "Start grid axis"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startGridAxis"
+msgid "editor.toolHint.startGridAxis.k92yza"
msgstr "Commencer l’axe de trame"
# Source-Hash: 2edb4c29bbe7c513
@@ -5510,7 +5570,7 @@ msgstr "Commencer l’axe de trame"
# English: "Start lineset"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startLineset"
+msgid "editor.toolHint.startLineset.23q8dh"
msgstr "Commencer la liaison frigorifique"
# Source-Hash: 9e50f1b30e325208
@@ -5520,7 +5580,7 @@ msgstr "Commencer la liaison frigorifique"
# English: "Start liquid line"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startLiquidLine"
+msgid "editor.toolHint.startLiquidLine.1rlxsgd"
msgstr "Commencer la ligne liquide"
# Source-Hash: 877ddcb778c211cc
@@ -5530,7 +5590,7 @@ msgstr "Commencer la ligne liquide"
# English: "Start run"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startRun"
+msgid "editor.toolHint.startRun.r6fc5u"
msgstr "Commencer le tronçon"
# Source-Hash: 8a62bee64174bbc0
@@ -5540,7 +5600,7 @@ msgstr "Commencer le tronçon"
# English: "Start segment"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startSegment"
+msgid "editor.toolHint.startSegment.rolym6"
msgstr "Commencer le segment"
# Source-Hash: 6cc5dc51a8e66779
@@ -5550,7 +5610,7 @@ msgstr "Commencer le segment"
# English: "Step back or cancel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.stepBackOrCancel"
+msgid "editor.toolHint.stepBackOrCancel.zbfdkn"
msgstr "Revenir en arrière ou annuler"
# Source-Hash: 1a79a485d91f3f28
@@ -5560,7 +5620,7 @@ msgstr "Revenir en arrière ou annuler"
# English: "Style"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.style"
+msgid "editor.toolHint.style.nf3vcm"
msgstr "Style"
# Source-Hash: 81f595b1c47c0080
@@ -5570,7 +5630,7 @@ msgstr "Style"
# English: "Style: Barn"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleBarn"
+msgid "editor.toolHint.styleBarn.k9n1x"
msgstr "Style : grange"
# Source-Hash: 3a82c718fe215273
@@ -5580,7 +5640,7 @@ msgstr "Style : grange"
# English: "Style: Casement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleCasement"
+msgid "editor.toolHint.styleCasement.ziklec"
msgstr "Style : battant"
# Source-Hash: 072e3331d1d105c0
@@ -5590,7 +5650,7 @@ msgstr "Style : battant"
# English: "Style: Craftsman"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleCraftsman"
+msgid "editor.toolHint.styleCraftsman.52e6a9"
msgstr "Style : artisan"
# Source-Hash: b64d07557dec1714
@@ -5600,7 +5660,7 @@ msgstr "Style : artisan"
# English: "Style: Double-hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleDoubleHung"
+msgid "editor.toolHint.styleDoubleHung.1lg8pkg"
msgstr "Style : guillotine double"
# Source-Hash: 55ef8761a537637f
@@ -5610,7 +5670,7 @@ msgstr "Style : guillotine double"
# English: "Style: French"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleFrench"
+msgid "editor.toolHint.styleFrench.1ue3j64"
msgstr "Style : à la française"
# Source-Hash: bc8a751d87536dc3
@@ -5620,7 +5680,7 @@ msgstr "Style : à la française"
# English: "Style: Glass"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleGlass"
+msgid "editor.toolHint.styleGlass.qudnb4"
msgstr "Style : vitré"
# Source-Hash: 40c1eb0bc83e207d
@@ -5630,7 +5690,7 @@ msgstr "Style : vitré"
# English: "Style: Grid"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleGrid"
+msgid "editor.toolHint.styleGrid.1vuq4po"
msgstr "Style : petits bois"
# Source-Hash: f516886bab2e7f10
@@ -5640,7 +5700,7 @@ msgstr "Style : petits bois"
# English: "Style: Half-louvered"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleHalfLouvered"
+msgid "editor.toolHint.styleHalfLouvered.13b1few"
msgstr "Style : demi-persienne"
# Source-Hash: 64e4389a695371a2
@@ -5650,7 +5710,7 @@ msgstr "Style : demi-persienne"
# English: "Style: Horizontal bands"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleHorizontalBands"
+msgid "editor.toolHint.styleHorizontalBands.12ethxk"
msgstr "Style : bandes horizontales"
# Source-Hash: ff6d226a425b00c0
@@ -5660,7 +5720,7 @@ msgstr "Style : bandes horizontales"
# English: "Style: Modern"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleModern"
+msgid "editor.toolHint.styleModern.1fh8hhn"
msgstr "Style : moderne"
# Source-Hash: c6d17ba078ff47e7
@@ -5670,7 +5730,7 @@ msgstr "Style : moderne"
# English: "Style: Panel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.stylePanel"
+msgid "editor.toolHint.stylePanel.922jze"
msgstr "Style : panneau"
# Source-Hash: 5e6baad0d2ce3a62
@@ -5680,7 +5740,7 @@ msgstr "Style : panneau"
# English: "Style: Paneled glass"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.stylePaneledGlass"
+msgid "editor.toolHint.stylePaneledGlass.17a17en"
msgstr "Style : vitré à panneaux"
# Source-Hash: 6314388e6832c252
@@ -5690,7 +5750,7 @@ msgstr "Style : vitré à panneaux"
# English: "Style: Shaker"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleShaker"
+msgid "editor.toolHint.styleShaker.49z17k"
msgstr "Style : shaker"
# Source-Hash: a0f8e524f3ca121f
@@ -5700,7 +5760,7 @@ msgstr "Style : shaker"
# English: "Style: Single"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleSingle"
+msgid "editor.toolHint.styleSingle.6f3cm0"
msgstr "Style : simple"
# Source-Hash: 368279df3a472c86
@@ -5710,7 +5770,7 @@ msgstr "Style : simple"
# English: "Style: Six-panel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleSixPanel"
+msgid "editor.toolHint.styleSixPanel.u49laj"
msgstr "Style : six panneaux"
# Source-Hash: 8f3c2571d8168fee
@@ -5720,7 +5780,7 @@ msgstr "Style : six panneaux"
# English: "Style: Sliding"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleSliding"
+msgid "editor.toolHint.styleSliding.q81s0i"
msgstr "Style : coulissant"
# Source-Hash: aa9d9eb137ca38d4
@@ -5730,7 +5790,7 @@ msgstr "Style : coulissant"
# English: "Style: Tall grid"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleTallGrid"
+msgid "editor.toolHint.styleTallGrid.1eotg3x"
msgstr "Style : petits bois hauts"
# Source-Hash: bc164648722b63e5
@@ -5740,7 +5800,7 @@ msgstr "Style : petits bois hauts"
# English: "Style: Transom"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleTransom"
+msgid "editor.toolHint.styleTransom.kb9bh6"
msgstr "Style : imposte"
# Source-Hash: 9a218f0c9ceb4697
@@ -5750,7 +5810,7 @@ msgstr "Style : imposte"
# English: "Style: Triple-hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleTripleHung"
+msgid "editor.toolHint.styleTripleHung.pxnqi3"
msgstr "Style : guillotine triple"
# Source-Hash: 9f6df1344bd3d694
@@ -5760,7 +5820,7 @@ msgstr "Style : guillotine triple"
# English: "Style: Wide grid"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleWideGrid"
+msgid "editor.toolHint.styleWideGrid.12n27et"
msgstr "Style : petits bois larges"
# Source-Hash: 711d4050c0cb95d7
@@ -5770,7 +5830,7 @@ msgstr "Style : petits bois larges"
# English: "Switch rotation axis (Y → X → Z)"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.switchRotationAxisYXZ"
+msgid "editor.toolHint.switchRotationAxisYXZ.15lohm6"
msgstr "Changer l’axe de rotation (Y → X → Z)"
# Source-Hash: d650c71e042c2598
@@ -5780,7 +5840,7 @@ msgstr "Changer l’axe de rotation (Y → X → Z)"
# English: "The walls meet at too sharp or too flat an angle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.theWallsMeetAtTooSharp"
+msgid "editor.toolHint.theWallsMeetAtTooSharp.kh3wi3"
msgstr "Les murs se rejoignent selon un angle trop aigu ou trop plat"
# Source-Hash: ab206ac56e65f190
@@ -5790,7 +5850,7 @@ msgstr "Les murs se rejoignent selon un angle trop aigu ou trop plat"
# English: "The window waiting there is taller than this wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.theWindowWaitingThereIsTaller"
+msgid "editor.toolHint.theWindowWaitingThereIsTaller.1tqwez4"
msgstr "La fenêtre prévue à cet endroit est plus haute que ce mur"
# Source-Hash: 9c1f47138ed5c7ee
@@ -5800,7 +5860,7 @@ msgstr "La fenêtre prévue à cet endroit est plus haute que ce mur"
# English: "Three or more walls meet here"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.threeOrMoreWallsMeetHere"
+msgid "editor.toolHint.threeOrMoreWallsMeetHere.rgifif"
msgstr "Trois murs ou plus se rejoignent ici"
# Source-Hash: c3ca56fa28e15f07
@@ -5810,7 +5870,7 @@ msgstr "Trois murs ou plus se rejoignent ici"
# English: "Trace ceiling outline"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.traceCeilingOutline"
+msgid "editor.toolHint.traceCeilingOutline.1b639wv"
msgstr "Tracer le contour du plafond"
# Source-Hash: bdf71499d30a29de
@@ -5820,7 +5880,7 @@ msgstr "Tracer le contour du plafond"
# English: "Trace slab outline"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.traceSlabOutline"
+msgid "editor.toolHint.traceSlabOutline.z0j2lc"
msgstr "Tracer le contour de la dalle"
# Source-Hash: c44f7ab8bbd24858
@@ -5830,7 +5890,7 @@ msgstr "Tracer le contour de la dalle"
# English: "Type"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.type"
+msgid "editor.toolHint.type.1m2zofh"
msgstr "Type"
# Source-Hash: b54eaaff3349dcb1
@@ -5840,7 +5900,7 @@ msgstr "Type"
# English: "Type: Awning"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeAwning"
+msgid "editor.toolHint.typeAwning.1cj59al"
msgstr "Type : à l’italienne"
# Source-Hash: f399572a27417c66
@@ -5850,7 +5910,7 @@ msgstr "Type : à l’italienne"
# English: "Type: Barn"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeBarn"
+msgid "editor.toolHint.typeBarn.sbnygq"
msgstr "Type : grange"
# Source-Hash: a1df9782200b5f1e
@@ -5860,7 +5920,7 @@ msgstr "Type : grange"
# English: "Type: Bay"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeBay"
+msgid "editor.toolHint.typeBay.1200hc1"
msgstr "Type : oriel"
# Source-Hash: ff069a390e8e3f66
@@ -5870,7 +5930,7 @@ msgstr "Type : oriel"
# English: "Type: Bow"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeBow"
+msgid "editor.toolHint.typeBow.14s2t9p"
msgstr "Type : bow-window"
# Source-Hash: bdac5f3f2ea70fff
@@ -5880,7 +5940,7 @@ msgstr "Type : bow-window"
# English: "Type: Cabinet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeCabinet"
+msgid "editor.toolHint.typeCabinet.1r68je5"
msgstr "Type : placard"
# Source-Hash: e0754fc03997cbf9
@@ -5890,7 +5950,7 @@ msgstr "Type : placard"
# English: "Type: Casement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeCasement"
+msgid "editor.toolHint.typeCasement.176uo9j"
msgstr "Type : battant"
# Source-Hash: 47d873446d6e173b
@@ -5900,7 +5960,7 @@ msgstr "Type : battant"
# English: "Type: Double"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeDouble"
+msgid "editor.toolHint.typeDouble.af7w4i"
msgstr "Type : double"
# Source-Hash: 5942e484513aaab5
@@ -5910,7 +5970,7 @@ msgstr "Type : double"
# English: "Type: Double Hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeDoubleHung"
+msgid "editor.toolHint.typeDoubleHung.t482fu"
msgstr "Type : guillotine double"
# Source-Hash: f9497fbfceefda27
@@ -5920,7 +5980,7 @@ msgstr "Type : guillotine double"
# English: "Type: Fixed"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeFixed"
+msgid "editor.toolHint.typeFixed.v1cjez"
msgstr "Type : fixe"
# Source-Hash: 0dcf07acc9cbf000
@@ -5930,7 +5990,7 @@ msgstr "Type : fixe"
# English: "Type: Folding"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeFolding"
+msgid "editor.toolHint.typeFolding.sxxyng"
msgstr "Type : pliante"
# Source-Hash: bff7331f87f279aa
@@ -5940,7 +6000,7 @@ msgstr "Type : pliante"
# English: "Type: French"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeFrench"
+msgid "editor.toolHint.typeFrench.1y57z1b"
msgstr "Type : à la française"
# Source-Hash: 9d2c3b82079eb769
@@ -5950,7 +6010,7 @@ msgstr "Type : à la française"
# English: "Type: Hinged"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeHinged"
+msgid "editor.toolHint.typeHinged.1xrcfju"
msgstr "Type : battante"
# Source-Hash: b8001b90ff522838
@@ -5960,7 +6020,7 @@ msgstr "Type : battante"
# English: "Type: Island"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeIsland"
+msgid "editor.toolHint.typeIsland.ufr3ce"
msgstr "Type : îlot"
# Source-Hash: 516833c5160d412e
@@ -5970,7 +6030,7 @@ msgstr "Type : îlot"
# English: "Type: Louvered"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeLouvered"
+msgid "editor.toolHint.typeLouvered.oxl1cz"
msgstr "Type : à persiennes"
# Source-Hash: 291272bf848ad6ab
@@ -5980,7 +6040,7 @@ msgstr "Type : à persiennes"
# English: "Type: Pocket"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typePocket"
+msgid "editor.toolHint.typePocket.hc65x9"
msgstr "Type : galandage"
# Source-Hash: 46d0e53d6ae07c72
@@ -5990,7 +6050,7 @@ msgstr "Type : galandage"
# English: "Type: Single Hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeSingleHung"
+msgid "editor.toolHint.typeSingleHung.p53pyl"
msgstr "Type : guillotine simple"
# Source-Hash: b11115b50df8faac
@@ -6000,7 +6060,7 @@ msgstr "Type : guillotine simple"
# English: "Type: Sliding"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeSliding"
+msgid "editor.toolHint.typeSliding.nwmr3f"
msgstr "Type : coulissante"
# Source-Hash: bff0c1694ee0a37e
@@ -6010,7 +6070,7 @@ msgstr "Type : coulissante"
# English: "Vertical stack ↕, click to place"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.verticalStackClickToPlace"
+msgid "editor.toolHint.verticalStackClickToPlace.ijcn4q"
msgstr "Colonne verticale ↕, cliquez pour placer"
# Source-Hash: bac471ee67af6412
@@ -6020,7 +6080,7 @@ msgstr "Colonne verticale ↕, cliquez pour placer"
# English: "Waste / vent"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.wasteVent"
+msgid "editor.toolHint.wasteVent.1hvi3vj"
msgstr "Évacuation / ventilation"
# Source-Hash: 1c744b7e24fc786e
@@ -6030,7 +6090,7 @@ msgstr "Évacuation / ventilation"
# English: "Window style — click or press L to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.windowStyleClickOrPressL"
+msgid "editor.toolHint.windowStyleClickOrPressL.ah7qm9"
msgstr "Style de fenêtre — cliquez ou appuyez sur L pour changer"
# Source-Hash: dd6f0ab314fea26c
@@ -6040,7 +6100,7 @@ msgstr "Style de fenêtre — cliquez ou appuyez sur L pour changer"
# English: "Window type — click or press O to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.windowTypeClickOrPressO"
+msgid "editor.toolHint.windowTypeClickOrPressO.wv4x35"
msgstr "Type de fenêtre — cliquez ou appuyez sur O pour changer"
# Source-Hash: 9fc7a39bc32f287a
diff --git a/packages/editor/src/i18n/locales/ja/messages.po b/packages/editor/src/i18n/locales/ja/messages.po
index 7364245b3b..b57bf2683d 100644
--- a/packages/editor/src/i18n/locales/ja/messages.po
+++ b/packages/editor/src/i18n/locales/ja/messages.po
@@ -2461,16 +2461,6 @@ msgstr "窓"
msgid "editor.actionMenu.structureTools.zone"
msgstr "ゾーン"
-# Source-Hash: 43af78ba61aaa8ab
-# Review: required
-# AI-Provider: cursor-agent
-# AI-Model: claude-opus
-# English: "below"
-#: packages/editor/src/components/ui/action-menu/view-toggles.tsx
-#, fuzzy
-msgid "editor.actionMenu.viewToggles.below"
-msgstr "下"
-
# Source-Hash: cdf3f12939ba108c
# Review: required
# AI-Provider: cursor-agent
@@ -2591,6 +2581,16 @@ msgstr "参照階を非表示"
msgid "editor.actionMenu.viewToggles.hideScans"
msgstr "3Dスキャンを非表示"
+# Source-Hash: 873620c284a5651f
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "{count} below"
+#: packages/editor/src/components/ui/action-menu/view-toggles.tsx
+#, fuzzy
+msgid "editor.actionMenu.viewToggles.levelsBelow"
+msgstr "{count} 階下"
+
# Source-Hash: 22a59ae72d8c9504
# Review: required
# AI-Provider: cursor-agent
@@ -3133,6 +3133,36 @@ msgstr "連続配置: {label}"
msgid "editor.helpers.contextualHelperPanel.dragToDrawFence"
msgstr "ドラッグしてフェンスを描く"
+# Source-Hash: b52e874718af1916
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Erase: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.eraseScope"
+msgstr "消去: {scope}"
+
+# Source-Hash: 61f7494abc319e66
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Erase scope — click or press Shift to cycle"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.eraseScopeClickOrPressShift"
+msgstr "消去の範囲 — クリックまたは Shift で切り替え"
+
+# Source-Hash: 59993c163d68cc53
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Erase scope: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.eraseScopeLabel"
+msgstr "消去の範囲: {scope}"
+
# Source-Hash: a4bdcbc6cab772bf
# Review: required
# AI-Provider: cursor-agent
@@ -3233,6 +3263,46 @@ msgstr "面にホバーして素材を取得"
msgid "editor.helpers.contextualHelperPanel.moreShortcuts"
msgstr "その他のショートカット"
+# Source-Hash: 476b8f5f9ee542e6
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Paint: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.paintScope"
+msgstr "塗装: {scope}"
+
+# Source-Hash: 9c09ce4c34122277
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Paint scope — click or press Shift to cycle"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.paintScopeClickOrPressShift"
+msgstr "塗装の範囲 — クリックまたは Shift で切り替え"
+
+# Source-Hash: 7890aa81687f6654
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Paint scope: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.paintScopeLabel"
+msgstr "塗装の範囲: {scope}"
+
+# Source-Hash: a75b3abc0784b12b
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Pick: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.pickScope"
+msgstr "取得: {scope}"
+
# Source-Hash: 69c1044e6ea87ccf
# Review: required
# AI-Provider: cursor-agent
@@ -3353,16 +3423,6 @@ msgstr "直線フェンスの連続配置 — クリックまたは C で切り
msgid "editor.helpers.contextualHelperPanel.straightSingle"
msgstr "直線: 単体"
-# Source-Hash: 83e56140165f2535
-# Review: required
-# AI-Provider: cursor-agent
-# AI-Model: claude-opus
-# English: "{verb} scope — click or press Shift to cycle"
-#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
-#, fuzzy
-msgid "editor.helpers.contextualHelperPanel.verbScopeClickOrPressShift"
-msgstr "{verb}の範囲 — クリックまたは Shift で切り替え"
-
# Source-Hash: 9a56d90d461b4bca
# Review: required
# AI-Provider: cursor-agent
@@ -4280,7 +4340,7 @@ msgstr "エディターのシーンを表示できませんでした"
# English: "A curtain wall takes no corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.aCurtainWallTakesNoCorner"
+msgid "editor.toolHint.aCurtainWallTakesNoCorner.1qxjv5i"
msgstr "カーテンウォールにはコーナー窓を付けられません"
# Source-Hash: 97f5e044d46501fb
@@ -4290,7 +4350,7 @@ msgstr "カーテンウォールにはコーナー窓を付けられません"
# English: "A curved wall takes no corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.aCurvedWallTakesNoCorner"
+msgid "editor.toolHint.aCurvedWallTakesNoCorner.1vdnaw5"
msgstr "曲面の壁にはコーナー窓を付けられません"
# Source-Hash: 776d8ebece7fe1bb
@@ -4300,7 +4360,7 @@ msgstr "曲面の壁にはコーナー窓を付けられません"
# English: "Add a corner · click the first to close"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.addACornerClickTheFirst"
+msgid "editor.toolHint.addACornerClickTheFirst.o4r67t"
msgstr "角を追加 · 最初の点をクリックして閉じる"
# Source-Hash: 6a0745dd047b149a
@@ -4310,7 +4370,7 @@ msgstr "角を追加 · 最初の点をクリックして閉じる"
# English: "Another opening is in the way at the corner"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.anotherOpeningIsInTheWay"
+msgid "editor.toolHint.anotherOpeningIsInTheWay.11l9dd0"
msgstr "角に別の開口があります"
# Source-Hash: 441124187e7da2fc
@@ -4320,7 +4380,7 @@ msgstr "角に別の開口があります"
# English: "Auto hangers"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangers"
+msgid "editor.toolHint.autoHangers.10554ka"
msgstr "自動吊り金具"
# Source-Hash: 47a7f9a6a81156c3
@@ -4330,7 +4390,7 @@ msgstr "自動吊り金具"
# English: "Auto hangers - click or press H to toggle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangersClickOrPressH"
+msgid "editor.toolHint.autoHangersClickOrPressH.rwa3ka"
msgstr "自動吊り金具 - クリックまたは H で切り替え"
# Source-Hash: d7944f31cba90e26
@@ -4340,7 +4400,7 @@ msgstr "自動吊り金具 - クリックまたは H で切り替え"
# English: "Auto hangers: Off"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangersOff"
+msgid "editor.toolHint.autoHangersOff.7yx01x"
msgstr "自動吊り金具: オフ"
# Source-Hash: 295882d015d08742
@@ -4350,7 +4410,7 @@ msgstr "自動吊り金具: オフ"
# English: "Auto hangers: On"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangersOn"
+msgid "editor.toolHint.autoHangersOn.10b1umh"
msgstr "自動吊り金具: オン"
# Source-Hash: 8c039e5182b01c4d
@@ -4360,7 +4420,7 @@ msgstr "自動吊り金具: オン"
# English: "Bypass snapping"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.bypassSnapping"
+msgid "editor.toolHint.bypassSnapping.w5lmdv"
msgstr "スナップを無視"
# Source-Hash: c0774c185060fc13
@@ -4370,7 +4430,7 @@ msgstr "スナップを無視"
# English: "Cancel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancel"
+msgid "editor.toolHint.cancel.ew9em3"
msgstr "キャンセル"
# Source-Hash: 5b33b576fd30b74e
@@ -4380,7 +4440,7 @@ msgstr "キャンセル"
# English: "Cancel move"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancelMove"
+msgid "editor.toolHint.cancelMove.lvp31c"
msgstr "移動をキャンセル"
# Source-Hash: 136fa29b9ae419bf
@@ -4390,7 +4450,7 @@ msgstr "移動をキャンセル"
# English: "Cancel run / exit"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancelRunExit"
+msgid "editor.toolHint.cancelRunExit.zqjf3h"
msgstr "経路をキャンセル / 終了"
# Source-Hash: 75b406824be91ac2
@@ -4400,7 +4460,7 @@ msgstr "経路をキャンセル / 終了"
# English: "Cancel start point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancelStartPoint"
+msgid "editor.toolHint.cancelStartPoint.1xbq2lh"
msgstr "始点をキャンセル"
# Source-Hash: ffa5aaa1746303c4
@@ -4410,7 +4470,7 @@ msgstr "始点をキャンセル"
# English: "Corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cornerWindow"
+msgid "editor.toolHint.cornerWindow.1avkzpo"
msgstr "コーナー窓"
# Source-Hash: b0afdd855a02e4a7
@@ -4420,7 +4480,7 @@ msgstr "コーナー窓"
# English: "Cuts"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cuts"
+msgid "editor.toolHint.cuts.1y0axps"
msgstr "分割"
# Source-Hash: dc9fe7601cc525f8
@@ -4430,7 +4490,7 @@ msgstr "分割"
# English: "Cuts: {value}"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cutsValue"
+msgid "editor.toolHint.cutsValue.ouzhvb"
msgstr "分割: {value}"
# Source-Hash: a2e13bc4dc82624c
@@ -4440,7 +4500,7 @@ msgstr "分割: {value}"
# English: "Cuts: {value}, even"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cutsValueEven"
+msgid "editor.toolHint.cutsValueEven.1ngsz3"
msgstr "分割: {value}、等分"
# Source-Hash: 04152b4cec726f34
@@ -4450,7 +4510,7 @@ msgstr "分割: {value}、等分"
# English: "Cycle mono / gable / butterfly"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cycleMonoGableButterfly"
+msgid "editor.toolHint.cycleMonoGableButterfly.1poga3m"
msgstr "片流れ / 切妻 / バタフライを切り替え"
# Source-Hash: 4fb6c83edb6652b5
@@ -4460,7 +4520,7 @@ msgstr "片流れ / 切妻 / バタフライを切り替え"
# English: "Cycle snapping mode"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cycleSnappingMode"
+msgid "editor.toolHint.cycleSnappingMode.1ct0gn6"
msgstr "スナップモードを切り替え"
# Source-Hash: 5d550a3ac76279de
@@ -4470,7 +4530,7 @@ msgstr "スナップモードを切り替え"
# English: "Door style — click or press L to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.doorStyleClickOrPressL"
+msgid "editor.toolHint.doorStyleClickOrPressL.33pe65"
msgstr "ドアのスタイル — クリックまたは L で切り替え"
# Source-Hash: 3272a7df5d7c6a9a
@@ -4480,7 +4540,7 @@ msgstr "ドアのスタイル — クリックまたは L で切り替え"
# English: "Door type — click or press O to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.doorTypeClickOrPressO"
+msgid "editor.toolHint.doorTypeClickOrPressO.1hhh8gt"
msgstr "ドアの種類 — クリックまたは O で切り替え"
# Source-Hash: 366222b4435eefda
@@ -4490,7 +4550,7 @@ msgstr "ドアの種類 — クリックまたは O で切り替え"
# English: "Drop downspout from outlet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.dropDownspoutFromOutlet"
+msgid "editor.toolHint.dropDownspoutFromOutlet.1k4h1m4"
msgstr "排水口から竪樋を下ろす"
# Source-Hash: 03f306371f345007
@@ -4500,7 +4560,7 @@ msgstr "排水口から竪樋を下ろす"
# English: "Duct diameter down / up"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.ductDiameterDownUp"
+msgid "editor.toolHint.ductDiameterDownUp.1wdz5vq"
msgstr "ダクト径を小さく / 大きく"
# Source-Hash: 7b4137e27f8327d9
@@ -4510,7 +4570,7 @@ msgstr "ダクト径を小さく / 大きく"
# English: "End run / cancel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.endRunCancel"
+msgid "editor.toolHint.endRunCancel.59dh2w"
msgstr "経路を終了 / キャンセル"
# Source-Hash: 938aacb119b29dc1
@@ -4520,7 +4580,7 @@ msgstr "経路を終了 / キャンセル"
# English: "Exit"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.exit"
+msgid "editor.toolHint.exit.engmg5"
msgstr "終了"
# Source-Hash: 7cb4e0688cabcb00
@@ -4530,7 +4590,7 @@ msgstr "終了"
# English: "Exit drawing"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.exitDrawing"
+msgid "editor.toolHint.exitDrawing.9noxyb"
msgstr "描画を終了"
# Source-Hash: 47025a103c456125
@@ -4540,7 +4600,7 @@ msgstr "描画を終了"
# English: "Finish and continue"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishAndContinue"
+msgid "editor.toolHint.finishAndContinue.1gpfsks"
msgstr "完了して続ける"
# Source-Hash: 000918429b74128f
@@ -4550,7 +4610,7 @@ msgstr "完了して続ける"
# English: "Finish ceiling"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishCeiling"
+msgid "editor.toolHint.finishCeiling.1c1lfel"
msgstr "天井を完了"
# Source-Hash: 51a80a0dba5a6f30
@@ -4560,7 +4620,7 @@ msgstr "天井を完了"
# English: "Finish grid axis"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishGridAxis"
+msgid "editor.toolHint.finishGridAxis.1wvrfhr"
msgstr "通り芯を完了"
# Source-Hash: 87c7b98fc2e010e1
@@ -4570,7 +4630,7 @@ msgstr "通り芯を完了"
# English: "Finish measurement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishMeasurement"
+msgid "editor.toolHint.finishMeasurement.1e4gv16"
msgstr "計測を完了"
# Source-Hash: 5e1a0af7dc506826
@@ -4580,7 +4640,7 @@ msgstr "計測を完了"
# English: "Finish multi-point witnesses"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishMultiPointWitnesses"
+msgid "editor.toolHint.finishMultiPointWitnesses.8wzskz"
msgstr "複数点の参照を完了"
# Source-Hash: 30fc0862501ba2e8
@@ -4590,7 +4650,7 @@ msgstr "複数点の参照を完了"
# English: "Finish slab"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishSlab"
+msgid "editor.toolHint.finishSlab.xmnm8e"
msgstr "スラブを完了"
# Source-Hash: 66ed7c7598d3aa29
@@ -4600,7 +4660,7 @@ msgstr "スラブを完了"
# English: "Flip side"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.flipSide"
+msgid "editor.toolHint.flipSide.172xku9"
msgstr "向きを反転"
# Source-Hash: f5717f6a0905ffab
@@ -4610,7 +4670,7 @@ msgstr "向きを反転"
# English: "Follow: trace a lineset"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.followTraceALineset"
+msgid "editor.toolHint.followTraceALineset.mgquwe"
msgstr "追従: 冷媒配管に沿って配管"
# Source-Hash: ed7f3d8417a3e074
@@ -4620,7 +4680,7 @@ msgstr "追従: 冷媒配管に沿って配管"
# English: "Force place"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.forcePlace"
+msgid "editor.toolHint.forcePlace.1hq1nr"
msgstr "強制配置"
# Source-Hash: cc0c14065951444d
@@ -4630,7 +4690,7 @@ msgstr "強制配置"
# English: "Free placement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.freePlacement"
+msgid "editor.toolHint.freePlacement.1nztdac"
msgstr "自由配置"
# Source-Hash: f098a27096a9c1ea
@@ -4640,7 +4700,7 @@ msgstr "自由配置"
# English: "Go vertical ↕, click to place"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.goVerticalClickToPlace"
+msgid "editor.toolHint.goVerticalClickToPlace.dg8g6m"
msgstr "垂直に切り替え ↕、クリックで配置"
# Source-Hash: fd47f1820d8799c8
@@ -4650,7 +4710,7 @@ msgstr "垂直に切り替え ↕、クリックで配置"
# English: "Highlight outlet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.highlightOutlet"
+msgid "editor.toolHint.highlightOutlet.65hoq8"
msgstr "排水口を強調"
# Source-Hash: eb90058d0f856f67
@@ -4660,7 +4720,7 @@ msgstr "排水口を強調"
# English: "Join as a corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.joinAsACornerWindow"
+msgid "editor.toolHint.joinAsACornerWindow.jvdp4j"
msgstr "コーナー窓として結合"
# Source-Hash: 225b3161f2e59757
@@ -4670,7 +4730,7 @@ msgstr "コーナー窓として結合"
# English: "Alt + drag"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.altDrag"
+msgid "editor.toolHint.key.altDrag.ai3wn9"
msgstr "Alt + ドラッグ"
# Source-Hash: dd66f883b173fc72
@@ -4680,7 +4740,7 @@ msgstr "Alt + ドラッグ"
# English: "Backspace"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.backspace"
+msgid "editor.toolHint.key.backspace.qy6qx8"
msgstr "Backspace"
# Source-Hash: a18387bc0be54c32
@@ -4690,7 +4750,7 @@ msgstr "Backspace"
# English: "Click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.click"
+msgid "editor.toolHint.key.click.m8sun"
msgstr "クリック"
# Source-Hash: db9e60c1d30b8499
@@ -4700,7 +4760,7 @@ msgstr "クリック"
# English: "Click again"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.clickAgain"
+msgid "editor.toolHint.key.clickAgain.190ws9j"
msgstr "もう一度クリック"
# Source-Hash: f400330b9c9c12e8
@@ -4710,7 +4770,7 @@ msgstr "もう一度クリック"
# English: "Command"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.command"
+msgid "editor.toolHint.key.command.1j2mkia"
msgstr "Command"
# Source-Hash: 976c63285a510b09
@@ -4720,7 +4780,7 @@ msgstr "Command"
# English: "Control"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.control"
+msgid "editor.toolHint.key.control.10fbl8e"
msgstr "Ctrl"
# Source-Hash: b26de372b4b0eaac
@@ -4730,7 +4790,7 @@ msgstr "Ctrl"
# English: "Delete"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.delete"
+msgid "editor.toolHint.key.delete.oay2cq"
msgstr "削除"
# Source-Hash: 88888c9d2719fa92
@@ -4740,7 +4800,7 @@ msgstr "削除"
# English: "Double click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.doubleClick"
+msgid "editor.toolHint.key.doubleClick.vlma6o"
msgstr "ダブルクリック"
# Source-Hash: dfb85b2addb7b9fa
@@ -4750,7 +4810,7 @@ msgstr "ダブルクリック"
# English: "Drag"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.drag"
+msgid "editor.toolHint.key.drag.8pwtpf"
msgstr "ドラッグ"
# Source-Hash: ed9140d42148c99b
@@ -4760,7 +4820,7 @@ msgstr "ドラッグ"
# English: "Enter"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.enter"
+msgid "editor.toolHint.key.enter.1ctpui5"
msgstr "Enter"
# Source-Hash: 9195fa8b9c8ebdfb
@@ -4770,7 +4830,7 @@ msgstr "Enter"
# English: "Hover"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hover"
+msgid "editor.toolHint.key.hover.6xw79p"
msgstr "ホバー"
# Source-Hash: 2d78441b741bc562
@@ -4780,7 +4840,7 @@ msgstr "ホバー"
# English: "Hover a duct end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hoverADuctEnd"
+msgid "editor.toolHint.key.hoverADuctEnd.19axr3b"
msgstr "ダクトの端にホバー"
# Source-Hash: 6083405086f61c76
@@ -4790,7 +4850,7 @@ msgstr "ダクトの端にホバー"
# English: "Hover a pipe end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hoverAPipeEnd"
+msgid "editor.toolHint.key.hoverAPipeEnd.1jbum5f"
msgstr "配管の端にホバー"
# Source-Hash: a5a337eb76fdb066
@@ -4800,7 +4860,7 @@ msgstr "配管の端にホバー"
# English: "Hover gutter"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hoverGutter"
+msgid "editor.toolHint.key.hoverGutter.1dwcsno"
msgstr "雨樋にホバー"
# Source-Hash: a58533594411e088
@@ -4810,7 +4870,7 @@ msgstr "雨樋にホバー"
# English: "Left click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.leftClick"
+msgid "editor.toolHint.key.leftClick.s4gwfc"
msgstr "左クリック"
# Source-Hash: bc4ab608ec3d3b4f
@@ -4820,7 +4880,7 @@ msgstr "左クリック"
# English: "Middle click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.middleClick"
+msgid "editor.toolHint.key.middleClick.1jbaan4"
msgstr "中クリック"
# Source-Hash: 6791879c651108c7
@@ -4830,7 +4890,7 @@ msgstr "中クリック"
# English: "Right click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.rightClick"
+msgid "editor.toolHint.key.rightClick.1ovld0h"
msgstr "右クリック"
# Source-Hash: c836b21b42198868
@@ -4840,7 +4900,7 @@ msgstr "右クリック"
# English: "R / Shift+R"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.rShiftR"
+msgid "editor.toolHint.key.rShiftR.13bnobh"
msgstr "R / Shift+R"
# Source-Hash: 9812aa06d8bb7544
@@ -4850,7 +4910,7 @@ msgstr "R / Shift+R"
# English: "Scroll"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.scroll"
+msgid "editor.toolHint.key.scroll.ai6wr0"
msgstr "スクロール"
# Source-Hash: f2174536230657c8
@@ -4860,7 +4920,7 @@ msgstr "スクロール"
# English: "Scroll wheel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.scrollWheel"
+msgid "editor.toolHint.key.scrollWheel.18j0ix7"
msgstr "スクロールホイール"
# Source-Hash: 82dd231086d87f3b
@@ -4870,7 +4930,7 @@ msgstr "スクロールホイール"
# English: "Space"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.space"
+msgid "editor.toolHint.key.space.1hrh82t"
msgstr "Space"
# Source-Hash: 9e68aa2f472cad56
@@ -4880,7 +4940,7 @@ msgstr "Space"
# English: "Tab"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.tab"
+msgid "editor.toolHint.key.tab.1xsal0s"
msgstr "Tab"
# Source-Hash: 4b221b73f9496a49
@@ -4890,7 +4950,7 @@ msgstr "Tab"
# English: "Mount: floor / ceiling / wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.mountFloorCeilingWall"
+msgid "editor.toolHint.mountFloorCeilingWall.32dxpv"
msgstr "取付: 床 / 天井 / 壁"
# Source-Hash: 225edfb1e45aed95
@@ -4900,7 +4960,7 @@ msgstr "取付: 床 / 天井 / 壁"
# English: "No room for the matching window on the other wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.noRoomForTheMatchingWindow"
+msgid "editor.toolHint.noRoomForTheMatchingWindow.1755948"
msgstr "もう一方の壁に対応する窓を置く余地がありません"
# Source-Hash: a7045d6b678bcd13
@@ -4910,7 +4970,7 @@ msgstr "もう一方の壁に対応する窓を置く余地がありません"
# English: "No wall meets here"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.noWallMeetsHere"
+msgid "editor.toolHint.noWallMeetsHere.19n99yc"
msgstr "ここで交わる壁はありません"
# Source-Hash: a639341dc21fed2c
@@ -4920,7 +4980,7 @@ msgstr "ここで交わる壁はありません"
# English: "Number of cuts — scroll or click to change"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.numberOfCutsScrollOrClick"
+msgid "editor.toolHint.numberOfCutsScrollOrClick.1kqe84b"
msgstr "分割数 — スクロールまたはクリックで変更"
# Source-Hash: af01bde3ae4b7e59
@@ -4930,7 +4990,7 @@ msgstr "分割数 — スクロールまたはクリックで変更"
# English: "Pick witness point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.pickWitnessPoint"
+msgid "editor.toolHint.pickWitnessPoint.k3hgh1"
msgstr "参照点を選ぶ"
# Source-Hash: ecfd58576b28a9f6
@@ -4940,7 +5000,7 @@ msgstr "参照点を選ぶ"
# English: "Pipe size down / up"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.pipeSizeDownUp"
+msgid "editor.toolHint.pipeSizeDownUp.wp04og"
msgstr "管径を小さく / 大きく"
# Source-Hash: 7a1eb7b64f06bad0
@@ -4950,7 +5010,7 @@ msgstr "管径を小さく / 大きく"
# English: "Place and continue"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeAndContinue"
+msgid "editor.toolHint.placeAndContinue.qfwkrq"
msgstr "配置して続ける"
# Source-Hash: c6cda39e2e4b5d3a
@@ -4960,7 +5020,7 @@ msgstr "配置して続ける"
# English: "Place block"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeBlock"
+msgid "editor.toolHint.placeBlock.1aylwrx"
msgstr "ブロックを配置"
# Source-Hash: 45a743c52a1d72de
@@ -4970,7 +5030,7 @@ msgstr "ブロックを配置"
# English: "Place box vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeBoxVentOnRoof"
+msgid "editor.toolHint.placeBoxVentOnRoof.kf88e5"
msgstr "屋根にボックス換気口を配置"
# Source-Hash: 75142dd1d557efe2
@@ -4980,7 +5040,7 @@ msgstr "屋根にボックス換気口を配置"
# English: "Place cabinet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeCabinet"
+msgid "editor.toolHint.placeCabinet.b0ouyk"
msgstr "キャビネットを配置"
# Source-Hash: da603a713d4c9909
@@ -4990,7 +5050,7 @@ msgstr "キャビネットを配置"
# English: "Place canopy or set the next run point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeCanopyOrSetTheNext"
+msgid "editor.toolHint.placeCanopyOrSetTheNext.12l7zf8"
msgstr "キャノピーを配置、または次の点を設定"
# Source-Hash: 8b3a30c6b7a5612d
@@ -5000,7 +5060,7 @@ msgstr "キャノピーを配置、または次の点を設定"
# English: "Place chimney on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeChimneyOnRoof"
+msgid "editor.toolHint.placeChimneyOnRoof.19dbqu"
msgstr "屋根に煙突を配置"
# Source-Hash: 710d41e4e2f259fa
@@ -5010,7 +5070,7 @@ msgstr "屋根に煙突を配置"
# English: "Place column"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeColumn"
+msgid "editor.toolHint.placeColumn.1w2vq86"
msgstr "柱を配置"
# Source-Hash: ee1da4e12a71d9a9
@@ -5020,7 +5080,7 @@ msgstr "柱を配置"
# English: "Place cupola on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeCupolaOnRoof"
+msgid "editor.toolHint.placeCupolaOnRoof.ofx3bn"
msgstr "屋根にキューポラを配置"
# Source-Hash: 19c1fe8c46d213a5
@@ -5030,7 +5090,7 @@ msgstr "屋根にキューポラを配置"
# English: "Place dimension line when needed"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeDimensionLineWhenNeeded"
+msgid "editor.toolHint.placeDimensionLineWhenNeeded.bjw2cj"
msgstr "必要に応じて寸法線を配置"
# Source-Hash: 58f3e7efb6ea120b
@@ -5040,7 +5100,7 @@ msgstr "必要に応じて寸法線を配置"
# English: "Place door on wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeDoorOnWall"
+msgid "editor.toolHint.placeDoorOnWall.1jwadf"
msgstr "壁にドアを配置"
# Source-Hash: de04e9d03d937c97
@@ -5050,7 +5110,7 @@ msgstr "壁にドアを配置"
# English: "Place dormer on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeDormerOnRoof"
+msgid "editor.toolHint.placeDormerOnRoof.1w518a6"
msgstr "屋根にドーマーを配置"
# Source-Hash: c581645f2ee447c2
@@ -5060,7 +5120,7 @@ msgstr "屋根にドーマーを配置"
# English: "Place elevator"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeElevator"
+msgid "editor.toolHint.placeElevator.1f65zva"
msgstr "エレベーターを配置"
# Source-Hash: 096b8d6482717358
@@ -5070,7 +5130,7 @@ msgstr "エレベーターを配置"
# English: "Place eyebrow vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeEyebrowVentOnRoof"
+msgid "editor.toolHint.placeEyebrowVentOnRoof.1h1tqxn"
msgstr "屋根に眉型換気口を配置"
# Source-Hash: e8d42c1c8370773f
@@ -5080,7 +5140,7 @@ msgstr "屋根に眉型換気口を配置"
# English: "Place fitting"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeFitting"
+msgid "editor.toolHint.placeFitting.1pmx3vn"
msgstr "継手を配置"
# Source-Hash: 2340a4b70cb0d9ad
@@ -5090,7 +5150,7 @@ msgstr "継手を配置"
# English: "Place gutter on roof eave"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeGutterOnRoofEave"
+msgid "editor.toolHint.placeGutterOnRoofEave.llwzf9"
msgstr "軒に雨樋を配置"
# Source-Hash: 706a8eafb6212833
@@ -5100,7 +5160,7 @@ msgstr "軒に雨樋を配置"
# English: "Place item"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeItem"
+msgid "editor.toolHint.placeItem.teynf"
msgstr "アイテムを配置"
# Source-Hash: 1815c482e249932e
@@ -5110,7 +5170,7 @@ msgstr "アイテムを配置"
# English: "Place it (locked to 45°)"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeItLockedTo45"
+msgid "editor.toolHint.placeItLockedTo45.16e4csk"
msgstr "配置(45°に固定)"
# Source-Hash: 4a14340657532838
@@ -5120,7 +5180,7 @@ msgstr "配置(45°に固定)"
# English: "Place measurement point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeMeasurementPoint"
+msgid "editor.toolHint.placeMeasurementPoint.bsatli"
msgstr "計測点を配置"
# Source-Hash: b3be684ac62fbf53
@@ -5130,7 +5190,7 @@ msgstr "計測点を配置"
# English: "Placement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placement"
+msgid "editor.toolHint.placement.13lcvts"
msgstr "配置"
# Source-Hash: 2bb2ce6276c69b1e
@@ -5140,7 +5200,7 @@ msgstr "配置"
# English: "Placement: Auto"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementAuto"
+msgid "editor.toolHint.placementAuto.1caa52d"
msgstr "配置: 自動"
# Source-Hash: ed78ac5354a1dcd8
@@ -5150,7 +5210,7 @@ msgstr "配置: 自動"
# English: "Placement: Ground"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementGround"
+msgid "editor.toolHint.placementGround.1ruz145"
msgstr "配置: 地面"
# Source-Hash: a066a2c9d5e65a1a
@@ -5160,7 +5220,7 @@ msgstr "配置: 地面"
# English: "Placement: Roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementRoof"
+msgid "editor.toolHint.placementRoof.renkw8"
msgstr "配置: 屋根"
# Source-Hash: 8f74dbe5064c4c66
@@ -5170,7 +5230,7 @@ msgstr "配置: 屋根"
# English: "Placement surface - click or press P to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementSurfaceClickOrPressP"
+msgid "editor.toolHint.placementSurfaceClickOrPressP.w56h19"
msgstr "配置面 - クリックまたは P で切り替え"
# Source-Hash: fe119955c925feaf
@@ -5180,7 +5240,7 @@ msgstr "配置面 - クリックまたは P で切り替え"
# English: "Placement type"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementType"
+msgid "editor.toolHint.placementType.1mdpl60"
msgstr "配置の種類"
# Source-Hash: 33043a35500168f5
@@ -5190,7 +5250,7 @@ msgstr "配置の種類"
# English: "Placement type — click or press I to toggle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementTypeClickOrPressI"
+msgid "editor.toolHint.placementTypeClickOrPressI.10cgxh2"
msgstr "配置の種類 — クリックまたは I で切り替え"
# Source-Hash: 9945f412e6a9a446
@@ -5200,7 +5260,7 @@ msgstr "配置の種類 — クリックまたは I で切り替え"
# English: "Place on a fence"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeOnAFence"
+msgid "editor.toolHint.placeOnAFence.1dptstr"
msgstr "フェンスに配置"
# Source-Hash: 6708118775a7da7f
@@ -5210,7 +5270,7 @@ msgstr "フェンスに配置"
# English: "Place register"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeRegister"
+msgid "editor.toolHint.placeRegister.1uebycd"
msgstr "吹出口を配置"
# Source-Hash: ebd2731f5c79306e
@@ -5220,7 +5280,7 @@ msgstr "吹出口を配置"
# English: "Place ridge vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeRidgeVentOnRoof"
+msgid "editor.toolHint.placeRidgeVentOnRoof.2tpd8r"
msgstr "屋根に棟換気を配置"
# Source-Hash: 9b3c66a867c23326
@@ -5230,7 +5290,7 @@ msgstr "屋根に棟換気を配置"
# English: "Place shelf"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeShelf"
+msgid "editor.toolHint.placeShelf.y4l3iw"
msgstr "棚を配置"
# Source-Hash: f11cf5c1c9fe862d
@@ -5240,7 +5300,7 @@ msgstr "棚を配置"
# English: "Place skylight on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeSkylightOnRoof"
+msgid "editor.toolHint.placeSkylightOnRoof.e215pe"
msgstr "屋根に天窓を配置"
# Source-Hash: e989a58d6709cc16
@@ -5250,7 +5310,7 @@ msgstr "屋根に天窓を配置"
# English: "Place solar panel array on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeSolarPanelArrayOnRoof"
+msgid "editor.toolHint.placeSolarPanelArrayOnRoof.kk11fn"
msgstr "屋根に太陽光パネルを配置"
# Source-Hash: b67f7036d5180cf5
@@ -5260,7 +5320,7 @@ msgstr "屋根に太陽光パネルを配置"
# English: "Place spawn point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeSpawnPoint"
+msgid "editor.toolHint.placeSpawnPoint.205o25"
msgstr "スポーン地点を配置"
# Source-Hash: 6c7f32a17e5636c3
@@ -5270,7 +5330,7 @@ msgstr "スポーン地点を配置"
# English: "Place stairs"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeStairs"
+msgid "editor.toolHint.placeStairs.zwxxu2"
msgstr "階段を配置"
# Source-Hash: 641c0d3debd798a8
@@ -5280,7 +5340,7 @@ msgstr "階段を配置"
# English: "Place trap"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeTrap"
+msgid "editor.toolHint.placeTrap.1gxemn3"
msgstr "トラップを配置"
# Source-Hash: 6f0a6f6c4b7588a0
@@ -5290,7 +5350,7 @@ msgstr "トラップを配置"
# English: "Place turbine vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeTurbineVentOnRoof"
+msgid "editor.toolHint.placeTurbineVentOnRoof.1iqeluf"
msgstr "屋根にタービン換気扇を配置"
# Source-Hash: e65cf5edb4f51ed5
@@ -5300,7 +5360,7 @@ msgstr "屋根にタービン換気扇を配置"
# English: "Place unit"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeUnit"
+msgid "editor.toolHint.placeUnit.8zkx4q"
msgstr "ユニットを配置"
# Source-Hash: 86ce1c730154f68b
@@ -5310,7 +5370,7 @@ msgstr "ユニットを配置"
# English: "Place window on wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeWindowOnWall"
+msgid "editor.toolHint.placeWindowOnWall.1k3qnfb"
msgstr "壁に窓を配置"
# Source-Hash: 2b612180a7617901
@@ -5320,7 +5380,7 @@ msgstr "壁に窓を配置"
# English: "Place without the corner snap"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeWithoutTheCornerSnap"
+msgid "editor.toolHint.placeWithoutTheCornerSnap.1nifqew"
msgstr "角のスナップなしで配置"
# Source-Hash: 0dc6d121791696f7
@@ -5330,7 +5390,7 @@ msgstr "角のスナップなしで配置"
# English: "Remove last point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.removeLastPoint"
+msgid "editor.toolHint.removeLastPoint.2dmdcx"
msgstr "最後の点を削除"
# Source-Hash: 8b74b1d962be10fc
@@ -5340,7 +5400,7 @@ msgstr "最後の点を削除"
# English: "Remove last witness"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.removeLastWitness"
+msgid "editor.toolHint.removeLastWitness.1b6vvzw"
msgstr "最後の参照を削除"
# Source-Hash: 306d409f8a1cf480
@@ -5350,7 +5410,7 @@ msgstr "最後の参照を削除"
# English: "Rotate"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotate"
+msgid "editor.toolHint.rotate.1thqa0a"
msgstr "回転"
# Source-Hash: 8a665ecaeffa9308
@@ -5360,7 +5420,7 @@ msgstr "回転"
# English: "Rotate ±45°"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotate45"
+msgid "editor.toolHint.rotate45.9zq68u"
msgstr "±45°回転"
# Source-Hash: be2240289aa74df5
@@ -5370,7 +5430,7 @@ msgstr "±45°回転"
# English: "Rotate ±45° (floor / ceiling)"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotate45FloorCeiling"
+msgid "editor.toolHint.rotate45FloorCeiling.m9t57d"
msgstr "±45°回転(床 / 天井)"
# Source-Hash: d5fb78b07c0f8138
@@ -5380,7 +5440,7 @@ msgstr "±45°回転(床 / 天井)"
# English: "Rotate ghost ±15°"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateGhost15"
+msgid "editor.toolHint.rotateGhost15.rsa52c"
msgstr "プレビューを±15°回転"
# Source-Hash: 912d340cd16e27fa
@@ -5390,7 +5450,7 @@ msgstr "プレビューを±15°回転"
# English: "Rotate or flip the run side"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateOrFlipTheRunSide"
+msgid "editor.toolHint.rotateOrFlipTheRunSide.t5ior7"
msgstr "配置側を回転または反転"
# Source-Hash: ad1dc0b5536cceef
@@ -5400,7 +5460,7 @@ msgstr "配置側を回転または反転"
# English: "Rotate roof direction 90°"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateRoofDirection90"
+msgid "editor.toolHint.rotateRoofDirection90.tvbji2"
msgstr "屋根の向きを90°回転"
# Source-Hash: fa24651e9e5f595a
@@ -5410,7 +5470,7 @@ msgstr "屋根の向きを90°回転"
# English: "Rotate spawn point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateSpawnPoint"
+msgid "editor.toolHint.rotateSpawnPoint.1opcuu7"
msgstr "スポーン地点を回転"
# Source-Hash: 2d693d87fe9b59e6
@@ -5420,7 +5480,7 @@ msgstr "スポーン地点を回転"
# English: "Round / rectangular / oval"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.roundRectangularOval"
+msgid "editor.toolHint.roundRectangularOval.e4nh6x"
msgstr "円形 / 矩形 / 楕円"
# Source-Hash: f7d2c9cdcc637c97
@@ -5430,7 +5490,7 @@ msgstr "円形 / 矩形 / 楕円"
# English: "Set fence start / end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setFenceStartEnd"
+msgid "editor.toolHint.setFenceStartEnd.1phbwsq"
msgstr "フェンスの始点 / 終点を設定"
# Source-Hash: c93ae898b4d59f6f
@@ -5440,7 +5500,7 @@ msgstr "フェンスの始点 / 終点を設定"
# English: "Set one corner, then the opposite"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setOneCornerThenTheOpposite"
+msgid "editor.toolHint.setOneCornerThenTheOpposite.8tsl49"
msgstr "1つの角、次に対角を設定"
# Source-Hash: 4f55171f10c6ceeb
@@ -5450,7 +5510,7 @@ msgstr "1つの角、次に対角を設定"
# English: "Set roof footprint"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setRoofFootprint"
+msgid "editor.toolHint.setRoofFootprint.p50n0o"
msgstr "屋根の外形を設定"
# Source-Hash: 0243859b1d64c21e
@@ -5460,7 +5520,7 @@ msgstr "屋根の外形を設定"
# English: "Set wall start / end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setWallStartEnd"
+msgid "editor.toolHint.setWallStartEnd.1r8ubcx"
msgstr "壁の始点 / 終点を設定"
# Source-Hash: c2806cce9612fa50
@@ -5470,7 +5530,7 @@ msgstr "壁の始点 / 終点を設定"
# English: "Slope / level"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.slopeLevel"
+msgid "editor.toolHint.slopeLevel.ftqp67"
msgstr "勾配 / 水平"
# Source-Hash: 06c0ec40606db679
@@ -5480,7 +5540,7 @@ msgstr "勾配 / 水平"
# English: "Snap onto the run"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.snapOntoTheRun"
+msgid "editor.toolHint.snapOntoTheRun.86yhmp"
msgstr "経路にスナップ"
# Source-Hash: e214cccbac9c4fd2
@@ -5490,7 +5550,7 @@ msgstr "経路にスナップ"
# English: "Split at the marks"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.splitAtTheMarks"
+msgid "editor.toolHint.splitAtTheMarks.x5tpdd"
msgstr "マークで分割"
# Source-Hash: 94455c35bfeac6b4
@@ -5500,7 +5560,7 @@ msgstr "マークで分割"
# English: "Start grid axis"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startGridAxis"
+msgid "editor.toolHint.startGridAxis.k92yza"
msgstr "通り芯を開始"
# Source-Hash: 2edb4c29bbe7c513
@@ -5510,7 +5570,7 @@ msgstr "通り芯を開始"
# English: "Start lineset"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startLineset"
+msgid "editor.toolHint.startLineset.23q8dh"
msgstr "冷媒配管を開始"
# Source-Hash: 9e50f1b30e325208
@@ -5520,7 +5580,7 @@ msgstr "冷媒配管を開始"
# English: "Start liquid line"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startLiquidLine"
+msgid "editor.toolHint.startLiquidLine.1rlxsgd"
msgstr "液管を開始"
# Source-Hash: 877ddcb778c211cc
@@ -5530,7 +5590,7 @@ msgstr "液管を開始"
# English: "Start run"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startRun"
+msgid "editor.toolHint.startRun.r6fc5u"
msgstr "経路を開始"
# Source-Hash: 8a62bee64174bbc0
@@ -5540,7 +5600,7 @@ msgstr "経路を開始"
# English: "Start segment"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startSegment"
+msgid "editor.toolHint.startSegment.rolym6"
msgstr "セグメントを開始"
# Source-Hash: 6cc5dc51a8e66779
@@ -5550,7 +5610,7 @@ msgstr "セグメントを開始"
# English: "Step back or cancel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.stepBackOrCancel"
+msgid "editor.toolHint.stepBackOrCancel.zbfdkn"
msgstr "1つ戻る、またはキャンセル"
# Source-Hash: 1a79a485d91f3f28
@@ -5560,7 +5620,7 @@ msgstr "1つ戻る、またはキャンセル"
# English: "Style"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.style"
+msgid "editor.toolHint.style.nf3vcm"
msgstr "スタイル"
# Source-Hash: 81f595b1c47c0080
@@ -5570,7 +5630,7 @@ msgstr "スタイル"
# English: "Style: Barn"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleBarn"
+msgid "editor.toolHint.styleBarn.k9n1x"
msgstr "スタイル: 納屋"
# Source-Hash: 3a82c718fe215273
@@ -5580,7 +5640,7 @@ msgstr "スタイル: 納屋"
# English: "Style: Casement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleCasement"
+msgid "editor.toolHint.styleCasement.ziklec"
msgstr "スタイル: 開き"
# Source-Hash: 072e3331d1d105c0
@@ -5590,7 +5650,7 @@ msgstr "スタイル: 開き"
# English: "Style: Craftsman"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleCraftsman"
+msgid "editor.toolHint.styleCraftsman.52e6a9"
msgstr "スタイル: クラフツマン"
# Source-Hash: b64d07557dec1714
@@ -5600,7 +5660,7 @@ msgstr "スタイル: クラフツマン"
# English: "Style: Double-hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleDoubleHung"
+msgid "editor.toolHint.styleDoubleHung.1lg8pkg"
msgstr "スタイル: 上げ下げ(両側)"
# Source-Hash: 55ef8761a537637f
@@ -5610,7 +5670,7 @@ msgstr "スタイル: 上げ下げ(両側)"
# English: "Style: French"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleFrench"
+msgid "editor.toolHint.styleFrench.1ue3j64"
msgstr "スタイル: フレンチ"
# Source-Hash: bc8a751d87536dc3
@@ -5620,7 +5680,7 @@ msgstr "スタイル: フレンチ"
# English: "Style: Glass"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleGlass"
+msgid "editor.toolHint.styleGlass.qudnb4"
msgstr "スタイル: ガラス"
# Source-Hash: 40c1eb0bc83e207d
@@ -5630,7 +5690,7 @@ msgstr "スタイル: ガラス"
# English: "Style: Grid"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleGrid"
+msgid "editor.toolHint.styleGrid.1vuq4po"
msgstr "スタイル: 格子"
# Source-Hash: f516886bab2e7f10
@@ -5640,7 +5700,7 @@ msgstr "スタイル: 格子"
# English: "Style: Half-louvered"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleHalfLouvered"
+msgid "editor.toolHint.styleHalfLouvered.13b1few"
msgstr "スタイル: 半ルーバー"
# Source-Hash: 64e4389a695371a2
@@ -5650,7 +5710,7 @@ msgstr "スタイル: 半ルーバー"
# English: "Style: Horizontal bands"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleHorizontalBands"
+msgid "editor.toolHint.styleHorizontalBands.12ethxk"
msgstr "スタイル: 横帯"
# Source-Hash: ff6d226a425b00c0
@@ -5660,7 +5720,7 @@ msgstr "スタイル: 横帯"
# English: "Style: Modern"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleModern"
+msgid "editor.toolHint.styleModern.1fh8hhn"
msgstr "スタイル: モダン"
# Source-Hash: c6d17ba078ff47e7
@@ -5670,7 +5730,7 @@ msgstr "スタイル: モダン"
# English: "Style: Panel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.stylePanel"
+msgid "editor.toolHint.stylePanel.922jze"
msgstr "スタイル: パネル"
# Source-Hash: 5e6baad0d2ce3a62
@@ -5680,7 +5740,7 @@ msgstr "スタイル: パネル"
# English: "Style: Paneled glass"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.stylePaneledGlass"
+msgid "editor.toolHint.stylePaneledGlass.17a17en"
msgstr "スタイル: パネルガラス"
# Source-Hash: 6314388e6832c252
@@ -5690,7 +5750,7 @@ msgstr "スタイル: パネルガラス"
# English: "Style: Shaker"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleShaker"
+msgid "editor.toolHint.styleShaker.49z17k"
msgstr "スタイル: シェーカー"
# Source-Hash: a0f8e524f3ca121f
@@ -5700,7 +5760,7 @@ msgstr "スタイル: シェーカー"
# English: "Style: Single"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleSingle"
+msgid "editor.toolHint.styleSingle.6f3cm0"
msgstr "スタイル: 単体"
# Source-Hash: 368279df3a472c86
@@ -5710,7 +5770,7 @@ msgstr "スタイル: 単体"
# English: "Style: Six-panel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleSixPanel"
+msgid "editor.toolHint.styleSixPanel.u49laj"
msgstr "スタイル: 6パネル"
# Source-Hash: 8f3c2571d8168fee
@@ -5720,7 +5780,7 @@ msgstr "スタイル: 6パネル"
# English: "Style: Sliding"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleSliding"
+msgid "editor.toolHint.styleSliding.q81s0i"
msgstr "スタイル: 引き違い"
# Source-Hash: aa9d9eb137ca38d4
@@ -5730,7 +5790,7 @@ msgstr "スタイル: 引き違い"
# English: "Style: Tall grid"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleTallGrid"
+msgid "editor.toolHint.styleTallGrid.1eotg3x"
msgstr "スタイル: 縦長格子"
# Source-Hash: bc164648722b63e5
@@ -5740,7 +5800,7 @@ msgstr "スタイル: 縦長格子"
# English: "Style: Transom"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleTransom"
+msgid "editor.toolHint.styleTransom.kb9bh6"
msgstr "スタイル: 欄間"
# Source-Hash: 9a218f0c9ceb4697
@@ -5750,7 +5810,7 @@ msgstr "スタイル: 欄間"
# English: "Style: Triple-hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleTripleHung"
+msgid "editor.toolHint.styleTripleHung.pxnqi3"
msgstr "スタイル: 3段上げ下げ"
# Source-Hash: 9f6df1344bd3d694
@@ -5760,7 +5820,7 @@ msgstr "スタイル: 3段上げ下げ"
# English: "Style: Wide grid"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleWideGrid"
+msgid "editor.toolHint.styleWideGrid.12n27et"
msgstr "スタイル: 横長格子"
# Source-Hash: 711d4050c0cb95d7
@@ -5770,7 +5830,7 @@ msgstr "スタイル: 横長格子"
# English: "Switch rotation axis (Y → X → Z)"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.switchRotationAxisYXZ"
+msgid "editor.toolHint.switchRotationAxisYXZ.15lohm6"
msgstr "回転軸を切り替え(Y → X → Z)"
# Source-Hash: d650c71e042c2598
@@ -5780,7 +5840,7 @@ msgstr "回転軸を切り替え(Y → X → Z)"
# English: "The walls meet at too sharp or too flat an angle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.theWallsMeetAtTooSharp"
+msgid "editor.toolHint.theWallsMeetAtTooSharp.kh3wi3"
msgstr "壁の交わる角度が鋭すぎるか浅すぎます"
# Source-Hash: ab206ac56e65f190
@@ -5790,7 +5850,7 @@ msgstr "壁の交わる角度が鋭すぎるか浅すぎます"
# English: "The window waiting there is taller than this wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.theWindowWaitingThereIsTaller"
+msgid "editor.toolHint.theWindowWaitingThereIsTaller.1tqwez4"
msgstr "そこにある窓はこの壁より高いです"
# Source-Hash: 9c1f47138ed5c7ee
@@ -5800,7 +5860,7 @@ msgstr "そこにある窓はこの壁より高いです"
# English: "Three or more walls meet here"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.threeOrMoreWallsMeetHere"
+msgid "editor.toolHint.threeOrMoreWallsMeetHere.rgifif"
msgstr "ここで3枚以上の壁が交わります"
# Source-Hash: c3ca56fa28e15f07
@@ -5810,7 +5870,7 @@ msgstr "ここで3枚以上の壁が交わります"
# English: "Trace ceiling outline"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.traceCeilingOutline"
+msgid "editor.toolHint.traceCeilingOutline.1b639wv"
msgstr "天井の輪郭をなぞる"
# Source-Hash: bdf71499d30a29de
@@ -5820,7 +5880,7 @@ msgstr "天井の輪郭をなぞる"
# English: "Trace slab outline"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.traceSlabOutline"
+msgid "editor.toolHint.traceSlabOutline.z0j2lc"
msgstr "スラブの輪郭をなぞる"
# Source-Hash: c44f7ab8bbd24858
@@ -5830,7 +5890,7 @@ msgstr "スラブの輪郭をなぞる"
# English: "Type"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.type"
+msgid "editor.toolHint.type.1m2zofh"
msgstr "種類"
# Source-Hash: b54eaaff3349dcb1
@@ -5840,7 +5900,7 @@ msgstr "種類"
# English: "Type: Awning"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeAwning"
+msgid "editor.toolHint.typeAwning.1cj59al"
msgstr "種類: 突き出し"
# Source-Hash: f399572a27417c66
@@ -5850,7 +5910,7 @@ msgstr "種類: 突き出し"
# English: "Type: Barn"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeBarn"
+msgid "editor.toolHint.typeBarn.sbnygq"
msgstr "種類: 納屋"
# Source-Hash: a1df9782200b5f1e
@@ -5860,7 +5920,7 @@ msgstr "種類: 納屋"
# English: "Type: Bay"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeBay"
+msgid "editor.toolHint.typeBay.1200hc1"
msgstr "種類: 出窓"
# Source-Hash: ff069a390e8e3f66
@@ -5870,7 +5930,7 @@ msgstr "種類: 出窓"
# English: "Type: Bow"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeBow"
+msgid "editor.toolHint.typeBow.14s2t9p"
msgstr "種類: 弓形出窓"
# Source-Hash: bdac5f3f2ea70fff
@@ -5880,7 +5940,7 @@ msgstr "種類: 弓形出窓"
# English: "Type: Cabinet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeCabinet"
+msgid "editor.toolHint.typeCabinet.1r68je5"
msgstr "種類: キャビネット"
# Source-Hash: e0754fc03997cbf9
@@ -5890,7 +5950,7 @@ msgstr "種類: キャビネット"
# English: "Type: Casement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeCasement"
+msgid "editor.toolHint.typeCasement.176uo9j"
msgstr "種類: 開き"
# Source-Hash: 47d873446d6e173b
@@ -5900,7 +5960,7 @@ msgstr "種類: 開き"
# English: "Type: Double"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeDouble"
+msgid "editor.toolHint.typeDouble.af7w4i"
msgstr "種類: 両開き"
# Source-Hash: 5942e484513aaab5
@@ -5910,7 +5970,7 @@ msgstr "種類: 両開き"
# English: "Type: Double Hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeDoubleHung"
+msgid "editor.toolHint.typeDoubleHung.t482fu"
msgstr "種類: 上げ下げ(両側)"
# Source-Hash: f9497fbfceefda27
@@ -5920,7 +5980,7 @@ msgstr "種類: 上げ下げ(両側)"
# English: "Type: Fixed"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeFixed"
+msgid "editor.toolHint.typeFixed.v1cjez"
msgstr "種類: はめ殺し"
# Source-Hash: 0dcf07acc9cbf000
@@ -5930,7 +5990,7 @@ msgstr "種類: はめ殺し"
# English: "Type: Folding"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeFolding"
+msgid "editor.toolHint.typeFolding.sxxyng"
msgstr "種類: 折れ戸"
# Source-Hash: bff7331f87f279aa
@@ -5940,7 +6000,7 @@ msgstr "種類: 折れ戸"
# English: "Type: French"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeFrench"
+msgid "editor.toolHint.typeFrench.1y57z1b"
msgstr "種類: フレンチ"
# Source-Hash: 9d2c3b82079eb769
@@ -5950,7 +6010,7 @@ msgstr "種類: フレンチ"
# English: "Type: Hinged"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeHinged"
+msgid "editor.toolHint.typeHinged.1xrcfju"
msgstr "種類: 開き戸"
# Source-Hash: b8001b90ff522838
@@ -5960,7 +6020,7 @@ msgstr "種類: 開き戸"
# English: "Type: Island"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeIsland"
+msgid "editor.toolHint.typeIsland.ufr3ce"
msgstr "種類: アイランド"
# Source-Hash: 516833c5160d412e
@@ -5970,7 +6030,7 @@ msgstr "種類: アイランド"
# English: "Type: Louvered"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeLouvered"
+msgid "editor.toolHint.typeLouvered.oxl1cz"
msgstr "種類: ルーバー"
# Source-Hash: 291272bf848ad6ab
@@ -5980,7 +6040,7 @@ msgstr "種類: ルーバー"
# English: "Type: Pocket"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typePocket"
+msgid "editor.toolHint.typePocket.hc65x9"
msgstr "種類: 引き込み"
# Source-Hash: 46d0e53d6ae07c72
@@ -5990,7 +6050,7 @@ msgstr "種類: 引き込み"
# English: "Type: Single Hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeSingleHung"
+msgid "editor.toolHint.typeSingleHung.p53pyl"
msgstr "種類: 上げ下げ(片側)"
# Source-Hash: b11115b50df8faac
@@ -6000,7 +6060,7 @@ msgstr "種類: 上げ下げ(片側)"
# English: "Type: Sliding"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeSliding"
+msgid "editor.toolHint.typeSliding.nwmr3f"
msgstr "種類: 引き戸"
# Source-Hash: bff0c1694ee0a37e
@@ -6010,7 +6070,7 @@ msgstr "種類: 引き戸"
# English: "Vertical stack ↕, click to place"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.verticalStackClickToPlace"
+msgid "editor.toolHint.verticalStackClickToPlace.ijcn4q"
msgstr "立て管 ↕、クリックで配置"
# Source-Hash: bac471ee67af6412
@@ -6020,7 +6080,7 @@ msgstr "立て管 ↕、クリックで配置"
# English: "Waste / vent"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.wasteVent"
+msgid "editor.toolHint.wasteVent.1hvi3vj"
msgstr "排水 / 通気"
# Source-Hash: 1c744b7e24fc786e
@@ -6030,7 +6090,7 @@ msgstr "排水 / 通気"
# English: "Window style — click or press L to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.windowStyleClickOrPressL"
+msgid "editor.toolHint.windowStyleClickOrPressL.ah7qm9"
msgstr "窓のスタイル — クリックまたは L で切り替え"
# Source-Hash: dd6f0ab314fea26c
@@ -6040,7 +6100,7 @@ msgstr "窓のスタイル — クリックまたは L で切り替え"
# English: "Window type — click or press O to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.windowTypeClickOrPressO"
+msgid "editor.toolHint.windowTypeClickOrPressO.wv4x35"
msgstr "窓の種類 — クリックまたは O で切り替え"
# Source-Hash: 9fc7a39bc32f287a
diff --git a/packages/editor/src/i18n/locales/zh-CN/messages.po b/packages/editor/src/i18n/locales/zh-CN/messages.po
index cded9d9b70..7ab68353c7 100644
--- a/packages/editor/src/i18n/locales/zh-CN/messages.po
+++ b/packages/editor/src/i18n/locales/zh-CN/messages.po
@@ -2461,16 +2461,6 @@ msgstr "窗"
msgid "editor.actionMenu.structureTools.zone"
msgstr "区域"
-# Source-Hash: 43af78ba61aaa8ab
-# Review: required
-# AI-Provider: cursor-agent
-# AI-Model: claude-opus
-# English: "below"
-#: packages/editor/src/components/ui/action-menu/view-toggles.tsx
-#, fuzzy
-msgid "editor.actionMenu.viewToggles.below"
-msgstr "下方"
-
# Source-Hash: cdf3f12939ba108c
# Review: required
# AI-Provider: cursor-agent
@@ -2591,6 +2581,16 @@ msgstr "隐藏参考楼层"
msgid "editor.actionMenu.viewToggles.hideScans"
msgstr "隐藏扫描模型"
+# Source-Hash: 873620c284a5651f
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "{count} below"
+#: packages/editor/src/components/ui/action-menu/view-toggles.tsx
+#, fuzzy
+msgid "editor.actionMenu.viewToggles.levelsBelow"
+msgstr "下方 {count} 层"
+
# Source-Hash: 22a59ae72d8c9504
# Review: required
# AI-Provider: cursor-agent
@@ -3133,6 +3133,36 @@ msgstr "连续放置:{label}"
msgid "editor.helpers.contextualHelperPanel.dragToDrawFence"
msgstr "拖动绘制围栏"
+# Source-Hash: b52e874718af1916
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Erase: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.eraseScope"
+msgstr "擦除:{scope}"
+
+# Source-Hash: 61f7494abc319e66
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Erase scope — click or press Shift to cycle"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.eraseScopeClickOrPressShift"
+msgstr "擦除范围 — 点击或按 Shift 切换"
+
+# Source-Hash: 59993c163d68cc53
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Erase scope: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.eraseScopeLabel"
+msgstr "擦除范围:{scope}"
+
# Source-Hash: a4bdcbc6cab772bf
# Review: required
# AI-Provider: cursor-agent
@@ -3233,6 +3263,46 @@ msgstr "悬停在表面上以拾取其材质"
msgid "editor.helpers.contextualHelperPanel.moreShortcuts"
msgstr "更多快捷键"
+# Source-Hash: 476b8f5f9ee542e6
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Paint: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.paintScope"
+msgstr "涂装:{scope}"
+
+# Source-Hash: 9c09ce4c34122277
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Paint scope — click or press Shift to cycle"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.paintScopeClickOrPressShift"
+msgstr "涂装范围 — 点击或按 Shift 切换"
+
+# Source-Hash: 7890aa81687f6654
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Paint scope: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.paintScopeLabel"
+msgstr "涂装范围:{scope}"
+
+# Source-Hash: a75b3abc0784b12b
+# Review: required
+# AI-Provider: cursor-agent
+# AI-Model: claude-opus
+# English: "Pick: {scope}"
+#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
+#, fuzzy
+msgid "editor.helpers.contextualHelperPanel.pickScope"
+msgstr "拾取:{scope}"
+
# Source-Hash: 69c1044e6ea87ccf
# Review: required
# AI-Provider: cursor-agent
@@ -3353,16 +3423,6 @@ msgstr "直线围栏连续 — 点击或按 C 切换"
msgid "editor.helpers.contextualHelperPanel.straightSingle"
msgstr "直线:单段"
-# Source-Hash: 83e56140165f2535
-# Review: required
-# AI-Provider: cursor-agent
-# AI-Model: claude-opus
-# English: "{verb} scope — click or press Shift to cycle"
-#: packages/editor/src/components/ui/helpers/contextual-helper-panel.tsx
-#, fuzzy
-msgid "editor.helpers.contextualHelperPanel.verbScopeClickOrPressShift"
-msgstr "{verb}范围 — 点击或按 Shift 切换"
-
# Source-Hash: 9a56d90d461b4bca
# Review: required
# AI-Provider: cursor-agent
@@ -4280,7 +4340,7 @@ msgstr "编辑器场景渲染失败"
# English: "A curtain wall takes no corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.aCurtainWallTakesNoCorner"
+msgid "editor.toolHint.aCurtainWallTakesNoCorner.1qxjv5i"
msgstr "幕墙不能设置转角窗"
# Source-Hash: 97f5e044d46501fb
@@ -4290,7 +4350,7 @@ msgstr "幕墙不能设置转角窗"
# English: "A curved wall takes no corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.aCurvedWallTakesNoCorner"
+msgid "editor.toolHint.aCurvedWallTakesNoCorner.1vdnaw5"
msgstr "曲面墙体不能设置转角窗"
# Source-Hash: 776d8ebece7fe1bb
@@ -4300,7 +4360,7 @@ msgstr "曲面墙体不能设置转角窗"
# English: "Add a corner · click the first to close"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.addACornerClickTheFirst"
+msgid "editor.toolHint.addACornerClickTheFirst.o4r67t"
msgstr "添加转角 · 点击第一个点闭合"
# Source-Hash: 6a0745dd047b149a
@@ -4310,7 +4370,7 @@ msgstr "添加转角 · 点击第一个点闭合"
# English: "Another opening is in the way at the corner"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.anotherOpeningIsInTheWay"
+msgid "editor.toolHint.anotherOpeningIsInTheWay.11l9dd0"
msgstr "转角处有另一个开口阻挡"
# Source-Hash: 441124187e7da2fc
@@ -4320,7 +4380,7 @@ msgstr "转角处有另一个开口阻挡"
# English: "Auto hangers"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangers"
+msgid "editor.toolHint.autoHangers.10554ka"
msgstr "自动吊架"
# Source-Hash: 47a7f9a6a81156c3
@@ -4330,7 +4390,7 @@ msgstr "自动吊架"
# English: "Auto hangers - click or press H to toggle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangersClickOrPressH"
+msgid "editor.toolHint.autoHangersClickOrPressH.rwa3ka"
msgstr "自动吊架 - 点击或按 H 切换"
# Source-Hash: d7944f31cba90e26
@@ -4340,7 +4400,7 @@ msgstr "自动吊架 - 点击或按 H 切换"
# English: "Auto hangers: Off"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangersOff"
+msgid "editor.toolHint.autoHangersOff.7yx01x"
msgstr "自动吊架:关"
# Source-Hash: 295882d015d08742
@@ -4350,7 +4410,7 @@ msgstr "自动吊架:关"
# English: "Auto hangers: On"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.autoHangersOn"
+msgid "editor.toolHint.autoHangersOn.10b1umh"
msgstr "自动吊架:开"
# Source-Hash: 8c039e5182b01c4d
@@ -4360,7 +4420,7 @@ msgstr "自动吊架:开"
# English: "Bypass snapping"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.bypassSnapping"
+msgid "editor.toolHint.bypassSnapping.w5lmdv"
msgstr "绕过吸附"
# Source-Hash: c0774c185060fc13
@@ -4370,7 +4430,7 @@ msgstr "绕过吸附"
# English: "Cancel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancel"
+msgid "editor.toolHint.cancel.ew9em3"
msgstr "取消"
# Source-Hash: 5b33b576fd30b74e
@@ -4380,7 +4440,7 @@ msgstr "取消"
# English: "Cancel move"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancelMove"
+msgid "editor.toolHint.cancelMove.lvp31c"
msgstr "取消移动"
# Source-Hash: 136fa29b9ae419bf
@@ -4390,7 +4450,7 @@ msgstr "取消移动"
# English: "Cancel run / exit"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancelRunExit"
+msgid "editor.toolHint.cancelRunExit.zqjf3h"
msgstr "取消管段 / 退出"
# Source-Hash: 75b406824be91ac2
@@ -4400,7 +4460,7 @@ msgstr "取消管段 / 退出"
# English: "Cancel start point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cancelStartPoint"
+msgid "editor.toolHint.cancelStartPoint.1xbq2lh"
msgstr "取消起点"
# Source-Hash: ffa5aaa1746303c4
@@ -4410,7 +4470,7 @@ msgstr "取消起点"
# English: "Corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cornerWindow"
+msgid "editor.toolHint.cornerWindow.1avkzpo"
msgstr "转角窗"
# Source-Hash: b0afdd855a02e4a7
@@ -4420,7 +4480,7 @@ msgstr "转角窗"
# English: "Cuts"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cuts"
+msgid "editor.toolHint.cuts.1y0axps"
msgstr "切分"
# Source-Hash: dc9fe7601cc525f8
@@ -4430,7 +4490,7 @@ msgstr "切分"
# English: "Cuts: {value}"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cutsValue"
+msgid "editor.toolHint.cutsValue.ouzhvb"
msgstr "切分:{value}"
# Source-Hash: a2e13bc4dc82624c
@@ -4440,7 +4500,7 @@ msgstr "切分:{value}"
# English: "Cuts: {value}, even"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cutsValueEven"
+msgid "editor.toolHint.cutsValueEven.1ngsz3"
msgstr "切分:{value},均分"
# Source-Hash: 04152b4cec726f34
@@ -4450,7 +4510,7 @@ msgstr "切分:{value},均分"
# English: "Cycle mono / gable / butterfly"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cycleMonoGableButterfly"
+msgid "editor.toolHint.cycleMonoGableButterfly.1poga3m"
msgstr "切换单坡 / 双坡 / 蝶形"
# Source-Hash: 4fb6c83edb6652b5
@@ -4460,7 +4520,7 @@ msgstr "切换单坡 / 双坡 / 蝶形"
# English: "Cycle snapping mode"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.cycleSnappingMode"
+msgid "editor.toolHint.cycleSnappingMode.1ct0gn6"
msgstr "切换吸附模式"
# Source-Hash: 5d550a3ac76279de
@@ -4470,7 +4530,7 @@ msgstr "切换吸附模式"
# English: "Door style — click or press L to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.doorStyleClickOrPressL"
+msgid "editor.toolHint.doorStyleClickOrPressL.33pe65"
msgstr "门样式 — 点击或按 L 切换"
# Source-Hash: 3272a7df5d7c6a9a
@@ -4480,7 +4540,7 @@ msgstr "门样式 — 点击或按 L 切换"
# English: "Door type — click or press O to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.doorTypeClickOrPressO"
+msgid "editor.toolHint.doorTypeClickOrPressO.1hhh8gt"
msgstr "门类型 — 点击或按 O 切换"
# Source-Hash: 366222b4435eefda
@@ -4490,7 +4550,7 @@ msgstr "门类型 — 点击或按 O 切换"
# English: "Drop downspout from outlet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.dropDownspoutFromOutlet"
+msgid "editor.toolHint.dropDownspoutFromOutlet.1k4h1m4"
msgstr "从出水口引出落水管"
# Source-Hash: 03f306371f345007
@@ -4500,7 +4560,7 @@ msgstr "从出水口引出落水管"
# English: "Duct diameter down / up"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.ductDiameterDownUp"
+msgid "editor.toolHint.ductDiameterDownUp.1wdz5vq"
msgstr "风管直径减小 / 增大"
# Source-Hash: 7b4137e27f8327d9
@@ -4510,7 +4570,7 @@ msgstr "风管直径减小 / 增大"
# English: "End run / cancel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.endRunCancel"
+msgid "editor.toolHint.endRunCancel.59dh2w"
msgstr "结束管段 / 取消"
# Source-Hash: 938aacb119b29dc1
@@ -4520,7 +4580,7 @@ msgstr "结束管段 / 取消"
# English: "Exit"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.exit"
+msgid "editor.toolHint.exit.engmg5"
msgstr "退出"
# Source-Hash: 7cb4e0688cabcb00
@@ -4530,7 +4590,7 @@ msgstr "退出"
# English: "Exit drawing"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.exitDrawing"
+msgid "editor.toolHint.exitDrawing.9noxyb"
msgstr "退出绘制"
# Source-Hash: 47025a103c456125
@@ -4540,7 +4600,7 @@ msgstr "退出绘制"
# English: "Finish and continue"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishAndContinue"
+msgid "editor.toolHint.finishAndContinue.1gpfsks"
msgstr "完成并继续"
# Source-Hash: 000918429b74128f
@@ -4550,7 +4610,7 @@ msgstr "完成并继续"
# English: "Finish ceiling"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishCeiling"
+msgid "editor.toolHint.finishCeiling.1c1lfel"
msgstr "完成天花板"
# Source-Hash: 51a80a0dba5a6f30
@@ -4560,7 +4620,7 @@ msgstr "完成天花板"
# English: "Finish grid axis"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishGridAxis"
+msgid "editor.toolHint.finishGridAxis.1wvrfhr"
msgstr "完成轴线"
# Source-Hash: 87c7b98fc2e010e1
@@ -4570,7 +4630,7 @@ msgstr "完成轴线"
# English: "Finish measurement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishMeasurement"
+msgid "editor.toolHint.finishMeasurement.1e4gv16"
msgstr "完成测量"
# Source-Hash: 5e1a0af7dc506826
@@ -4580,7 +4640,7 @@ msgstr "完成测量"
# English: "Finish multi-point witnesses"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishMultiPointWitnesses"
+msgid "editor.toolHint.finishMultiPointWitnesses.8wzskz"
msgstr "完成多点参照"
# Source-Hash: 30fc0862501ba2e8
@@ -4590,7 +4650,7 @@ msgstr "完成多点参照"
# English: "Finish slab"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.finishSlab"
+msgid "editor.toolHint.finishSlab.xmnm8e"
msgstr "完成楼板"
# Source-Hash: 66ed7c7598d3aa29
@@ -4600,7 +4660,7 @@ msgstr "完成楼板"
# English: "Flip side"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.flipSide"
+msgid "editor.toolHint.flipSide.172xku9"
msgstr "翻转方向"
# Source-Hash: f5717f6a0905ffab
@@ -4610,7 +4670,7 @@ msgstr "翻转方向"
# English: "Follow: trace a lineset"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.followTraceALineset"
+msgid "editor.toolHint.followTraceALineset.mgquwe"
msgstr "跟随:沿冷媒管组布线"
# Source-Hash: ed7f3d8417a3e074
@@ -4620,7 +4680,7 @@ msgstr "跟随:沿冷媒管组布线"
# English: "Force place"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.forcePlace"
+msgid "editor.toolHint.forcePlace.1hq1nr"
msgstr "强制放置"
# Source-Hash: cc0c14065951444d
@@ -4630,7 +4690,7 @@ msgstr "强制放置"
# English: "Free placement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.freePlacement"
+msgid "editor.toolHint.freePlacement.1nztdac"
msgstr "自由放置"
# Source-Hash: f098a27096a9c1ea
@@ -4640,7 +4700,7 @@ msgstr "自由放置"
# English: "Go vertical ↕, click to place"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.goVerticalClickToPlace"
+msgid "editor.toolHint.goVerticalClickToPlace.dg8g6m"
msgstr "切换为竖向 ↕,点击放置"
# Source-Hash: fd47f1820d8799c8
@@ -4650,7 +4710,7 @@ msgstr "切换为竖向 ↕,点击放置"
# English: "Highlight outlet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.highlightOutlet"
+msgid "editor.toolHint.highlightOutlet.65hoq8"
msgstr "高亮出水口"
# Source-Hash: eb90058d0f856f67
@@ -4660,7 +4720,7 @@ msgstr "高亮出水口"
# English: "Join as a corner window"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.joinAsACornerWindow"
+msgid "editor.toolHint.joinAsACornerWindow.jvdp4j"
msgstr "连接为转角窗"
# Source-Hash: 225b3161f2e59757
@@ -4670,7 +4730,7 @@ msgstr "连接为转角窗"
# English: "Alt + drag"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.altDrag"
+msgid "editor.toolHint.key.altDrag.ai3wn9"
msgstr "Alt + 拖动"
# Source-Hash: dd66f883b173fc72
@@ -4680,7 +4740,7 @@ msgstr "Alt + 拖动"
# English: "Backspace"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.backspace"
+msgid "editor.toolHint.key.backspace.qy6qx8"
msgstr "退格键"
# Source-Hash: a18387bc0be54c32
@@ -4690,7 +4750,7 @@ msgstr "退格键"
# English: "Click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.click"
+msgid "editor.toolHint.key.click.m8sun"
msgstr "点击"
# Source-Hash: db9e60c1d30b8499
@@ -4700,7 +4760,7 @@ msgstr "点击"
# English: "Click again"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.clickAgain"
+msgid "editor.toolHint.key.clickAgain.190ws9j"
msgstr "再次点击"
# Source-Hash: f400330b9c9c12e8
@@ -4710,7 +4770,7 @@ msgstr "再次点击"
# English: "Command"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.command"
+msgid "editor.toolHint.key.command.1j2mkia"
msgstr "Command"
# Source-Hash: 976c63285a510b09
@@ -4720,7 +4780,7 @@ msgstr "Command"
# English: "Control"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.control"
+msgid "editor.toolHint.key.control.10fbl8e"
msgstr "Ctrl"
# Source-Hash: b26de372b4b0eaac
@@ -4730,7 +4790,7 @@ msgstr "Ctrl"
# English: "Delete"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.delete"
+msgid "editor.toolHint.key.delete.oay2cq"
msgstr "删除"
# Source-Hash: 88888c9d2719fa92
@@ -4740,7 +4800,7 @@ msgstr "删除"
# English: "Double click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.doubleClick"
+msgid "editor.toolHint.key.doubleClick.vlma6o"
msgstr "双击"
# Source-Hash: dfb85b2addb7b9fa
@@ -4750,7 +4810,7 @@ msgstr "双击"
# English: "Drag"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.drag"
+msgid "editor.toolHint.key.drag.8pwtpf"
msgstr "拖动"
# Source-Hash: ed9140d42148c99b
@@ -4760,7 +4820,7 @@ msgstr "拖动"
# English: "Enter"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.enter"
+msgid "editor.toolHint.key.enter.1ctpui5"
msgstr "回车键"
# Source-Hash: 9195fa8b9c8ebdfb
@@ -4770,7 +4830,7 @@ msgstr "回车键"
# English: "Hover"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hover"
+msgid "editor.toolHint.key.hover.6xw79p"
msgstr "悬停"
# Source-Hash: 2d78441b741bc562
@@ -4780,7 +4840,7 @@ msgstr "悬停"
# English: "Hover a duct end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hoverADuctEnd"
+msgid "editor.toolHint.key.hoverADuctEnd.19axr3b"
msgstr "悬停在风管端部"
# Source-Hash: 6083405086f61c76
@@ -4790,7 +4850,7 @@ msgstr "悬停在风管端部"
# English: "Hover a pipe end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hoverAPipeEnd"
+msgid "editor.toolHint.key.hoverAPipeEnd.1jbum5f"
msgstr "悬停在管道端部"
# Source-Hash: a5a337eb76fdb066
@@ -4800,7 +4860,7 @@ msgstr "悬停在管道端部"
# English: "Hover gutter"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.hoverGutter"
+msgid "editor.toolHint.key.hoverGutter.1dwcsno"
msgstr "悬停在檐沟上"
# Source-Hash: a58533594411e088
@@ -4810,7 +4870,7 @@ msgstr "悬停在檐沟上"
# English: "Left click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.leftClick"
+msgid "editor.toolHint.key.leftClick.s4gwfc"
msgstr "左键单击"
# Source-Hash: bc4ab608ec3d3b4f
@@ -4820,7 +4880,7 @@ msgstr "左键单击"
# English: "Middle click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.middleClick"
+msgid "editor.toolHint.key.middleClick.1jbaan4"
msgstr "中键单击"
# Source-Hash: 6791879c651108c7
@@ -4830,7 +4890,7 @@ msgstr "中键单击"
# English: "Right click"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.rightClick"
+msgid "editor.toolHint.key.rightClick.1ovld0h"
msgstr "右键单击"
# Source-Hash: c836b21b42198868
@@ -4840,7 +4900,7 @@ msgstr "右键单击"
# English: "R / Shift+R"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.rShiftR"
+msgid "editor.toolHint.key.rShiftR.13bnobh"
msgstr "R / Shift+R"
# Source-Hash: 9812aa06d8bb7544
@@ -4850,7 +4910,7 @@ msgstr "R / Shift+R"
# English: "Scroll"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.scroll"
+msgid "editor.toolHint.key.scroll.ai6wr0"
msgstr "滚动"
# Source-Hash: f2174536230657c8
@@ -4860,7 +4920,7 @@ msgstr "滚动"
# English: "Scroll wheel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.scrollWheel"
+msgid "editor.toolHint.key.scrollWheel.18j0ix7"
msgstr "滚轮"
# Source-Hash: 82dd231086d87f3b
@@ -4870,7 +4930,7 @@ msgstr "滚轮"
# English: "Space"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.space"
+msgid "editor.toolHint.key.space.1hrh82t"
msgstr "空格键"
# Source-Hash: 9e68aa2f472cad56
@@ -4880,7 +4940,7 @@ msgstr "空格键"
# English: "Tab"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.key.tab"
+msgid "editor.toolHint.key.tab.1xsal0s"
msgstr "Tab 键"
# Source-Hash: 4b221b73f9496a49
@@ -4890,7 +4950,7 @@ msgstr "Tab 键"
# English: "Mount: floor / ceiling / wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.mountFloorCeilingWall"
+msgid "editor.toolHint.mountFloorCeilingWall.32dxpv"
msgstr "安装位置:地面 / 天花板 / 墙体"
# Source-Hash: 225edfb1e45aed95
@@ -4900,7 +4960,7 @@ msgstr "安装位置:地面 / 天花板 / 墙体"
# English: "No room for the matching window on the other wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.noRoomForTheMatchingWindow"
+msgid "editor.toolHint.noRoomForTheMatchingWindow.1755948"
msgstr "另一面墙上没有空间放置对应的窗"
# Source-Hash: a7045d6b678bcd13
@@ -4910,7 +4970,7 @@ msgstr "另一面墙上没有空间放置对应的窗"
# English: "No wall meets here"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.noWallMeetsHere"
+msgid "editor.toolHint.noWallMeetsHere.19n99yc"
msgstr "此处没有相交的墙体"
# Source-Hash: a639341dc21fed2c
@@ -4920,7 +4980,7 @@ msgstr "此处没有相交的墙体"
# English: "Number of cuts — scroll or click to change"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.numberOfCutsScrollOrClick"
+msgid "editor.toolHint.numberOfCutsScrollOrClick.1kqe84b"
msgstr "切分数量 — 滚动或点击更改"
# Source-Hash: af01bde3ae4b7e59
@@ -4930,7 +4990,7 @@ msgstr "切分数量 — 滚动或点击更改"
# English: "Pick witness point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.pickWitnessPoint"
+msgid "editor.toolHint.pickWitnessPoint.k3hgh1"
msgstr "拾取参照点"
# Source-Hash: ecfd58576b28a9f6
@@ -4940,7 +5000,7 @@ msgstr "拾取参照点"
# English: "Pipe size down / up"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.pipeSizeDownUp"
+msgid "editor.toolHint.pipeSizeDownUp.wp04og"
msgstr "管径减小 / 增大"
# Source-Hash: 7a1eb7b64f06bad0
@@ -4950,7 +5010,7 @@ msgstr "管径减小 / 增大"
# English: "Place and continue"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeAndContinue"
+msgid "editor.toolHint.placeAndContinue.qfwkrq"
msgstr "放置并继续"
# Source-Hash: c6cda39e2e4b5d3a
@@ -4960,7 +5020,7 @@ msgstr "放置并继续"
# English: "Place block"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeBlock"
+msgid "editor.toolHint.placeBlock.1aylwrx"
msgstr "放置体块"
# Source-Hash: 45a743c52a1d72de
@@ -4970,7 +5030,7 @@ msgstr "放置体块"
# English: "Place box vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeBoxVentOnRoof"
+msgid "editor.toolHint.placeBoxVentOnRoof.kf88e5"
msgstr "在屋顶上放置箱式通风口"
# Source-Hash: 75142dd1d557efe2
@@ -4980,7 +5040,7 @@ msgstr "在屋顶上放置箱式通风口"
# English: "Place cabinet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeCabinet"
+msgid "editor.toolHint.placeCabinet.b0ouyk"
msgstr "放置橱柜"
# Source-Hash: da603a713d4c9909
@@ -4990,7 +5050,7 @@ msgstr "放置橱柜"
# English: "Place canopy or set the next run point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeCanopyOrSetTheNext"
+msgid "editor.toolHint.placeCanopyOrSetTheNext.12l7zf8"
msgstr "放置雨棚或设置下一个连续点"
# Source-Hash: 8b3a30c6b7a5612d
@@ -5000,7 +5060,7 @@ msgstr "放置雨棚或设置下一个连续点"
# English: "Place chimney on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeChimneyOnRoof"
+msgid "editor.toolHint.placeChimneyOnRoof.19dbqu"
msgstr "在屋顶上放置烟囱"
# Source-Hash: 710d41e4e2f259fa
@@ -5010,7 +5070,7 @@ msgstr "在屋顶上放置烟囱"
# English: "Place column"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeColumn"
+msgid "editor.toolHint.placeColumn.1w2vq86"
msgstr "放置柱"
# Source-Hash: ee1da4e12a71d9a9
@@ -5020,7 +5080,7 @@ msgstr "放置柱"
# English: "Place cupola on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeCupolaOnRoof"
+msgid "editor.toolHint.placeCupolaOnRoof.ofx3bn"
msgstr "在屋顶上放置穹顶亭"
# Source-Hash: 19c1fe8c46d213a5
@@ -5030,7 +5090,7 @@ msgstr "在屋顶上放置穹顶亭"
# English: "Place dimension line when needed"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeDimensionLineWhenNeeded"
+msgid "editor.toolHint.placeDimensionLineWhenNeeded.bjw2cj"
msgstr "需要时放置尺寸线"
# Source-Hash: 58f3e7efb6ea120b
@@ -5040,7 +5100,7 @@ msgstr "需要时放置尺寸线"
# English: "Place door on wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeDoorOnWall"
+msgid "editor.toolHint.placeDoorOnWall.1jwadf"
msgstr "在墙体上放置门"
# Source-Hash: de04e9d03d937c97
@@ -5050,7 +5110,7 @@ msgstr "在墙体上放置门"
# English: "Place dormer on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeDormerOnRoof"
+msgid "editor.toolHint.placeDormerOnRoof.1w518a6"
msgstr "在屋顶上放置老虎窗"
# Source-Hash: c581645f2ee447c2
@@ -5060,7 +5120,7 @@ msgstr "在屋顶上放置老虎窗"
# English: "Place elevator"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeElevator"
+msgid "editor.toolHint.placeElevator.1f65zva"
msgstr "放置电梯"
# Source-Hash: 096b8d6482717358
@@ -5070,7 +5130,7 @@ msgstr "放置电梯"
# English: "Place eyebrow vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeEyebrowVentOnRoof"
+msgid "editor.toolHint.placeEyebrowVentOnRoof.1h1tqxn"
msgstr "在屋顶上放置眉形通风口"
# Source-Hash: e8d42c1c8370773f
@@ -5080,7 +5140,7 @@ msgstr "在屋顶上放置眉形通风口"
# English: "Place fitting"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeFitting"
+msgid "editor.toolHint.placeFitting.1pmx3vn"
msgstr "放置管件"
# Source-Hash: 2340a4b70cb0d9ad
@@ -5090,7 +5150,7 @@ msgstr "放置管件"
# English: "Place gutter on roof eave"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeGutterOnRoofEave"
+msgid "editor.toolHint.placeGutterOnRoofEave.llwzf9"
msgstr "在屋檐上放置檐沟"
# Source-Hash: 706a8eafb6212833
@@ -5100,7 +5160,7 @@ msgstr "在屋檐上放置檐沟"
# English: "Place item"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeItem"
+msgid "editor.toolHint.placeItem.teynf"
msgstr "放置物品"
# Source-Hash: 1815c482e249932e
@@ -5110,7 +5170,7 @@ msgstr "放置物品"
# English: "Place it (locked to 45°)"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeItLockedTo45"
+msgid "editor.toolHint.placeItLockedTo45.16e4csk"
msgstr "放置(锁定为 45°)"
# Source-Hash: 4a14340657532838
@@ -5120,7 +5180,7 @@ msgstr "放置(锁定为 45°)"
# English: "Place measurement point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeMeasurementPoint"
+msgid "editor.toolHint.placeMeasurementPoint.bsatli"
msgstr "放置测量点"
# Source-Hash: b3be684ac62fbf53
@@ -5130,7 +5190,7 @@ msgstr "放置测量点"
# English: "Placement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placement"
+msgid "editor.toolHint.placement.13lcvts"
msgstr "放置"
# Source-Hash: 2bb2ce6276c69b1e
@@ -5140,7 +5200,7 @@ msgstr "放置"
# English: "Placement: Auto"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementAuto"
+msgid "editor.toolHint.placementAuto.1caa52d"
msgstr "放置:自动"
# Source-Hash: ed78ac5354a1dcd8
@@ -5150,7 +5210,7 @@ msgstr "放置:自动"
# English: "Placement: Ground"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementGround"
+msgid "editor.toolHint.placementGround.1ruz145"
msgstr "放置:地面"
# Source-Hash: a066a2c9d5e65a1a
@@ -5160,7 +5220,7 @@ msgstr "放置:地面"
# English: "Placement: Roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementRoof"
+msgid "editor.toolHint.placementRoof.renkw8"
msgstr "放置:屋顶"
# Source-Hash: 8f74dbe5064c4c66
@@ -5170,7 +5230,7 @@ msgstr "放置:屋顶"
# English: "Placement surface - click or press P to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementSurfaceClickOrPressP"
+msgid "editor.toolHint.placementSurfaceClickOrPressP.w56h19"
msgstr "放置面 - 点击或按 P 切换"
# Source-Hash: fe119955c925feaf
@@ -5180,7 +5240,7 @@ msgstr "放置面 - 点击或按 P 切换"
# English: "Placement type"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementType"
+msgid "editor.toolHint.placementType.1mdpl60"
msgstr "放置类型"
# Source-Hash: 33043a35500168f5
@@ -5190,7 +5250,7 @@ msgstr "放置类型"
# English: "Placement type — click or press I to toggle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placementTypeClickOrPressI"
+msgid "editor.toolHint.placementTypeClickOrPressI.10cgxh2"
msgstr "放置类型 — 点击或按 I 切换"
# Source-Hash: 9945f412e6a9a446
@@ -5200,7 +5260,7 @@ msgstr "放置类型 — 点击或按 I 切换"
# English: "Place on a fence"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeOnAFence"
+msgid "editor.toolHint.placeOnAFence.1dptstr"
msgstr "放置在围栏上"
# Source-Hash: 6708118775a7da7f
@@ -5210,7 +5270,7 @@ msgstr "放置在围栏上"
# English: "Place register"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeRegister"
+msgid "editor.toolHint.placeRegister.1uebycd"
msgstr "放置风口"
# Source-Hash: ebd2731f5c79306e
@@ -5220,7 +5280,7 @@ msgstr "放置风口"
# English: "Place ridge vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeRidgeVentOnRoof"
+msgid "editor.toolHint.placeRidgeVentOnRoof.2tpd8r"
msgstr "在屋顶上放置屋脊通风口"
# Source-Hash: 9b3c66a867c23326
@@ -5230,7 +5290,7 @@ msgstr "在屋顶上放置屋脊通风口"
# English: "Place shelf"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeShelf"
+msgid "editor.toolHint.placeShelf.y4l3iw"
msgstr "放置置物架"
# Source-Hash: f11cf5c1c9fe862d
@@ -5240,7 +5300,7 @@ msgstr "放置置物架"
# English: "Place skylight on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeSkylightOnRoof"
+msgid "editor.toolHint.placeSkylightOnRoof.e215pe"
msgstr "在屋顶上放置天窗"
# Source-Hash: e989a58d6709cc16
@@ -5250,7 +5310,7 @@ msgstr "在屋顶上放置天窗"
# English: "Place solar panel array on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeSolarPanelArrayOnRoof"
+msgid "editor.toolHint.placeSolarPanelArrayOnRoof.kk11fn"
msgstr "在屋顶上放置光伏板阵列"
# Source-Hash: b67f7036d5180cf5
@@ -5260,7 +5320,7 @@ msgstr "在屋顶上放置光伏板阵列"
# English: "Place spawn point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeSpawnPoint"
+msgid "editor.toolHint.placeSpawnPoint.205o25"
msgstr "放置出生点"
# Source-Hash: 6c7f32a17e5636c3
@@ -5270,7 +5330,7 @@ msgstr "放置出生点"
# English: "Place stairs"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeStairs"
+msgid "editor.toolHint.placeStairs.zwxxu2"
msgstr "放置楼梯"
# Source-Hash: 641c0d3debd798a8
@@ -5280,7 +5340,7 @@ msgstr "放置楼梯"
# English: "Place trap"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeTrap"
+msgid "editor.toolHint.placeTrap.1gxemn3"
msgstr "放置存水弯"
# Source-Hash: 6f0a6f6c4b7588a0
@@ -5290,7 +5350,7 @@ msgstr "放置存水弯"
# English: "Place turbine vent on roof"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeTurbineVentOnRoof"
+msgid "editor.toolHint.placeTurbineVentOnRoof.1iqeluf"
msgstr "在屋顶上放置涡轮通风器"
# Source-Hash: e65cf5edb4f51ed5
@@ -5300,7 +5360,7 @@ msgstr "在屋顶上放置涡轮通风器"
# English: "Place unit"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeUnit"
+msgid "editor.toolHint.placeUnit.8zkx4q"
msgstr "放置设备"
# Source-Hash: 86ce1c730154f68b
@@ -5310,7 +5370,7 @@ msgstr "放置设备"
# English: "Place window on wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeWindowOnWall"
+msgid "editor.toolHint.placeWindowOnWall.1k3qnfb"
msgstr "在墙体上放置窗"
# Source-Hash: 2b612180a7617901
@@ -5320,7 +5380,7 @@ msgstr "在墙体上放置窗"
# English: "Place without the corner snap"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.placeWithoutTheCornerSnap"
+msgid "editor.toolHint.placeWithoutTheCornerSnap.1nifqew"
msgstr "不使用转角吸附放置"
# Source-Hash: 0dc6d121791696f7
@@ -5330,7 +5390,7 @@ msgstr "不使用转角吸附放置"
# English: "Remove last point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.removeLastPoint"
+msgid "editor.toolHint.removeLastPoint.2dmdcx"
msgstr "移除最后一个点"
# Source-Hash: 8b74b1d962be10fc
@@ -5340,7 +5400,7 @@ msgstr "移除最后一个点"
# English: "Remove last witness"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.removeLastWitness"
+msgid "editor.toolHint.removeLastWitness.1b6vvzw"
msgstr "移除最后一个参照"
# Source-Hash: 306d409f8a1cf480
@@ -5350,7 +5410,7 @@ msgstr "移除最后一个参照"
# English: "Rotate"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotate"
+msgid "editor.toolHint.rotate.1thqa0a"
msgstr "旋转"
# Source-Hash: 8a665ecaeffa9308
@@ -5360,7 +5420,7 @@ msgstr "旋转"
# English: "Rotate ±45°"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotate45"
+msgid "editor.toolHint.rotate45.9zq68u"
msgstr "旋转 ±45°"
# Source-Hash: be2240289aa74df5
@@ -5370,7 +5430,7 @@ msgstr "旋转 ±45°"
# English: "Rotate ±45° (floor / ceiling)"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotate45FloorCeiling"
+msgid "editor.toolHint.rotate45FloorCeiling.m9t57d"
msgstr "旋转 ±45°(地面 / 天花板)"
# Source-Hash: d5fb78b07c0f8138
@@ -5380,7 +5440,7 @@ msgstr "旋转 ±45°(地面 / 天花板)"
# English: "Rotate ghost ±15°"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateGhost15"
+msgid "editor.toolHint.rotateGhost15.rsa52c"
msgstr "旋转预览 ±15°"
# Source-Hash: 912d340cd16e27fa
@@ -5390,7 +5450,7 @@ msgstr "旋转预览 ±15°"
# English: "Rotate or flip the run side"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateOrFlipTheRunSide"
+msgid "editor.toolHint.rotateOrFlipTheRunSide.t5ior7"
msgstr "旋转或翻转排布方向"
# Source-Hash: ad1dc0b5536cceef
@@ -5400,7 +5460,7 @@ msgstr "旋转或翻转排布方向"
# English: "Rotate roof direction 90°"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateRoofDirection90"
+msgid "editor.toolHint.rotateRoofDirection90.tvbji2"
msgstr "将屋顶方向旋转 90°"
# Source-Hash: fa24651e9e5f595a
@@ -5410,7 +5470,7 @@ msgstr "将屋顶方向旋转 90°"
# English: "Rotate spawn point"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.rotateSpawnPoint"
+msgid "editor.toolHint.rotateSpawnPoint.1opcuu7"
msgstr "旋转出生点"
# Source-Hash: 2d693d87fe9b59e6
@@ -5420,7 +5480,7 @@ msgstr "旋转出生点"
# English: "Round / rectangular / oval"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.roundRectangularOval"
+msgid "editor.toolHint.roundRectangularOval.e4nh6x"
msgstr "圆形 / 矩形 / 椭圆"
# Source-Hash: f7d2c9cdcc637c97
@@ -5430,7 +5490,7 @@ msgstr "圆形 / 矩形 / 椭圆"
# English: "Set fence start / end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setFenceStartEnd"
+msgid "editor.toolHint.setFenceStartEnd.1phbwsq"
msgstr "设置围栏起点 / 终点"
# Source-Hash: c93ae898b4d59f6f
@@ -5440,7 +5500,7 @@ msgstr "设置围栏起点 / 终点"
# English: "Set one corner, then the opposite"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setOneCornerThenTheOpposite"
+msgid "editor.toolHint.setOneCornerThenTheOpposite.8tsl49"
msgstr "设置一个角,再设置对角"
# Source-Hash: 4f55171f10c6ceeb
@@ -5450,7 +5510,7 @@ msgstr "设置一个角,再设置对角"
# English: "Set roof footprint"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setRoofFootprint"
+msgid "editor.toolHint.setRoofFootprint.p50n0o"
msgstr "设置屋顶轮廓"
# Source-Hash: 0243859b1d64c21e
@@ -5460,7 +5520,7 @@ msgstr "设置屋顶轮廓"
# English: "Set wall start / end"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.setWallStartEnd"
+msgid "editor.toolHint.setWallStartEnd.1r8ubcx"
msgstr "设置墙体起点 / 终点"
# Source-Hash: c2806cce9612fa50
@@ -5470,7 +5530,7 @@ msgstr "设置墙体起点 / 终点"
# English: "Slope / level"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.slopeLevel"
+msgid "editor.toolHint.slopeLevel.ftqp67"
msgstr "坡度 / 水平"
# Source-Hash: 06c0ec40606db679
@@ -5480,7 +5540,7 @@ msgstr "坡度 / 水平"
# English: "Snap onto the run"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.snapOntoTheRun"
+msgid "editor.toolHint.snapOntoTheRun.86yhmp"
msgstr "吸附到管段上"
# Source-Hash: e214cccbac9c4fd2
@@ -5490,7 +5550,7 @@ msgstr "吸附到管段上"
# English: "Split at the marks"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.splitAtTheMarks"
+msgid "editor.toolHint.splitAtTheMarks.x5tpdd"
msgstr "在标记处分割"
# Source-Hash: 94455c35bfeac6b4
@@ -5500,7 +5560,7 @@ msgstr "在标记处分割"
# English: "Start grid axis"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startGridAxis"
+msgid "editor.toolHint.startGridAxis.k92yza"
msgstr "开始轴线"
# Source-Hash: 2edb4c29bbe7c513
@@ -5510,7 +5570,7 @@ msgstr "开始轴线"
# English: "Start lineset"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startLineset"
+msgid "editor.toolHint.startLineset.23q8dh"
msgstr "开始冷媒管组"
# Source-Hash: 9e50f1b30e325208
@@ -5520,7 +5580,7 @@ msgstr "开始冷媒管组"
# English: "Start liquid line"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startLiquidLine"
+msgid "editor.toolHint.startLiquidLine.1rlxsgd"
msgstr "开始液管"
# Source-Hash: 877ddcb778c211cc
@@ -5530,7 +5590,7 @@ msgstr "开始液管"
# English: "Start run"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startRun"
+msgid "editor.toolHint.startRun.r6fc5u"
msgstr "开始管段"
# Source-Hash: 8a62bee64174bbc0
@@ -5540,7 +5600,7 @@ msgstr "开始管段"
# English: "Start segment"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.startSegment"
+msgid "editor.toolHint.startSegment.rolym6"
msgstr "开始分段"
# Source-Hash: 6cc5dc51a8e66779
@@ -5550,7 +5610,7 @@ msgstr "开始分段"
# English: "Step back or cancel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.stepBackOrCancel"
+msgid "editor.toolHint.stepBackOrCancel.zbfdkn"
msgstr "后退一步或取消"
# Source-Hash: 1a79a485d91f3f28
@@ -5560,7 +5620,7 @@ msgstr "后退一步或取消"
# English: "Style"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.style"
+msgid "editor.toolHint.style.nf3vcm"
msgstr "样式"
# Source-Hash: 81f595b1c47c0080
@@ -5570,7 +5630,7 @@ msgstr "样式"
# English: "Style: Barn"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleBarn"
+msgid "editor.toolHint.styleBarn.k9n1x"
msgstr "样式:谷仓门"
# Source-Hash: 3a82c718fe215273
@@ -5580,7 +5640,7 @@ msgstr "样式:谷仓门"
# English: "Style: Casement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleCasement"
+msgid "editor.toolHint.styleCasement.ziklec"
msgstr "样式:平开"
# Source-Hash: 072e3331d1d105c0
@@ -5590,7 +5650,7 @@ msgstr "样式:平开"
# English: "Style: Craftsman"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleCraftsman"
+msgid "editor.toolHint.styleCraftsman.52e6a9"
msgstr "样式:工匠"
# Source-Hash: b64d07557dec1714
@@ -5600,7 +5660,7 @@ msgstr "样式:工匠"
# English: "Style: Double-hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleDoubleHung"
+msgid "editor.toolHint.styleDoubleHung.1lg8pkg"
msgstr "样式:双悬"
# Source-Hash: 55ef8761a537637f
@@ -5610,7 +5670,7 @@ msgstr "样式:双悬"
# English: "Style: French"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleFrench"
+msgid "editor.toolHint.styleFrench.1ue3j64"
msgstr "样式:法式"
# Source-Hash: bc8a751d87536dc3
@@ -5620,7 +5680,7 @@ msgstr "样式:法式"
# English: "Style: Glass"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleGlass"
+msgid "editor.toolHint.styleGlass.qudnb4"
msgstr "样式:玻璃"
# Source-Hash: 40c1eb0bc83e207d
@@ -5630,7 +5690,7 @@ msgstr "样式:玻璃"
# English: "Style: Grid"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleGrid"
+msgid "editor.toolHint.styleGrid.1vuq4po"
msgstr "样式:格栅"
# Source-Hash: f516886bab2e7f10
@@ -5640,7 +5700,7 @@ msgstr "样式:格栅"
# English: "Style: Half-louvered"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleHalfLouvered"
+msgid "editor.toolHint.styleHalfLouvered.13b1few"
msgstr "样式:半百叶"
# Source-Hash: 64e4389a695371a2
@@ -5650,7 +5710,7 @@ msgstr "样式:半百叶"
# English: "Style: Horizontal bands"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleHorizontalBands"
+msgid "editor.toolHint.styleHorizontalBands.12ethxk"
msgstr "样式:横向条纹"
# Source-Hash: ff6d226a425b00c0
@@ -5660,7 +5720,7 @@ msgstr "样式:横向条纹"
# English: "Style: Modern"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleModern"
+msgid "editor.toolHint.styleModern.1fh8hhn"
msgstr "样式:现代"
# Source-Hash: c6d17ba078ff47e7
@@ -5670,7 +5730,7 @@ msgstr "样式:现代"
# English: "Style: Panel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.stylePanel"
+msgid "editor.toolHint.stylePanel.922jze"
msgstr "样式:镶板"
# Source-Hash: 5e6baad0d2ce3a62
@@ -5680,7 +5740,7 @@ msgstr "样式:镶板"
# English: "Style: Paneled glass"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.stylePaneledGlass"
+msgid "editor.toolHint.stylePaneledGlass.17a17en"
msgstr "样式:镶板玻璃"
# Source-Hash: 6314388e6832c252
@@ -5690,7 +5750,7 @@ msgstr "样式:镶板玻璃"
# English: "Style: Shaker"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleShaker"
+msgid "editor.toolHint.styleShaker.49z17k"
msgstr "样式:震颤派"
# Source-Hash: a0f8e524f3ca121f
@@ -5700,7 +5760,7 @@ msgstr "样式:震颤派"
# English: "Style: Single"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleSingle"
+msgid "editor.toolHint.styleSingle.6f3cm0"
msgstr "样式:单扇"
# Source-Hash: 368279df3a472c86
@@ -5710,7 +5770,7 @@ msgstr "样式:单扇"
# English: "Style: Six-panel"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleSixPanel"
+msgid "editor.toolHint.styleSixPanel.u49laj"
msgstr "样式:六镶板"
# Source-Hash: 8f3c2571d8168fee
@@ -5720,7 +5780,7 @@ msgstr "样式:六镶板"
# English: "Style: Sliding"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleSliding"
+msgid "editor.toolHint.styleSliding.q81s0i"
msgstr "样式:推拉"
# Source-Hash: aa9d9eb137ca38d4
@@ -5730,7 +5790,7 @@ msgstr "样式:推拉"
# English: "Style: Tall grid"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleTallGrid"
+msgid "editor.toolHint.styleTallGrid.1eotg3x"
msgstr "样式:高格栅"
# Source-Hash: bc164648722b63e5
@@ -5740,7 +5800,7 @@ msgstr "样式:高格栅"
# English: "Style: Transom"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleTransom"
+msgid "editor.toolHint.styleTransom.kb9bh6"
msgstr "样式:带亮子"
# Source-Hash: 9a218f0c9ceb4697
@@ -5750,7 +5810,7 @@ msgstr "样式:带亮子"
# English: "Style: Triple-hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleTripleHung"
+msgid "editor.toolHint.styleTripleHung.pxnqi3"
msgstr "样式:三悬"
# Source-Hash: 9f6df1344bd3d694
@@ -5760,7 +5820,7 @@ msgstr "样式:三悬"
# English: "Style: Wide grid"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.styleWideGrid"
+msgid "editor.toolHint.styleWideGrid.12n27et"
msgstr "样式:宽格栅"
# Source-Hash: 711d4050c0cb95d7
@@ -5770,7 +5830,7 @@ msgstr "样式:宽格栅"
# English: "Switch rotation axis (Y → X → Z)"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.switchRotationAxisYXZ"
+msgid "editor.toolHint.switchRotationAxisYXZ.15lohm6"
msgstr "切换旋转轴(Y → X → Z)"
# Source-Hash: d650c71e042c2598
@@ -5780,7 +5840,7 @@ msgstr "切换旋转轴(Y → X → Z)"
# English: "The walls meet at too sharp or too flat an angle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.theWallsMeetAtTooSharp"
+msgid "editor.toolHint.theWallsMeetAtTooSharp.kh3wi3"
msgstr "墙体相交的角度过尖或过平"
# Source-Hash: ab206ac56e65f190
@@ -5790,7 +5850,7 @@ msgstr "墙体相交的角度过尖或过平"
# English: "The window waiting there is taller than this wall"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.theWindowWaitingThereIsTaller"
+msgid "editor.toolHint.theWindowWaitingThereIsTaller.1tqwez4"
msgstr "该处待放置的窗比这面墙体更高"
# Source-Hash: 9c1f47138ed5c7ee
@@ -5800,7 +5860,7 @@ msgstr "该处待放置的窗比这面墙体更高"
# English: "Three or more walls meet here"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.threeOrMoreWallsMeetHere"
+msgid "editor.toolHint.threeOrMoreWallsMeetHere.rgifif"
msgstr "此处有三面或更多墙体相交"
# Source-Hash: c3ca56fa28e15f07
@@ -5810,7 +5870,7 @@ msgstr "此处有三面或更多墙体相交"
# English: "Trace ceiling outline"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.traceCeilingOutline"
+msgid "editor.toolHint.traceCeilingOutline.1b639wv"
msgstr "描绘天花板轮廓"
# Source-Hash: bdf71499d30a29de
@@ -5820,7 +5880,7 @@ msgstr "描绘天花板轮廓"
# English: "Trace slab outline"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.traceSlabOutline"
+msgid "editor.toolHint.traceSlabOutline.z0j2lc"
msgstr "描绘楼板轮廓"
# Source-Hash: c44f7ab8bbd24858
@@ -5830,7 +5890,7 @@ msgstr "描绘楼板轮廓"
# English: "Type"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.type"
+msgid "editor.toolHint.type.1m2zofh"
msgstr "类型"
# Source-Hash: b54eaaff3349dcb1
@@ -5840,7 +5900,7 @@ msgstr "类型"
# English: "Type: Awning"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeAwning"
+msgid "editor.toolHint.typeAwning.1cj59al"
msgstr "类型:上悬"
# Source-Hash: f399572a27417c66
@@ -5850,7 +5910,7 @@ msgstr "类型:上悬"
# English: "Type: Barn"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeBarn"
+msgid "editor.toolHint.typeBarn.sbnygq"
msgstr "类型:谷仓门"
# Source-Hash: a1df9782200b5f1e
@@ -5860,7 +5920,7 @@ msgstr "类型:谷仓门"
# English: "Type: Bay"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeBay"
+msgid "editor.toolHint.typeBay.1200hc1"
msgstr "类型:凸窗"
# Source-Hash: ff069a390e8e3f66
@@ -5870,7 +5930,7 @@ msgstr "类型:凸窗"
# English: "Type: Bow"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeBow"
+msgid "editor.toolHint.typeBow.14s2t9p"
msgstr "类型:弧形凸窗"
# Source-Hash: bdac5f3f2ea70fff
@@ -5880,7 +5940,7 @@ msgstr "类型:弧形凸窗"
# English: "Type: Cabinet"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeCabinet"
+msgid "editor.toolHint.typeCabinet.1r68je5"
msgstr "类型:柜门"
# Source-Hash: e0754fc03997cbf9
@@ -5890,7 +5950,7 @@ msgstr "类型:柜门"
# English: "Type: Casement"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeCasement"
+msgid "editor.toolHint.typeCasement.176uo9j"
msgstr "类型:平开"
# Source-Hash: 47d873446d6e173b
@@ -5900,7 +5960,7 @@ msgstr "类型:平开"
# English: "Type: Double"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeDouble"
+msgid "editor.toolHint.typeDouble.af7w4i"
msgstr "类型:双扇"
# Source-Hash: 5942e484513aaab5
@@ -5910,7 +5970,7 @@ msgstr "类型:双扇"
# English: "Type: Double Hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeDoubleHung"
+msgid "editor.toolHint.typeDoubleHung.t482fu"
msgstr "类型:双悬"
# Source-Hash: f9497fbfceefda27
@@ -5920,7 +5980,7 @@ msgstr "类型:双悬"
# English: "Type: Fixed"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeFixed"
+msgid "editor.toolHint.typeFixed.v1cjez"
msgstr "类型:固定"
# Source-Hash: 0dcf07acc9cbf000
@@ -5930,7 +5990,7 @@ msgstr "类型:固定"
# English: "Type: Folding"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeFolding"
+msgid "editor.toolHint.typeFolding.sxxyng"
msgstr "类型:折叠"
# Source-Hash: bff7331f87f279aa
@@ -5940,7 +6000,7 @@ msgstr "类型:折叠"
# English: "Type: French"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeFrench"
+msgid "editor.toolHint.typeFrench.1y57z1b"
msgstr "类型:法式"
# Source-Hash: 9d2c3b82079eb769
@@ -5950,7 +6010,7 @@ msgstr "类型:法式"
# English: "Type: Hinged"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeHinged"
+msgid "editor.toolHint.typeHinged.1xrcfju"
msgstr "类型:铰链"
# Source-Hash: b8001b90ff522838
@@ -5960,7 +6020,7 @@ msgstr "类型:铰链"
# English: "Type: Island"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeIsland"
+msgid "editor.toolHint.typeIsland.ufr3ce"
msgstr "类型:岛台"
# Source-Hash: 516833c5160d412e
@@ -5970,7 +6030,7 @@ msgstr "类型:岛台"
# English: "Type: Louvered"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeLouvered"
+msgid "editor.toolHint.typeLouvered.oxl1cz"
msgstr "类型:百叶"
# Source-Hash: 291272bf848ad6ab
@@ -5980,7 +6040,7 @@ msgstr "类型:百叶"
# English: "Type: Pocket"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typePocket"
+msgid "editor.toolHint.typePocket.hc65x9"
msgstr "类型:内嵌推拉"
# Source-Hash: 46d0e53d6ae07c72
@@ -5990,7 +6050,7 @@ msgstr "类型:内嵌推拉"
# English: "Type: Single Hung"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeSingleHung"
+msgid "editor.toolHint.typeSingleHung.p53pyl"
msgstr "类型:单悬"
# Source-Hash: b11115b50df8faac
@@ -6000,7 +6060,7 @@ msgstr "类型:单悬"
# English: "Type: Sliding"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.typeSliding"
+msgid "editor.toolHint.typeSliding.nwmr3f"
msgstr "类型:推拉"
# Source-Hash: bff0c1694ee0a37e
@@ -6010,7 +6070,7 @@ msgstr "类型:推拉"
# English: "Vertical stack ↕, click to place"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.verticalStackClickToPlace"
+msgid "editor.toolHint.verticalStackClickToPlace.ijcn4q"
msgstr "竖向立管 ↕,点击放置"
# Source-Hash: bac471ee67af6412
@@ -6020,7 +6080,7 @@ msgstr "竖向立管 ↕,点击放置"
# English: "Waste / vent"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.wasteVent"
+msgid "editor.toolHint.wasteVent.1hvi3vj"
msgstr "污水 / 通气"
# Source-Hash: 1c744b7e24fc786e
@@ -6030,7 +6090,7 @@ msgstr "污水 / 通气"
# English: "Window style — click or press L to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.windowStyleClickOrPressL"
+msgid "editor.toolHint.windowStyleClickOrPressL.ah7qm9"
msgstr "窗样式 — 点击或按 L 切换"
# Source-Hash: dd6f0ab314fea26c
@@ -6040,7 +6100,7 @@ msgstr "窗样式 — 点击或按 L 切换"
# English: "Window type — click or press O to cycle"
#: packages/nodes/src/i18n/definition-messages.ts
#, fuzzy
-msgid "editor.toolHint.windowTypeClickOrPressO"
+msgid "editor.toolHint.windowTypeClickOrPressO.wv4x35"
msgstr "窗类型 — 点击或按 O 切换"
# Source-Hash: 9fc7a39bc32f287a
diff --git a/packages/editor/src/i18n/node-messages.ts b/packages/editor/src/i18n/node-messages.ts
index f1c35d6979..9652de72a5 100644
--- a/packages/editor/src/i18n/node-messages.ts
+++ b/packages/editor/src/i18n/node-messages.ts
@@ -46,8 +46,22 @@ export function nodeDescriptionDescriptor(kind: string, english: string): Messag
return { id: `node.${nodeKindKey(kind)}.description`, message: literal(english) }
}
+/**
+ * Short FNV-1a hash of the whole message. Hint IDs end with it, so two hints
+ * whose first six words agree (a plugin's and a built-in's) never share an ID
+ * and so never share a translation.
+ */
+function messageHash(message: string): string {
+ let hash = 0x811c9dc5
+ for (let index = 0; index < message.length; index += 1) {
+ hash ^= message.charCodeAt(index)
+ hash = Math.imul(hash, 0x01000193)
+ }
+ return (hash >>> 0).toString(36)
+}
+
function hintMessage(message: string): MessageDescriptor {
- return { id: `editor.toolHint.${messageSlug(message)}`, message }
+ return { id: `editor.toolHint.${messageSlug(message)}.${messageHash(message)}`, message }
}
export function toolHintDescriptor(english: string): MessageDescriptor {
@@ -102,7 +116,8 @@ export function toolHintKeyDescriptor(key: string): MessageDescriptor | undefine
if (!/\p{L}{2}/u.test(key) || /^(?:Alt|Ctrl|Cmd|Esc|Shift)$/.test(key)) {
return undefined
}
- return { id: `editor.toolHint.key.${messageSlug(key)}`, message: literal(key) }
+ const message = literal(key)
+ return { id: `editor.toolHint.key.${messageSlug(key)}.${messageHash(message)}`, message }
}
export function nodeLabel(kind: string, english: string, i18n: PascalI18n): string {
diff --git a/packages/nodes/src/i18n/definition-messages.ts b/packages/nodes/src/i18n/definition-messages.ts
index 7384bcb706..b0109693aa 100644
--- a/packages/nodes/src/i18n/definition-messages.ts
+++ b/packages/nodes/src/i18n/definition-messages.ts
@@ -3,183 +3,183 @@
// (packages/editor/src/i18n/node-messages.ts); these descriptors exist so Lingui
// extracts and translates those IDs.
export const definitionMessages = [
- /* i18n */ { id: "editor.toolHint.aCurtainWallTakesNoCorner", message: "A curtain wall takes no corner window" },
- /* i18n */ { id: "editor.toolHint.aCurvedWallTakesNoCorner", message: "A curved wall takes no corner window" },
- /* i18n */ { id: "editor.toolHint.addACornerClickTheFirst", message: "Add a corner · click the first to close" },
- /* i18n */ { id: "editor.toolHint.anotherOpeningIsInTheWay", message: "Another opening is in the way at the corner" },
- /* i18n */ { id: "editor.toolHint.autoHangers", message: "Auto hangers" },
- /* i18n */ { id: "editor.toolHint.autoHangersClickOrPressH", message: "Auto hangers - click or press H to toggle" },
- /* i18n */ { id: "editor.toolHint.autoHangersOff", message: "Auto hangers: Off" },
- /* i18n */ { id: "editor.toolHint.autoHangersOn", message: "Auto hangers: On" },
- /* i18n */ { id: "editor.toolHint.bypassSnapping", message: "Bypass snapping" },
- /* i18n */ { id: "editor.toolHint.cancel", message: "Cancel" },
- /* i18n */ { id: "editor.toolHint.cancelMove", message: "Cancel move" },
- /* i18n */ { id: "editor.toolHint.cancelRunExit", message: "Cancel run / exit" },
- /* i18n */ { id: "editor.toolHint.cancelStartPoint", message: "Cancel start point" },
- /* i18n */ { id: "editor.toolHint.cornerWindow", message: "Corner window" },
- /* i18n */ { id: "editor.toolHint.cuts", message: "Cuts" },
- /* i18n */ { id: "editor.toolHint.cutsValue", message: "Cuts: {value}" },
- /* i18n */ { id: "editor.toolHint.cutsValueEven", message: "Cuts: {value}, even" },
- /* i18n */ { id: "editor.toolHint.cycleMonoGableButterfly", message: "Cycle mono / gable / butterfly" },
- /* i18n */ { id: "editor.toolHint.cycleSnappingMode", message: "Cycle snapping mode" },
- /* i18n */ { id: "editor.toolHint.doorStyleClickOrPressL", message: "Door style — click or press L to cycle" },
- /* i18n */ { id: "editor.toolHint.doorTypeClickOrPressO", message: "Door type — click or press O to cycle" },
- /* i18n */ { id: "editor.toolHint.dropDownspoutFromOutlet", message: "Drop downspout from outlet" },
- /* i18n */ { id: "editor.toolHint.ductDiameterDownUp", message: "Duct diameter down / up" },
- /* i18n */ { id: "editor.toolHint.endRunCancel", message: "End run / cancel" },
- /* i18n */ { id: "editor.toolHint.exit", message: "Exit" },
- /* i18n */ { id: "editor.toolHint.exitDrawing", message: "Exit drawing" },
- /* i18n */ { id: "editor.toolHint.finishAndContinue", message: "Finish and continue" },
- /* i18n */ { id: "editor.toolHint.finishCeiling", message: "Finish ceiling" },
- /* i18n */ { id: "editor.toolHint.finishGridAxis", message: "Finish grid axis" },
- /* i18n */ { id: "editor.toolHint.finishMeasurement", message: "Finish measurement" },
- /* i18n */ { id: "editor.toolHint.finishMultiPointWitnesses", message: "Finish multi-point witnesses" },
- /* i18n */ { id: "editor.toolHint.finishSlab", message: "Finish slab" },
- /* i18n */ { id: "editor.toolHint.flipSide", message: "Flip side" },
- /* i18n */ { id: "editor.toolHint.followTraceALineset", message: "Follow: trace a lineset" },
- /* i18n */ { id: "editor.toolHint.forcePlace", message: "Force place" },
- /* i18n */ { id: "editor.toolHint.freePlacement", message: "Free placement" },
- /* i18n */ { id: "editor.toolHint.goVerticalClickToPlace", message: "Go vertical ↕, click to place" },
- /* i18n */ { id: "editor.toolHint.highlightOutlet", message: "Highlight outlet" },
- /* i18n */ { id: "editor.toolHint.joinAsACornerWindow", message: "Join as a corner window" },
- /* i18n */ { id: "editor.toolHint.key.altDrag", message: "Alt + drag" },
- /* i18n */ { id: "editor.toolHint.key.backspace", message: "Backspace" },
- /* i18n */ { id: "editor.toolHint.key.click", message: "Click" },
- /* i18n */ { id: "editor.toolHint.key.clickAgain", message: "Click again" },
- /* i18n */ { id: "editor.toolHint.key.command", message: "Command" },
- /* i18n */ { id: "editor.toolHint.key.control", message: "Control" },
- /* i18n */ { id: "editor.toolHint.key.delete", message: "Delete" },
- /* i18n */ { id: "editor.toolHint.key.doubleClick", message: "Double click" },
- /* i18n */ { id: "editor.toolHint.key.drag", message: "Drag" },
- /* i18n */ { id: "editor.toolHint.key.enter", message: "Enter" },
- /* i18n */ { id: "editor.toolHint.key.hover", message: "Hover" },
- /* i18n */ { id: "editor.toolHint.key.hoverADuctEnd", message: "Hover a duct end" },
- /* i18n */ { id: "editor.toolHint.key.hoverAPipeEnd", message: "Hover a pipe end" },
- /* i18n */ { id: "editor.toolHint.key.hoverGutter", message: "Hover gutter" },
- /* i18n */ { id: "editor.toolHint.key.leftClick", message: "Left click" },
- /* i18n */ { id: "editor.toolHint.key.middleClick", message: "Middle click" },
- /* i18n */ { id: "editor.toolHint.key.rightClick", message: "Right click" },
- /* i18n */ { id: "editor.toolHint.key.rShiftR", message: "R / Shift+R" },
- /* i18n */ { id: "editor.toolHint.key.scroll", message: "Scroll" },
- /* i18n */ { id: "editor.toolHint.key.scrollWheel", message: "Scroll wheel" },
- /* i18n */ { id: "editor.toolHint.key.space", message: "Space" },
- /* i18n */ { id: "editor.toolHint.key.tab", message: "Tab" },
- /* i18n */ { id: "editor.toolHint.mountFloorCeilingWall", message: "Mount: floor / ceiling / wall" },
- /* i18n */ { id: "editor.toolHint.noRoomForTheMatchingWindow", message: "No room for the matching window on the other wall" },
- /* i18n */ { id: "editor.toolHint.noWallMeetsHere", message: "No wall meets here" },
- /* i18n */ { id: "editor.toolHint.numberOfCutsScrollOrClick", message: "Number of cuts — scroll or click to change" },
- /* i18n */ { id: "editor.toolHint.pickWitnessPoint", message: "Pick witness point" },
- /* i18n */ { id: "editor.toolHint.pipeSizeDownUp", message: "Pipe size down / up" },
- /* i18n */ { id: "editor.toolHint.placeAndContinue", message: "Place and continue" },
- /* i18n */ { id: "editor.toolHint.placeBlock", message: "Place block" },
- /* i18n */ { id: "editor.toolHint.placeBoxVentOnRoof", message: "Place box vent on roof" },
- /* i18n */ { id: "editor.toolHint.placeCabinet", message: "Place cabinet" },
- /* i18n */ { id: "editor.toolHint.placeCanopyOrSetTheNext", message: "Place canopy or set the next run point" },
- /* i18n */ { id: "editor.toolHint.placeChimneyOnRoof", message: "Place chimney on roof" },
- /* i18n */ { id: "editor.toolHint.placeColumn", message: "Place column" },
- /* i18n */ { id: "editor.toolHint.placeCupolaOnRoof", message: "Place cupola on roof" },
- /* i18n */ { id: "editor.toolHint.placeDimensionLineWhenNeeded", message: "Place dimension line when needed" },
- /* i18n */ { id: "editor.toolHint.placeDoorOnWall", message: "Place door on wall" },
- /* i18n */ { id: "editor.toolHint.placeDormerOnRoof", message: "Place dormer on roof" },
- /* i18n */ { id: "editor.toolHint.placeElevator", message: "Place elevator" },
- /* i18n */ { id: "editor.toolHint.placeEyebrowVentOnRoof", message: "Place eyebrow vent on roof" },
- /* i18n */ { id: "editor.toolHint.placeFitting", message: "Place fitting" },
- /* i18n */ { id: "editor.toolHint.placeGutterOnRoofEave", message: "Place gutter on roof eave" },
- /* i18n */ { id: "editor.toolHint.placeItem", message: "Place item" },
- /* i18n */ { id: "editor.toolHint.placeItLockedTo45", message: "Place it (locked to 45°)" },
- /* i18n */ { id: "editor.toolHint.placeMeasurementPoint", message: "Place measurement point" },
- /* i18n */ { id: "editor.toolHint.placement", message: "Placement" },
- /* i18n */ { id: "editor.toolHint.placementAuto", message: "Placement: Auto" },
- /* i18n */ { id: "editor.toolHint.placementGround", message: "Placement: Ground" },
- /* i18n */ { id: "editor.toolHint.placementRoof", message: "Placement: Roof" },
- /* i18n */ { id: "editor.toolHint.placementSurfaceClickOrPressP", message: "Placement surface - click or press P to cycle" },
- /* i18n */ { id: "editor.toolHint.placementType", message: "Placement type" },
- /* i18n */ { id: "editor.toolHint.placementTypeClickOrPressI", message: "Placement type — click or press I to toggle" },
- /* i18n */ { id: "editor.toolHint.placeOnAFence", message: "Place on a fence" },
- /* i18n */ { id: "editor.toolHint.placeRegister", message: "Place register" },
- /* i18n */ { id: "editor.toolHint.placeRidgeVentOnRoof", message: "Place ridge vent on roof" },
- /* i18n */ { id: "editor.toolHint.placeShelf", message: "Place shelf" },
- /* i18n */ { id: "editor.toolHint.placeSkylightOnRoof", message: "Place skylight on roof" },
- /* i18n */ { id: "editor.toolHint.placeSolarPanelArrayOnRoof", message: "Place solar panel array on roof" },
- /* i18n */ { id: "editor.toolHint.placeSpawnPoint", message: "Place spawn point" },
- /* i18n */ { id: "editor.toolHint.placeStairs", message: "Place stairs" },
- /* i18n */ { id: "editor.toolHint.placeTrap", message: "Place trap" },
- /* i18n */ { id: "editor.toolHint.placeTurbineVentOnRoof", message: "Place turbine vent on roof" },
- /* i18n */ { id: "editor.toolHint.placeUnit", message: "Place unit" },
- /* i18n */ { id: "editor.toolHint.placeWindowOnWall", message: "Place window on wall" },
- /* i18n */ { id: "editor.toolHint.placeWithoutTheCornerSnap", message: "Place without the corner snap" },
- /* i18n */ { id: "editor.toolHint.removeLastPoint", message: "Remove last point" },
- /* i18n */ { id: "editor.toolHint.removeLastWitness", message: "Remove last witness" },
- /* i18n */ { id: "editor.toolHint.rotate", message: "Rotate" },
- /* i18n */ { id: "editor.toolHint.rotate45", message: "Rotate ±45°" },
- /* i18n */ { id: "editor.toolHint.rotate45FloorCeiling", message: "Rotate ±45° (floor / ceiling)" },
- /* i18n */ { id: "editor.toolHint.rotateGhost15", message: "Rotate ghost ±15°" },
- /* i18n */ { id: "editor.toolHint.rotateOrFlipTheRunSide", message: "Rotate or flip the run side" },
- /* i18n */ { id: "editor.toolHint.rotateRoofDirection90", message: "Rotate roof direction 90°" },
- /* i18n */ { id: "editor.toolHint.rotateSpawnPoint", message: "Rotate spawn point" },
- /* i18n */ { id: "editor.toolHint.roundRectangularOval", message: "Round / rectangular / oval" },
- /* i18n */ { id: "editor.toolHint.setFenceStartEnd", message: "Set fence start / end" },
- /* i18n */ { id: "editor.toolHint.setOneCornerThenTheOpposite", message: "Set one corner, then the opposite" },
- /* i18n */ { id: "editor.toolHint.setRoofFootprint", message: "Set roof footprint" },
- /* i18n */ { id: "editor.toolHint.setWallStartEnd", message: "Set wall start / end" },
- /* i18n */ { id: "editor.toolHint.slopeLevel", message: "Slope / level" },
- /* i18n */ { id: "editor.toolHint.snapOntoTheRun", message: "Snap onto the run" },
- /* i18n */ { id: "editor.toolHint.splitAtTheMarks", message: "Split at the marks" },
- /* i18n */ { id: "editor.toolHint.startGridAxis", message: "Start grid axis" },
- /* i18n */ { id: "editor.toolHint.startLineset", message: "Start lineset" },
- /* i18n */ { id: "editor.toolHint.startLiquidLine", message: "Start liquid line" },
- /* i18n */ { id: "editor.toolHint.startRun", message: "Start run" },
- /* i18n */ { id: "editor.toolHint.startSegment", message: "Start segment" },
- /* i18n */ { id: "editor.toolHint.stepBackOrCancel", message: "Step back or cancel" },
- /* i18n */ { id: "editor.toolHint.style", message: "Style" },
- /* i18n */ { id: "editor.toolHint.styleBarn", message: "Style: Barn" },
- /* i18n */ { id: "editor.toolHint.styleCasement", message: "Style: Casement" },
- /* i18n */ { id: "editor.toolHint.styleCraftsman", message: "Style: Craftsman" },
- /* i18n */ { id: "editor.toolHint.styleDoubleHung", message: "Style: Double-hung" },
- /* i18n */ { id: "editor.toolHint.styleFrench", message: "Style: French" },
- /* i18n */ { id: "editor.toolHint.styleGlass", message: "Style: Glass" },
- /* i18n */ { id: "editor.toolHint.styleGrid", message: "Style: Grid" },
- /* i18n */ { id: "editor.toolHint.styleHalfLouvered", message: "Style: Half-louvered" },
- /* i18n */ { id: "editor.toolHint.styleHorizontalBands", message: "Style: Horizontal bands" },
- /* i18n */ { id: "editor.toolHint.styleModern", message: "Style: Modern" },
- /* i18n */ { id: "editor.toolHint.stylePanel", message: "Style: Panel" },
- /* i18n */ { id: "editor.toolHint.stylePaneledGlass", message: "Style: Paneled glass" },
- /* i18n */ { id: "editor.toolHint.styleShaker", message: "Style: Shaker" },
- /* i18n */ { id: "editor.toolHint.styleSingle", message: "Style: Single" },
- /* i18n */ { id: "editor.toolHint.styleSixPanel", message: "Style: Six-panel" },
- /* i18n */ { id: "editor.toolHint.styleSliding", message: "Style: Sliding" },
- /* i18n */ { id: "editor.toolHint.styleTallGrid", message: "Style: Tall grid" },
- /* i18n */ { id: "editor.toolHint.styleTransom", message: "Style: Transom" },
- /* i18n */ { id: "editor.toolHint.styleTripleHung", message: "Style: Triple-hung" },
- /* i18n */ { id: "editor.toolHint.styleWideGrid", message: "Style: Wide grid" },
- /* i18n */ { id: "editor.toolHint.switchRotationAxisYXZ", message: "Switch rotation axis (Y → X → Z)" },
- /* i18n */ { id: "editor.toolHint.theWallsMeetAtTooSharp", message: "The walls meet at too sharp or too flat an angle" },
- /* i18n */ { id: "editor.toolHint.theWindowWaitingThereIsTaller", message: "The window waiting there is taller than this wall" },
- /* i18n */ { id: "editor.toolHint.threeOrMoreWallsMeetHere", message: "Three or more walls meet here" },
- /* i18n */ { id: "editor.toolHint.traceCeilingOutline", message: "Trace ceiling outline" },
- /* i18n */ { id: "editor.toolHint.traceSlabOutline", message: "Trace slab outline" },
- /* i18n */ { id: "editor.toolHint.type", message: "Type" },
- /* i18n */ { id: "editor.toolHint.typeAwning", message: "Type: Awning" },
- /* i18n */ { id: "editor.toolHint.typeBarn", message: "Type: Barn" },
- /* i18n */ { id: "editor.toolHint.typeBay", message: "Type: Bay" },
- /* i18n */ { id: "editor.toolHint.typeBow", message: "Type: Bow" },
- /* i18n */ { id: "editor.toolHint.typeCabinet", message: "Type: Cabinet" },
- /* i18n */ { id: "editor.toolHint.typeCasement", message: "Type: Casement" },
- /* i18n */ { id: "editor.toolHint.typeDouble", message: "Type: Double" },
- /* i18n */ { id: "editor.toolHint.typeDoubleHung", message: "Type: Double Hung" },
- /* i18n */ { id: "editor.toolHint.typeFixed", message: "Type: Fixed" },
- /* i18n */ { id: "editor.toolHint.typeFolding", message: "Type: Folding" },
- /* i18n */ { id: "editor.toolHint.typeFrench", message: "Type: French" },
- /* i18n */ { id: "editor.toolHint.typeHinged", message: "Type: Hinged" },
- /* i18n */ { id: "editor.toolHint.typeIsland", message: "Type: Island" },
- /* i18n */ { id: "editor.toolHint.typeLouvered", message: "Type: Louvered" },
- /* i18n */ { id: "editor.toolHint.typePocket", message: "Type: Pocket" },
- /* i18n */ { id: "editor.toolHint.typeSingleHung", message: "Type: Single Hung" },
- /* i18n */ { id: "editor.toolHint.typeSliding", message: "Type: Sliding" },
- /* i18n */ { id: "editor.toolHint.verticalStackClickToPlace", message: "Vertical stack ↕, click to place" },
- /* i18n */ { id: "editor.toolHint.wasteVent", message: "Waste / vent" },
- /* i18n */ { id: "editor.toolHint.windowStyleClickOrPressL", message: "Window style — click or press L to cycle" },
- /* i18n */ { id: "editor.toolHint.windowTypeClickOrPressO", message: "Window type — click or press O to cycle" },
+ /* i18n */ { id: "editor.toolHint.aCurtainWallTakesNoCorner.1qxjv5i", message: "A curtain wall takes no corner window" },
+ /* i18n */ { id: "editor.toolHint.aCurvedWallTakesNoCorner.1vdnaw5", message: "A curved wall takes no corner window" },
+ /* i18n */ { id: "editor.toolHint.addACornerClickTheFirst.o4r67t", message: "Add a corner · click the first to close" },
+ /* i18n */ { id: "editor.toolHint.anotherOpeningIsInTheWay.11l9dd0", message: "Another opening is in the way at the corner" },
+ /* i18n */ { id: "editor.toolHint.autoHangers.10554ka", message: "Auto hangers" },
+ /* i18n */ { id: "editor.toolHint.autoHangersClickOrPressH.rwa3ka", message: "Auto hangers - click or press H to toggle" },
+ /* i18n */ { id: "editor.toolHint.autoHangersOff.7yx01x", message: "Auto hangers: Off" },
+ /* i18n */ { id: "editor.toolHint.autoHangersOn.10b1umh", message: "Auto hangers: On" },
+ /* i18n */ { id: "editor.toolHint.bypassSnapping.w5lmdv", message: "Bypass snapping" },
+ /* i18n */ { id: "editor.toolHint.cancel.ew9em3", message: "Cancel" },
+ /* i18n */ { id: "editor.toolHint.cancelMove.lvp31c", message: "Cancel move" },
+ /* i18n */ { id: "editor.toolHint.cancelRunExit.zqjf3h", message: "Cancel run / exit" },
+ /* i18n */ { id: "editor.toolHint.cancelStartPoint.1xbq2lh", message: "Cancel start point" },
+ /* i18n */ { id: "editor.toolHint.cornerWindow.1avkzpo", message: "Corner window" },
+ /* i18n */ { id: "editor.toolHint.cuts.1y0axps", message: "Cuts" },
+ /* i18n */ { id: "editor.toolHint.cutsValue.ouzhvb", message: "Cuts: {value}" },
+ /* i18n */ { id: "editor.toolHint.cutsValueEven.1ngsz3", message: "Cuts: {value}, even" },
+ /* i18n */ { id: "editor.toolHint.cycleMonoGableButterfly.1poga3m", message: "Cycle mono / gable / butterfly" },
+ /* i18n */ { id: "editor.toolHint.cycleSnappingMode.1ct0gn6", message: "Cycle snapping mode" },
+ /* i18n */ { id: "editor.toolHint.doorStyleClickOrPressL.33pe65", message: "Door style — click or press L to cycle" },
+ /* i18n */ { id: "editor.toolHint.doorTypeClickOrPressO.1hhh8gt", message: "Door type — click or press O to cycle" },
+ /* i18n */ { id: "editor.toolHint.dropDownspoutFromOutlet.1k4h1m4", message: "Drop downspout from outlet" },
+ /* i18n */ { id: "editor.toolHint.ductDiameterDownUp.1wdz5vq", message: "Duct diameter down / up" },
+ /* i18n */ { id: "editor.toolHint.endRunCancel.59dh2w", message: "End run / cancel" },
+ /* i18n */ { id: "editor.toolHint.exit.engmg5", message: "Exit" },
+ /* i18n */ { id: "editor.toolHint.exitDrawing.9noxyb", message: "Exit drawing" },
+ /* i18n */ { id: "editor.toolHint.finishAndContinue.1gpfsks", message: "Finish and continue" },
+ /* i18n */ { id: "editor.toolHint.finishCeiling.1c1lfel", message: "Finish ceiling" },
+ /* i18n */ { id: "editor.toolHint.finishGridAxis.1wvrfhr", message: "Finish grid axis" },
+ /* i18n */ { id: "editor.toolHint.finishMeasurement.1e4gv16", message: "Finish measurement" },
+ /* i18n */ { id: "editor.toolHint.finishMultiPointWitnesses.8wzskz", message: "Finish multi-point witnesses" },
+ /* i18n */ { id: "editor.toolHint.finishSlab.xmnm8e", message: "Finish slab" },
+ /* i18n */ { id: "editor.toolHint.flipSide.172xku9", message: "Flip side" },
+ /* i18n */ { id: "editor.toolHint.followTraceALineset.mgquwe", message: "Follow: trace a lineset" },
+ /* i18n */ { id: "editor.toolHint.forcePlace.1hq1nr", message: "Force place" },
+ /* i18n */ { id: "editor.toolHint.freePlacement.1nztdac", message: "Free placement" },
+ /* i18n */ { id: "editor.toolHint.goVerticalClickToPlace.dg8g6m", message: "Go vertical ↕, click to place" },
+ /* i18n */ { id: "editor.toolHint.highlightOutlet.65hoq8", message: "Highlight outlet" },
+ /* i18n */ { id: "editor.toolHint.joinAsACornerWindow.jvdp4j", message: "Join as a corner window" },
+ /* i18n */ { id: "editor.toolHint.key.altDrag.ai3wn9", message: "Alt + drag" },
+ /* i18n */ { id: "editor.toolHint.key.backspace.qy6qx8", message: "Backspace" },
+ /* i18n */ { id: "editor.toolHint.key.click.m8sun", message: "Click" },
+ /* i18n */ { id: "editor.toolHint.key.clickAgain.190ws9j", message: "Click again" },
+ /* i18n */ { id: "editor.toolHint.key.command.1j2mkia", message: "Command" },
+ /* i18n */ { id: "editor.toolHint.key.control.10fbl8e", message: "Control" },
+ /* i18n */ { id: "editor.toolHint.key.delete.oay2cq", message: "Delete" },
+ /* i18n */ { id: "editor.toolHint.key.doubleClick.vlma6o", message: "Double click" },
+ /* i18n */ { id: "editor.toolHint.key.drag.8pwtpf", message: "Drag" },
+ /* i18n */ { id: "editor.toolHint.key.enter.1ctpui5", message: "Enter" },
+ /* i18n */ { id: "editor.toolHint.key.hover.6xw79p", message: "Hover" },
+ /* i18n */ { id: "editor.toolHint.key.hoverADuctEnd.19axr3b", message: "Hover a duct end" },
+ /* i18n */ { id: "editor.toolHint.key.hoverAPipeEnd.1jbum5f", message: "Hover a pipe end" },
+ /* i18n */ { id: "editor.toolHint.key.hoverGutter.1dwcsno", message: "Hover gutter" },
+ /* i18n */ { id: "editor.toolHint.key.leftClick.s4gwfc", message: "Left click" },
+ /* i18n */ { id: "editor.toolHint.key.middleClick.1jbaan4", message: "Middle click" },
+ /* i18n */ { id: "editor.toolHint.key.rightClick.1ovld0h", message: "Right click" },
+ /* i18n */ { id: "editor.toolHint.key.rShiftR.13bnobh", message: "R / Shift+R" },
+ /* i18n */ { id: "editor.toolHint.key.scroll.ai6wr0", message: "Scroll" },
+ /* i18n */ { id: "editor.toolHint.key.scrollWheel.18j0ix7", message: "Scroll wheel" },
+ /* i18n */ { id: "editor.toolHint.key.space.1hrh82t", message: "Space" },
+ /* i18n */ { id: "editor.toolHint.key.tab.1xsal0s", message: "Tab" },
+ /* i18n */ { id: "editor.toolHint.mountFloorCeilingWall.32dxpv", message: "Mount: floor / ceiling / wall" },
+ /* i18n */ { id: "editor.toolHint.noRoomForTheMatchingWindow.1755948", message: "No room for the matching window on the other wall" },
+ /* i18n */ { id: "editor.toolHint.noWallMeetsHere.19n99yc", message: "No wall meets here" },
+ /* i18n */ { id: "editor.toolHint.numberOfCutsScrollOrClick.1kqe84b", message: "Number of cuts — scroll or click to change" },
+ /* i18n */ { id: "editor.toolHint.pickWitnessPoint.k3hgh1", message: "Pick witness point" },
+ /* i18n */ { id: "editor.toolHint.pipeSizeDownUp.wp04og", message: "Pipe size down / up" },
+ /* i18n */ { id: "editor.toolHint.placeAndContinue.qfwkrq", message: "Place and continue" },
+ /* i18n */ { id: "editor.toolHint.placeBlock.1aylwrx", message: "Place block" },
+ /* i18n */ { id: "editor.toolHint.placeBoxVentOnRoof.kf88e5", message: "Place box vent on roof" },
+ /* i18n */ { id: "editor.toolHint.placeCabinet.b0ouyk", message: "Place cabinet" },
+ /* i18n */ { id: "editor.toolHint.placeCanopyOrSetTheNext.12l7zf8", message: "Place canopy or set the next run point" },
+ /* i18n */ { id: "editor.toolHint.placeChimneyOnRoof.19dbqu", message: "Place chimney on roof" },
+ /* i18n */ { id: "editor.toolHint.placeColumn.1w2vq86", message: "Place column" },
+ /* i18n */ { id: "editor.toolHint.placeCupolaOnRoof.ofx3bn", message: "Place cupola on roof" },
+ /* i18n */ { id: "editor.toolHint.placeDimensionLineWhenNeeded.bjw2cj", message: "Place dimension line when needed" },
+ /* i18n */ { id: "editor.toolHint.placeDoorOnWall.1jwadf", message: "Place door on wall" },
+ /* i18n */ { id: "editor.toolHint.placeDormerOnRoof.1w518a6", message: "Place dormer on roof" },
+ /* i18n */ { id: "editor.toolHint.placeElevator.1f65zva", message: "Place elevator" },
+ /* i18n */ { id: "editor.toolHint.placeEyebrowVentOnRoof.1h1tqxn", message: "Place eyebrow vent on roof" },
+ /* i18n */ { id: "editor.toolHint.placeFitting.1pmx3vn", message: "Place fitting" },
+ /* i18n */ { id: "editor.toolHint.placeGutterOnRoofEave.llwzf9", message: "Place gutter on roof eave" },
+ /* i18n */ { id: "editor.toolHint.placeItem.teynf", message: "Place item" },
+ /* i18n */ { id: "editor.toolHint.placeItLockedTo45.16e4csk", message: "Place it (locked to 45°)" },
+ /* i18n */ { id: "editor.toolHint.placeMeasurementPoint.bsatli", message: "Place measurement point" },
+ /* i18n */ { id: "editor.toolHint.placement.13lcvts", message: "Placement" },
+ /* i18n */ { id: "editor.toolHint.placementAuto.1caa52d", message: "Placement: Auto" },
+ /* i18n */ { id: "editor.toolHint.placementGround.1ruz145", message: "Placement: Ground" },
+ /* i18n */ { id: "editor.toolHint.placementRoof.renkw8", message: "Placement: Roof" },
+ /* i18n */ { id: "editor.toolHint.placementSurfaceClickOrPressP.w56h19", message: "Placement surface - click or press P to cycle" },
+ /* i18n */ { id: "editor.toolHint.placementType.1mdpl60", message: "Placement type" },
+ /* i18n */ { id: "editor.toolHint.placementTypeClickOrPressI.10cgxh2", message: "Placement type — click or press I to toggle" },
+ /* i18n */ { id: "editor.toolHint.placeOnAFence.1dptstr", message: "Place on a fence" },
+ /* i18n */ { id: "editor.toolHint.placeRegister.1uebycd", message: "Place register" },
+ /* i18n */ { id: "editor.toolHint.placeRidgeVentOnRoof.2tpd8r", message: "Place ridge vent on roof" },
+ /* i18n */ { id: "editor.toolHint.placeShelf.y4l3iw", message: "Place shelf" },
+ /* i18n */ { id: "editor.toolHint.placeSkylightOnRoof.e215pe", message: "Place skylight on roof" },
+ /* i18n */ { id: "editor.toolHint.placeSolarPanelArrayOnRoof.kk11fn", message: "Place solar panel array on roof" },
+ /* i18n */ { id: "editor.toolHint.placeSpawnPoint.205o25", message: "Place spawn point" },
+ /* i18n */ { id: "editor.toolHint.placeStairs.zwxxu2", message: "Place stairs" },
+ /* i18n */ { id: "editor.toolHint.placeTrap.1gxemn3", message: "Place trap" },
+ /* i18n */ { id: "editor.toolHint.placeTurbineVentOnRoof.1iqeluf", message: "Place turbine vent on roof" },
+ /* i18n */ { id: "editor.toolHint.placeUnit.8zkx4q", message: "Place unit" },
+ /* i18n */ { id: "editor.toolHint.placeWindowOnWall.1k3qnfb", message: "Place window on wall" },
+ /* i18n */ { id: "editor.toolHint.placeWithoutTheCornerSnap.1nifqew", message: "Place without the corner snap" },
+ /* i18n */ { id: "editor.toolHint.removeLastPoint.2dmdcx", message: "Remove last point" },
+ /* i18n */ { id: "editor.toolHint.removeLastWitness.1b6vvzw", message: "Remove last witness" },
+ /* i18n */ { id: "editor.toolHint.rotate.1thqa0a", message: "Rotate" },
+ /* i18n */ { id: "editor.toolHint.rotate45.9zq68u", message: "Rotate ±45°" },
+ /* i18n */ { id: "editor.toolHint.rotate45FloorCeiling.m9t57d", message: "Rotate ±45° (floor / ceiling)" },
+ /* i18n */ { id: "editor.toolHint.rotateGhost15.rsa52c", message: "Rotate ghost ±15°" },
+ /* i18n */ { id: "editor.toolHint.rotateOrFlipTheRunSide.t5ior7", message: "Rotate or flip the run side" },
+ /* i18n */ { id: "editor.toolHint.rotateRoofDirection90.tvbji2", message: "Rotate roof direction 90°" },
+ /* i18n */ { id: "editor.toolHint.rotateSpawnPoint.1opcuu7", message: "Rotate spawn point" },
+ /* i18n */ { id: "editor.toolHint.roundRectangularOval.e4nh6x", message: "Round / rectangular / oval" },
+ /* i18n */ { id: "editor.toolHint.setFenceStartEnd.1phbwsq", message: "Set fence start / end" },
+ /* i18n */ { id: "editor.toolHint.setOneCornerThenTheOpposite.8tsl49", message: "Set one corner, then the opposite" },
+ /* i18n */ { id: "editor.toolHint.setRoofFootprint.p50n0o", message: "Set roof footprint" },
+ /* i18n */ { id: "editor.toolHint.setWallStartEnd.1r8ubcx", message: "Set wall start / end" },
+ /* i18n */ { id: "editor.toolHint.slopeLevel.ftqp67", message: "Slope / level" },
+ /* i18n */ { id: "editor.toolHint.snapOntoTheRun.86yhmp", message: "Snap onto the run" },
+ /* i18n */ { id: "editor.toolHint.splitAtTheMarks.x5tpdd", message: "Split at the marks" },
+ /* i18n */ { id: "editor.toolHint.startGridAxis.k92yza", message: "Start grid axis" },
+ /* i18n */ { id: "editor.toolHint.startLineset.23q8dh", message: "Start lineset" },
+ /* i18n */ { id: "editor.toolHint.startLiquidLine.1rlxsgd", message: "Start liquid line" },
+ /* i18n */ { id: "editor.toolHint.startRun.r6fc5u", message: "Start run" },
+ /* i18n */ { id: "editor.toolHint.startSegment.rolym6", message: "Start segment" },
+ /* i18n */ { id: "editor.toolHint.stepBackOrCancel.zbfdkn", message: "Step back or cancel" },
+ /* i18n */ { id: "editor.toolHint.style.nf3vcm", message: "Style" },
+ /* i18n */ { id: "editor.toolHint.styleBarn.k9n1x", message: "Style: Barn" },
+ /* i18n */ { id: "editor.toolHint.styleCasement.ziklec", message: "Style: Casement" },
+ /* i18n */ { id: "editor.toolHint.styleCraftsman.52e6a9", message: "Style: Craftsman" },
+ /* i18n */ { id: "editor.toolHint.styleDoubleHung.1lg8pkg", message: "Style: Double-hung" },
+ /* i18n */ { id: "editor.toolHint.styleFrench.1ue3j64", message: "Style: French" },
+ /* i18n */ { id: "editor.toolHint.styleGlass.qudnb4", message: "Style: Glass" },
+ /* i18n */ { id: "editor.toolHint.styleGrid.1vuq4po", message: "Style: Grid" },
+ /* i18n */ { id: "editor.toolHint.styleHalfLouvered.13b1few", message: "Style: Half-louvered" },
+ /* i18n */ { id: "editor.toolHint.styleHorizontalBands.12ethxk", message: "Style: Horizontal bands" },
+ /* i18n */ { id: "editor.toolHint.styleModern.1fh8hhn", message: "Style: Modern" },
+ /* i18n */ { id: "editor.toolHint.stylePanel.922jze", message: "Style: Panel" },
+ /* i18n */ { id: "editor.toolHint.stylePaneledGlass.17a17en", message: "Style: Paneled glass" },
+ /* i18n */ { id: "editor.toolHint.styleShaker.49z17k", message: "Style: Shaker" },
+ /* i18n */ { id: "editor.toolHint.styleSingle.6f3cm0", message: "Style: Single" },
+ /* i18n */ { id: "editor.toolHint.styleSixPanel.u49laj", message: "Style: Six-panel" },
+ /* i18n */ { id: "editor.toolHint.styleSliding.q81s0i", message: "Style: Sliding" },
+ /* i18n */ { id: "editor.toolHint.styleTallGrid.1eotg3x", message: "Style: Tall grid" },
+ /* i18n */ { id: "editor.toolHint.styleTransom.kb9bh6", message: "Style: Transom" },
+ /* i18n */ { id: "editor.toolHint.styleTripleHung.pxnqi3", message: "Style: Triple-hung" },
+ /* i18n */ { id: "editor.toolHint.styleWideGrid.12n27et", message: "Style: Wide grid" },
+ /* i18n */ { id: "editor.toolHint.switchRotationAxisYXZ.15lohm6", message: "Switch rotation axis (Y → X → Z)" },
+ /* i18n */ { id: "editor.toolHint.theWallsMeetAtTooSharp.kh3wi3", message: "The walls meet at too sharp or too flat an angle" },
+ /* i18n */ { id: "editor.toolHint.theWindowWaitingThereIsTaller.1tqwez4", message: "The window waiting there is taller than this wall" },
+ /* i18n */ { id: "editor.toolHint.threeOrMoreWallsMeetHere.rgifif", message: "Three or more walls meet here" },
+ /* i18n */ { id: "editor.toolHint.traceCeilingOutline.1b639wv", message: "Trace ceiling outline" },
+ /* i18n */ { id: "editor.toolHint.traceSlabOutline.z0j2lc", message: "Trace slab outline" },
+ /* i18n */ { id: "editor.toolHint.type.1m2zofh", message: "Type" },
+ /* i18n */ { id: "editor.toolHint.typeAwning.1cj59al", message: "Type: Awning" },
+ /* i18n */ { id: "editor.toolHint.typeBarn.sbnygq", message: "Type: Barn" },
+ /* i18n */ { id: "editor.toolHint.typeBay.1200hc1", message: "Type: Bay" },
+ /* i18n */ { id: "editor.toolHint.typeBow.14s2t9p", message: "Type: Bow" },
+ /* i18n */ { id: "editor.toolHint.typeCabinet.1r68je5", message: "Type: Cabinet" },
+ /* i18n */ { id: "editor.toolHint.typeCasement.176uo9j", message: "Type: Casement" },
+ /* i18n */ { id: "editor.toolHint.typeDouble.af7w4i", message: "Type: Double" },
+ /* i18n */ { id: "editor.toolHint.typeDoubleHung.t482fu", message: "Type: Double Hung" },
+ /* i18n */ { id: "editor.toolHint.typeFixed.v1cjez", message: "Type: Fixed" },
+ /* i18n */ { id: "editor.toolHint.typeFolding.sxxyng", message: "Type: Folding" },
+ /* i18n */ { id: "editor.toolHint.typeFrench.1y57z1b", message: "Type: French" },
+ /* i18n */ { id: "editor.toolHint.typeHinged.1xrcfju", message: "Type: Hinged" },
+ /* i18n */ { id: "editor.toolHint.typeIsland.ufr3ce", message: "Type: Island" },
+ /* i18n */ { id: "editor.toolHint.typeLouvered.oxl1cz", message: "Type: Louvered" },
+ /* i18n */ { id: "editor.toolHint.typePocket.hc65x9", message: "Type: Pocket" },
+ /* i18n */ { id: "editor.toolHint.typeSingleHung.p53pyl", message: "Type: Single Hung" },
+ /* i18n */ { id: "editor.toolHint.typeSliding.nwmr3f", message: "Type: Sliding" },
+ /* i18n */ { id: "editor.toolHint.verticalStackClickToPlace.ijcn4q", message: "Vertical stack ↕, click to place" },
+ /* i18n */ { id: "editor.toolHint.wasteVent.1hvi3vj", message: "Waste / vent" },
+ /* i18n */ { id: "editor.toolHint.windowStyleClickOrPressL.ah7qm9", message: "Window style — click or press L to cycle" },
+ /* i18n */ { id: "editor.toolHint.windowTypeClickOrPressO.wv4x35", message: "Window type — click or press O to cycle" },
/* i18n */ { id: "node.block.description", message: "A topology-backed solid edited directly in the canvas." },
/* i18n */ { id: "node.block.label", message: "Block" },
/* i18n */ { id: "node.boxVent.description", message: "Small louvered exhaust vent that sits on a roof slope." },
diff --git a/scripts/i18n-literals.test.ts b/scripts/i18n-literals.test.ts
index 7627482d28..3a046c7246 100644
--- a/scripts/i18n-literals.test.ts
+++ b/scripts/i18n-literals.test.ts
@@ -198,6 +198,25 @@ export function List({ items }: { items: string[] }) {
expect(planned[0]?.manual).toContain('inside a callback function')
})
+test('stylesheets and scripts rendered in JSX are not copy', () => {
+ const source = `const CALM_CSS = \`.pa-layer[data-calm] .pa-hlabel{transform:none}\`
+export function Layer() {
+ return (
+
+
+
+
Point at something
+
+ )
+}
+`
+ expect(
+ scanSource('packages/editor/src/components/layer.tsx', source, allowlist).map(
+ (found) => found.text,
+ ),
+ ).toEqual(['Point at something'])
+})
+
test('a constant concatenated with a value is concatenated copy', () => {
const source = `const LABEL = 'Save'
export function Row({ name }: { name: string }) {
diff --git a/scripts/i18n-literals.ts b/scripts/i18n-literals.ts
index 96531c5c8a..bd8b0dc1cc 100644
--- a/scripts/i18n-literals.ts
+++ b/scripts/i18n-literals.ts
@@ -72,6 +72,8 @@ const UI_PROPERTIES = new Set([
'tooltip',
])
+const NON_COPY_ELEMENTS = new Set(['script', 'style'])
+
const NOTIFY_CALLEES = new Set([
'alert',
'confirm',
@@ -579,6 +581,16 @@ export function visitUiLiterals(
const visit = (node: ts.Node): void => {
if (isTranslationCall(node)) return
+ // Stylesheets and scripts are code, not copy.
+ if (
+ ts.isJsxElement(node) &&
+ ts.isIdentifier(node.openingElement.tagName) &&
+ NON_COPY_ELEMENTS.has(node.openingElement.tagName.text)
+ ) {
+ ts.forEachChild(node.openingElement, visit)
+ return
+ }
+
if (ts.isJsxElement(node)) {
const sentence = sentenceChildren(node)
if (sentence) {
diff --git a/scripts/i18n-node-messages.ts b/scripts/i18n-node-messages.ts
index 24f6fe64eb..df728afb53 100644
--- a/scripts/i18n-node-messages.ts
+++ b/scripts/i18n-node-messages.ts
@@ -28,7 +28,10 @@ import {
* exists for extraction.
*/
-const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..')
+const ROOT = process.env.I18N_ROOT
+ ? resolve(process.env.I18N_ROOT)
+ : resolve(dirname(fileURLToPath(import.meta.url)), '..')
+const NODES_ENTRY = join(ROOT, 'packages/nodes/src/index.ts')
export const DEFINITION_MESSAGES_PATH = join(ROOT, 'packages/nodes/src/i18n/definition-messages.ts')
type Hint = {
@@ -148,11 +151,14 @@ export function renderDefinitionMessages(descriptors: MessageDescriptor[]): stri
}
export async function writeDefinitionMessages(): Promise {
+ // A checkout without the built-in nodes has no definition copy.
+ if (!existsSync(NODES_ENTRY)) return
mkdirSync(dirname(DEFINITION_MESSAGES_PATH), { recursive: true })
writeFileSync(DEFINITION_MESSAGES_PATH, renderDefinitionMessages(await definitionDescriptors()))
}
export async function checkDefinitionMessages(): Promise {
+ if (!existsSync(NODES_ENTRY)) return []
const expected = renderDefinitionMessages(await definitionDescriptors())
const current = existsSync(DEFINITION_MESSAGES_PATH)
? readFileSync(DEFINITION_MESSAGES_PATH, 'utf8')
diff --git a/scripts/i18n.test.ts b/scripts/i18n.test.ts
index 5072e47db3..5e352277ab 100644
--- a/scripts/i18n.test.ts
+++ b/scripts/i18n.test.ts
@@ -1,12 +1,12 @@
import { expect, test } from 'bun:test'
-import { readFileSync, writeFileSync } from 'node:fs'
+import { cpSync, mkdirSync, mkdtempSync, readFileSync, symlinkSync, writeFileSync } from 'node:fs'
+import { tmpdir } from 'node:os'
+import { join } from 'node:path'
import type { CatalogType } from '@lingui/conf'
-import { parsePo } from 'pofile-ts'
+import { parsePo, stringifyPo } from 'pofile-ts'
import linguiConfig from '../lingui.config'
import {
- checkCatalogs,
escapePoCommentValue,
- extractCatalogs,
hashSource,
refreshTranslations,
type SourceMessage,
@@ -46,17 +46,91 @@ test('PO output is stable when an unrelated source line is added', async () => {
expect(await serialize(10)).toBe(await serialize(11))
})
-test('catalog checking does not rewrite PO or compiled catalogs', async () => {
- const paths = [
- ...new Bun.Glob('packages/editor/src/i18n/locales/*/messages.po').scanSync(),
- ...new Bun.Glob('packages/editor/src/i18n/locales/*/messages.ts').scanSync(),
- ]
- const before = new Map(paths.map((path) => [path, readFileSync(path, 'utf8')]))
+const TARGETS = ['zh-CN', 'fr', 'es', 'ja'] as const
+const SAMPLE = `export const messages = [
+ /* i18n */ { id: 'viewer.camera.topView', message: 'Top view' },
+ /* i18n */ { id: 'editor.buildPanel.advanced', message: 'Advanced' },
+]
+`
- expect(await checkCatalogs()).toEqual([])
- expect(paths.map((path) => readFileSync(path, 'utf8'))).toEqual(
- paths.map((path) => before.get(path)),
+/**
+ * A two-message project with the repository's Lingui config and glossary and
+ * fully reviewed catalogs, so the real commands run in seconds.
+ */
+function catalogProject(): string {
+ const root = mkdtempSync(join(tmpdir(), 'pascal-catalogs-'))
+ symlinkSync(join(process.cwd(), 'node_modules'), join(root, 'node_modules'))
+ writeFileSync(
+ join(root, 'lingui.config.ts'),
+ readFileSync('lingui.config.ts', 'utf8').replace(
+ /include: \[[^\]]*\]/,
+ "include: ['packages/editor/src']",
+ ),
)
+ mkdirSync(join(root, 'i18n'))
+ cpSync('i18n/glossary.json', join(root, 'i18n/glossary.json'))
+ mkdirSync(join(root, 'packages/editor/src'), { recursive: true })
+ writeFileSync(join(root, 'packages/editor/src/sample.tsx'), SAMPLE)
+ for (const locale of ['en', ...TARGETS]) {
+ mkdirSync(join(root, `packages/editor/src/i18n/locales/${locale}`), { recursive: true })
+ writeFileSync(
+ join(root, `packages/editor/src/i18n/locales/${locale}/messages.po`),
+ 'msgid ""\nmsgstr ""\n',
+ )
+ }
+ run(root, 'extract')
+ const reviewed: Record = {
+ 'viewer.camera.topView': 'Vue de dessus',
+ 'editor.buildPanel.advanced': 'Avancé',
+ }
+ for (const locale of TARGETS) {
+ const path = join(root, `packages/editor/src/i18n/locales/${locale}/messages.po`)
+ const po = parsePo(readFileSync(path, 'utf8'))
+ for (const item of po.items) {
+ const english = item.msgid === 'viewer.camera.topView' ? 'Top view' : 'Advanced'
+ item.msgstr = [reviewed[item.msgid]!]
+ item.comments = [
+ `Source-Hash: ${hashSource(english)}`,
+ 'Review: human',
+ `English: ${JSON.stringify(english)}`,
+ ]
+ delete item.flags.fuzzy
+ }
+ writeFileSync(path, stringifyPo(po, { foldLength: 0 }))
+ }
+ run(root, 'compile')
+ return root
+}
+
+function run(root: string, command: 'check' | 'compile' | 'extract') {
+ const result = Bun.spawnSync(['bun', join(process.cwd(), 'scripts/i18n.ts'), command], {
+ // Lingui resolves the config's paths against the working directory.
+ cwd: root,
+ env: {
+ ...process.env,
+ I18N_ROOT: root,
+ I18N_BASE_REF: '',
+ GITHUB_EVENT_NAME: '',
+ GITHUB_STEP_SUMMARY: '',
+ },
+ stdout: 'pipe',
+ stderr: 'pipe',
+ })
+ return { exitCode: result.exitCode, output: `${result.stdout}${result.stderr}` }
+}
+
+const catalogFiles = (root: string) =>
+ [...new Bun.Glob('packages/editor/src/i18n/locales/*/messages.{po,ts}').scanSync({ cwd: root })]
+ .sort()
+ .map((path) => [path, readFileSync(join(root, path), 'utf8')])
+
+test('catalog checking does not rewrite PO or compiled catalogs', () => {
+ const root = catalogProject()
+ const before = catalogFiles(root)
+ const { exitCode, output } = run(root, 'check')
+ expect(output).not.toContain('[i18n] ')
+ expect(exitCode).toBe(0)
+ expect(catalogFiles(root)).toEqual(before)
}, 60_000)
test('ICU plural validation follows the target locale categories', () => {
@@ -86,51 +160,33 @@ test('rich-text validation preserves attributed and self-closing tags', () => {
)
})
-test('source drift fails checking, then extraction updates English and flags translations', async () => {
- const sourcePath = 'packages/editor/src/components/viewer/viewer-controls-bar.tsx'
- const catalogPaths = [
- ...new Bun.Glob('packages/editor/src/i18n/locales/*/messages.po').scanSync(),
- ...new Bun.Glob('packages/editor/src/i18n/locales/*/messages.ts').scanSync(),
- ]
- const paths = [sourcePath, ...catalogPaths]
- const before = new Map(paths.map((path) => [path, readFileSync(path, 'utf8')]))
- const originalSource = before.get(sourcePath)
- if (!originalSource) throw new Error(`Missing ${sourcePath}`)
+test('source drift fails checking, then extraction updates English and flags translations', () => {
+ const root = catalogProject()
+ const sample = join(root, 'packages/editor/src/sample.tsx')
+ writeFileSync(sample, SAMPLE.replace("message: 'Top view'", "message: 'Top view X'"))
- try {
- writeFileSync(
- sourcePath,
- originalSource.replaceAll("message: 'Top view'", "message: 'Top view X'"),
- )
+ const check = run(root, 'check')
+ expect(check.exitCode).toBe(1)
+ expect(check.output).toContain('source drift "viewer.camera.topView"')
- const errors = await checkCatalogs()
- expect(errors.some((error) => error.includes('source drift "viewer.camera.topView"'))).toBe(
- true,
+ expect(run(root, 'extract').exitCode).toBe(0)
+ const catalog = (locale: string) =>
+ parsePo(
+ readFileSync(join(root, `packages/editor/src/i18n/locales/${locale}/messages.po`), 'utf8'),
)
-
- extractCatalogs()
-
- const english = parsePo(readFileSync('packages/editor/src/i18n/locales/en/messages.po', 'utf8'))
- expect(english.items.find((item) => item.msgid === 'viewer.camera.topView')?.msgstr[0]).toBe(
- 'Top view X',
- )
-
- for (const locale of ['zh-CN', 'fr', 'es', 'ja']) {
- const target = parsePo(
- readFileSync(`packages/editor/src/i18n/locales/${locale}/messages.po`, 'utf8'),
- )
- const item = target.items.find((entry) => entry.msgid === 'viewer.camera.topView')
- expect(item?.msgstr[0]).not.toBe('')
- expect(item?.flags.fuzzy).toBe(true)
- expect(item?.comments).toContain('Review: required')
- expect(
- readFileSync(`packages/editor/src/i18n/locales/${locale}/messages.ts`, 'utf8'),
- ).not.toContain('\\"viewer.camera.topView\\"')
- }
- } finally {
- for (const [path, contents] of before) writeFileSync(path, contents)
+ expect(
+ catalog('en').items.find((item) => item.msgid === 'viewer.camera.topView')?.msgstr[0],
+ ).toBe('Top view X')
+ for (const locale of TARGETS) {
+ const item = catalog(locale).items.find((entry) => entry.msgid === 'viewer.camera.topView')
+ expect(item?.msgstr[0]).toBe('Vue de dessus')
+ expect(item?.flags.fuzzy).toBe(true)
+ expect(item?.comments).toContain('Review: required')
+ expect(
+ readFileSync(join(root, `packages/editor/src/i18n/locales/${locale}/messages.ts`), 'utf8'),
+ ).not.toContain('\\"viewer.camera.topView\\"')
}
-}, 120_000)
+}, 60_000)
test('AI translation refreshes only missing and stale entries through a mocked provider', async () => {
const sources: SourceMessage[] = [