Files
house-plan-maker/apps/client/public/locales/en/translation.json
T
alexei.dolgolyov af8b9fe00f feat: complete house plan maker application
Full-featured house/apartment floor plan editor with:

- Turborepo monorepo (React/Vite client, Fastify/Prisma server, shared Zod schemas)
- 2D room editor with walls, doors, windows, furniture, electrical elements
- 3D room preview with Three.js (auto-hide nearest walls, bird's eye default)
- Wall projection views with interactive drag (elevation, position)
- Apartment floor plan view with room positioning
- Copy/paste, alignment tools, measurement tool, annotations
- Item-attached annotations with leader lines (visible on projections)
- Door open direction (LEFT/RIGHT/INWARD/OUTWARD) with swing arc
- Floor type textures (wood, tile, concrete, laminate, herringbone)
- Wall color picker for 3D view
- Furniture: bed, desk, wardrobe, sofa, table, chair, shelf, nightstand, dresser, bookcase, TV (with stand toggle), AC unit
- Furniture elevation support (wall-mounted items)
- Auto-save with dirty state tracking, batch save API
- Rotation-aware collision detection (SAT/OBB) with 3D elevation check
- Rotation-aware hit testing
- i18n (English/Russian) with locale-aware number formatting
- Dark mode with system preference detection
- Undo/redo, keyboard shortcuts, scale bar
- PDF/PNG/JSON export and JSON import
- Focus trap modal, toast notifications, tooltips
- Responsive layout with overlay palettes
2026-04-05 22:34:03 +03:00

293 lines
11 KiB
JSON

{
"app.title": "House Plan Maker",
"wall.north": "North Wall",
"wall.south": "South Wall",
"wall.east": "East Wall",
"wall.west": "West Wall",
"wall.other": "Wall",
"furniture.bed": "Bed",
"furniture.desk": "Desk",
"furniture.wardrobe": "Wardrobe",
"furniture.sofa": "Sofa",
"furniture.table": "Table",
"furniture.chair": "Chair",
"furniture.shelf": "Shelf",
"furniture.nightstand": "Nightstand",
"furniture.dresser": "Dresser",
"furniture.bookcase": "Bookcase",
"furniture.tv": "TV",
"furniture.ac_unit": "AC Unit",
"furniture.other": "Other",
"nav.apartments": "Apartments",
"breadcrumb.apartments": "Apartments",
"breadcrumb.apartmentDetails": "Apartment Details",
"breadcrumb.roomEditor": "Room Editor",
"breadcrumb.floorPlan": "Floor Plan",
"apartments.title": "Apartments",
"apartments.new": "New Apartment",
"apartments.create": "Create Apartment",
"apartments.empty.title": "No apartments yet",
"apartments.empty.description": "Create your first apartment to start planning rooms and layouts.",
"apartments.delete.title": "Delete Apartment",
"apartments.delete.message": "Are you sure you want to delete \"{{name}}\"? This will also delete all rooms and their contents. This action cannot be undone.",
"apartments.error.load": "Failed to load apartments",
"apartments.error.operation": "Operation failed",
"apartments.error.delete": "Failed to delete apartment",
"apartment.notFound": "Apartment not found",
"apartmentForm.titleNew": "New Apartment",
"apartmentForm.titleEdit": "Edit Apartment",
"apartmentForm.name": "Name",
"apartmentForm.namePlaceholder": "e.g., Main Apartment",
"apartmentForm.address": "Address",
"apartmentForm.addressPlaceholder": "e.g., 123 Main St",
"apartmentForm.totalArea": "Total Area (m\u00b2)",
"apartmentForm.totalAreaPlaceholder": "e.g., 75",
"apartmentForm.saving": "Saving...",
"apartmentForm.creating": "Creating...",
"apartmentForm.saveChanges": "Save Changes",
"apartmentForm.createApartment": "Create Apartment",
"apartmentCard.area": "Area:",
"apartmentCard.rooms": "Rooms:",
"apartmentCard.edit": "Edit",
"apartmentCard.delete": "Delete",
"rooms.title": "Rooms",
"rooms.add": "Add Room",
"rooms.addFirst": "Add First Room",
"rooms.fromTemplate": "From Template",
"rooms.empty.title": "No rooms yet",
"rooms.empty.description": "Add rooms to this apartment to start designing floor plans.",
"rooms.delete.title": "Delete Room",
"rooms.delete.message": "Are you sure you want to delete \"{{name}}\"? All walls, openings, electrical items, and furniture in this room will be deleted. This action cannot be undone.",
"rooms.error.load": "Failed to load apartment",
"rooms.error.operation": "Operation failed",
"rooms.error.create": "Failed to create room",
"rooms.error.delete": "Failed to delete room",
"rooms.count": "{{count}} room",
"rooms.count_other": "{{count}} rooms",
"rooms.dimensions": "{{width}} x {{height}} m",
"rooms.vertices": "{{count}} vertices",
"rooms.wallHeight": "Wall height: {{value}} m",
"rooms.plinth": "Plinth: {{value}} m",
"roomForm.titleNew": "New Room",
"roomForm.titleEdit": "Edit Room",
"roomForm.name": "Room Name",
"roomForm.namePlaceholder": "e.g., Living Room",
"roomForm.shape": "Shape",
"roomForm.rectangular": "Rectangular",
"roomForm.customPolygon": "Custom Polygon",
"roomForm.width": "Width (m)",
"roomForm.widthPlaceholder": "e.g., 4.5",
"roomForm.height": "Height (m)",
"roomForm.heightPlaceholder": "e.g., 3.2",
"roomForm.customNote": "Custom polygon shapes can be drawn in the room editor.",
"roomForm.currentVertices": " Current shape has {{count}} vertices.",
"roomForm.defaultShape": " A default rectangular shape will be created.",
"roomForm.wallProperties": "Wall Properties",
"roomForm.wallHeight": "Wall Height (m)",
"roomForm.plinthProperties": "Plinth Properties",
"roomForm.plinthHeight": "Height (m)",
"roomForm.plinthThickness": "Thickness (m)",
"roomForm.plinthHeightHint": "Default: 0.06 m",
"roomForm.plinthThicknessHint": "Default: 0.01 m",
"roomForm.saving": "Saving...",
"roomForm.creating": "Creating...",
"roomForm.saveChanges": "Save Changes",
"roomForm.createRoom": "Create Room",
"roomForm.widthError": "Width must be positive",
"roomForm.heightError": "Height must be positive",
"roomCard.edit": "Edit",
"roomCard.delete": "Delete",
"common.cancel": "Cancel",
"common.delete": "Delete",
"common.deleting": "Deleting...",
"common.loading": "Loading...",
"common.dismissError": "Dismiss error",
"editor.save": "Save",
"editor.saving": "Saving...",
"editor.saveFailed": "Save failed: {{error}}",
"editor.error.load": "Failed to load room",
"editor.roomNotFound": "Room not found",
"editor.loading3D": "Loading 3D view...",
"editor.unsavedChanges": "You have unsaved changes. Are you sure you want to leave?",
"toolbar.select": "Select",
"toolbar.door": "Door",
"toolbar.window": "Window",
"toolbar.electrical": "Electrical",
"toolbar.furniture": "Furniture",
"toolbar.measure": "Measure",
"toolbar.annotate": "Annotate",
"toolbar.undo": "Undo (Ctrl+Z)",
"toolbar.redo": "Redo (Ctrl+Shift+Z)",
"toolbar.zoomIn": "Zoom in",
"toolbar.zoomOut": "Zoom out",
"toolbar.grid": "Grid",
"toolbar.snap": "Snap",
"toolbar.walls": "Walls",
"toolbar.elec": "Elec",
"toolbar.furn": "Furn",
"toolbar.meas": "Meas",
"toolbar.toggleGrid": "Toggle grid",
"toolbar.toggleSnap": "Toggle snap",
"toolbar.toggleWalls": "Toggle walls layer",
"toolbar.toggleElectrical": "Toggle electrical layer",
"toolbar.toggleFurniture": "Toggle furniture layer",
"toolbar.toggleMeasurements": "Toggle measurements layer",
"toolbar.import": "Import JSON",
"toolbar.export": "Export (PNG/PDF/JSON)",
"toolbar.saveShortcut": "Save (Ctrl+S)",
"toolbar.view2D": "2D",
"toolbar.view3D": "3D Preview",
"toolbar.viewProjections": "Projections",
"toolbar.alignLeft": "Align left",
"toolbar.alignCenterH": "Center horizontal",
"toolbar.alignRight": "Align right",
"toolbar.alignTop": "Align top",
"toolbar.alignCenterV": "Center vertical",
"toolbar.alignBottom": "Align bottom",
"toolbar.distributeH": "Distribute horizontal",
"toolbar.distributeV": "Distribute vertical",
"properties.title": "Properties",
"properties.area": "Area",
"properties.perimeter": "Perimeter",
"properties.noSelection": "No element selected",
"properties.selectHint": "Click an element to see its properties",
"properties.multipleSelected": "{{count}} elements selected",
"properties.roomInfo": "Room Info",
"properties.name": "Name",
"properties.wallHeight": "Wall height",
"properties.plinthHeight": "Plinth height",
"properties.walls": "Walls",
"properties.openings": "Openings",
"properties.wall": "Wall",
"properties.length": "Length",
"properties.thickness": "Thickness",
"properties.startX": "Start X",
"properties.startY": "Start Y",
"properties.endX": "End X",
"properties.endY": "End Y",
"properties.direction": "Direction",
"properties.door": "Door",
"properties.window": "Window",
"properties.width": "Width",
"properties.height": "Height",
"properties.position": "Position",
"properties.elevation": "Elevation",
"properties.wallLength": "Wall length",
"properties.type": "Type",
"properties.variant": "Variant",
"properties.x": "X",
"properties.y": "Y",
"properties.rotation": "Rotation",
"properties.wallMounted": "Wall-mounted",
"properties.yes": "Yes",
"properties.depth": "Depth",
"properties.wallColor": "Wall color",
"properties.floorType": "Floor",
"floor.CONCRETE": "Concrete",
"floor.WOOD_LIGHT": "Light Wood",
"floor.WOOD_MEDIUM": "Medium Wood",
"floor.WOOD_DARK": "Dark Wood",
"floor.WOOD_HERRINGBONE": "Herringbone",
"floor.TILE_WHITE": "White Tile",
"floor.TILE_GRAY": "Gray Tile",
"floor.LAMINATE": "Laminate",
"properties.addNote": "Add note",
"properties.stand": "Stand",
"properties.openDirection": "Open direction",
"properties.openDir.LEFT": "Left",
"properties.openDir.RIGHT": "Right",
"properties.openDir.INWARD": "Inward",
"properties.openDir.OUTWARD": "Outward",
"properties.openDir.LEFT": "Left",
"properties.openDir.RIGHT": "Right",
"properties.openDir.INWARD": "Inward",
"properties.openDir.OUTWARD": "Outward",
"electrical.title": "Electrical",
"electrical.outlets": "Outlets",
"electrical.switches": "Switches",
"electrical.junction": "Junction",
"electrical.lights": "Lights",
"electrical.cable": "Cable",
"furniture.title": "Furniture",
"cableLength.label": "Cable length:",
"projection.title": "Wall Projections",
"projection.grid": "Grid",
"projection.tabs": "Tabs",
"projection.noWall": "No wall selected",
"templates.title": "New Room from Template",
"templates.create": "Create Room",
"templates.roomName": "Room Name (optional)",
"templates.bedroom": "Bedroom",
"templates.bedroomDesc": "Standard bedroom (4m x 3.5m) with door and window",
"templates.kitchen": "Kitchen",
"templates.kitchenDesc": "Kitchen (3.5m x 3m) with door",
"templates.bathroom": "Bathroom",
"templates.bathroomDesc": "Bathroom (2.5m x 2m)",
"templates.livingRoom": "Living Room",
"templates.livingRoomDesc": "Spacious living room (5m x 4m) with window",
"templates.office": "Office",
"templates.officeDesc": "Home office (3m x 2.5m)",
"templates.emptyRoom": "Empty Room",
"templates.emptyRoomDesc": "Custom empty room (3m x 3m)",
"export.title": "Export",
"export.format": "Format",
"export.png": "PNG Image",
"export.pdf": "PDF Document",
"export.json": "JSON Data",
"export.scope": "Scope",
"export.currentView": "Current View",
"export.allRoomViews": "All Room Views",
"export.options": "Options",
"export.includeGrid": "Include grid",
"export.scaleFactor": "Scale factor:",
"export.exporting": "Exporting...",
"export.exportBtn": "Export",
"export.generating": "Generating export...",
"export.error.3dNotAvailable": "3D canvas not available",
"export.error.2dNotAvailable": "2D canvas not available",
"export.error.failed": "Export failed",
"floorPlan.back": "Back",
"floorPlan.reset": "Reset",
"floorPlan.dblClickToEdit": "Double-click to edit",
"annotation.editPrompt": "Edit annotation text:",
"editor.importFailed": "Import failed: {{error}}",
"projection.clickToPlace": "Click on wall to place item",
"export.pdfTitle": "House Plan",
"export.pdfGenerated": "Generated: {{date}}",
"export.pdfRoomCount": "{{count}} room",
"export.pdfRoomCount_other": "{{count}} rooms",
"export.pdfWallProjections": "{{name}} - Wall Projections",
"toast.notifications": "Notifications",
"toast.dismiss": "Dismiss notification",
"theme.toggle": "Toggle dark mode",
"language.toggle": "Switch language"
}