bill 3 дней назад
Родитель
Сommit
1166f501c6

+ 6 - 3
src/example/fuse/views/overview/slide.vue

@@ -17,6 +17,7 @@ import { h, reactive } from "vue";
 import SlideIcons from "../../../components/slide/slide-icons.vue";
 import { iconGroups } from "../../../constant";
 import { ui18n } from "@/lang/index.ts";
+import { DrawItem } from "@/core/components/index.ts";
 
 const legend = {
   icon: "legend",
@@ -27,9 +28,11 @@ const legend = {
 const oSerial = {
   ...serial,
   getPreSelectIds(draw: Draw) {
-    console.log(draw.store.getTypeItems("icon"));
-    return draw.store
-      .getTypeItems("image")
+    const items: DrawItem[] = [
+      ...draw.store.getTypeItems("icon"),
+      ...draw.store.getTypeItems("image")
+    ]
+    return items
       .filter((item) => item.key === "trace")
       .map((item) => item.id);
   },

+ 383 - 1
src/lang/locales/en.json

@@ -1,5 +1,387 @@
 {
+  "alignment": {
+    "end": {
+      "tip": "Please align with the legend on the canvas (press ESC to exit alignment)"
+    },
+    "start": {
+      "tip": "Please select a position for the current legend (press ESC to exit alignment)"
+    }
+  },
+  "background": {
+    "map": {
+      "latlng": "Latitude/Longitude",
+      "name": "Address"
+    },
+    "setting": {
+      "click": "Click position",
+      "input": {
+        "place": "Enter name or latitude/longitude (e.g., 113.281272,23.117661) to search",
+        "place1": "e.g., 39.909187,116.397463",
+        "place2": "Please enter {searchName} to search"
+      },
+      "inputLatLng": "Enter latitude/longitude directly",
+      "lat": "Latitude",
+      "latlng": {
+        "errname": "Invalid latitude/longitude format",
+        "errtip": "Please enter a valid latitude/longitude format\nLatitude, Longitude (e.g., 23.11766,113.28122)\nLatitude range: -90 to 90\nLongitude range: -180 to 180",
+        "success": "Latitude/longitude located successfully"
+      },
+      "lng": "Longitude",
+      "map": "Select AMap base map",
+      "name": "Base map settings",
+      "select": "Select map location",
+      "zoom": "Zoom level"
+    }
+  },
+  "compass": {
+    "name": "Compass"
+  },
+  "cover": {
+    "fixProportion": "Scale ratio",
+    "itemName": "Scale",
+    "showProportion": "Show scale"
+  },
+  "describes": {
+    "align": {
+      "center": "Center align",
+      "left": "Left align",
+      "name": "Alignment",
+      "right": "Right align"
+    },
+    "coverFill": "Background color",
+    "coverOpcatiy": "Background opacity",
+    "coverStroke": "Background border color",
+    "coverStrokeWidth": "Background border width",
+    "dash": "Dash ratio",
+    "fill": "Fill color",
+    "fontColor": "Text color",
+    "fontSize": "Font size",
+    "fontStyle": {
+      "bold": "Bold",
+      "italic": "Italic",
+      "italicBold": "Bold italic",
+      "name": "Font style",
+      "normal": "Normal"
+    },
+    "name": "Name",
+    "opacity": "Opacity",
+    "pointerLength": "Arrow size",
+    "pointerPosition": {
+      "all": "All",
+      "end": "End",
+      "name": "Arrow direction",
+      "start": "Start"
+    },
+    "ref": "Reference",
+    "rotate": "Rotation angle",
+    "stroke": "Border color",
+    "strokeScaleEnabled": "Scale border width",
+    "strokeWidth": "Border width",
+    "zIndex": "Z-index"
+  },
+  "icons": {
+    "groups": {
+      "chuang": "Windows",
+      "chuwei": "Kitchen & Bath",
+      "goujian": "Components",
+      "henji": "Trace evidence",
+      "huxing": "Floor plan",
+      "jiaju": "Furniture",
+      "kecan": "Living & Dining",
+      "men": "Doors",
+      "qita": "Other",
+      "woshi": "Bedroom"
+    },
+    "items": {
+      "AirConditioner": "Air conditioner - Round",
+      "BalconyChair": "Balcony chair",
+      "Bathtub": "Bathtub",
+      "BedsideCupboard": "Nightstand",
+      "Cabinet": "Cabinet",
+      "CabinetB": "Bathroom cabinet",
+      "Carpet": "Carpet",
+      "Chair": "Chair",
+      "Closestool": "Toilet",
+      "CombinationSofa": "Modular sofa",
+      "CornerSofa": "Corner sofa 2.7m",
+      "Cupboard": "Cabinet",
+      "CupboardU": "Universal cabinet",
+      "CurvedSofa": "Curved sofa 2.2m",
+      "Desk": "Desk",
+      "DiningTable": "Dining table",
+      "DiningTableC": "Dining table with chairs",
+      "DiningTableR": "Dining table - Round",
+      "DiningTableRC": "Dining table",
+      "DoubleBed": "Double bed",
+      "DoubleBedB": "Double bed 1.8m",
+      "Dresser": "Dresser",
+      "Elevator": "Elevator",
+      "FridgeD": "Refrigerator - Double door",
+      "FridgeS": "Refrigerator",
+      "GasStove": "Gas stove",
+      "HangingTV": "TV - Wall mounted",
+      "MopPool": "Mop sink",
+      "Pillow": "Pillow",
+      "Plant": "Plant",
+      "Shower": "Shower",
+      "SideTableR": "Side table - Round",
+      "SideTableS": "Side table - Square",
+      "SingleBed": "Single bed",
+      "SingleSofa": "Single sofa",
+      "SingleSofaR": "Modular sofa",
+      "SquattingPan": "Squat toilet",
+      "Stool": "Bench",
+      "TV": "TV stand",
+      "Tablelamp": "Table lamp",
+      "TeaTable": "Coffee table",
+      "TeaTableO": "Coffee table - Oval",
+      "TeaTableR": "Coffee table - Round",
+      "ThreeSofa": "Three-seat sofa",
+      "TwoSofa": "Two-seat sofa 1.8m",
+      "Wardrobe": "Wardrobe",
+      "WashingMachine": "Washing machine",
+      "Washstand": "Washstand",
+      "WaterChannel": "Sink",
+      "WaterChannelD": "Double sink",
+      "WaterFountain": "Water dispenser",
+      "buqiang_o": "Rifle",
+      "cartridge": "Bullet mark",
+      "case_other": "Other evidence",
+      "check": "Special evidence",
+      "chelunhenji_o": "Tire mark",
+      "chuang": "Window",
+      "corpse": "Body",
+      "cube": "Extracted item",
+      "danke_o": "Shell casing",
+      "dantou_o": "Bullet",
+      "electronic": "Digital evidence",
+      "folder_close": "Document evidence",
+      "footprint": "Footprint",
+      "handprint": "Handprint",
+      "loudao": "Corridor",
+      "luodichuang": "French window",
+      "men_l": "Open door",
+      "physics_and_chemistry": "Physical/chemical evidence",
+      "piaochuang": "Bay window",
+      "poison": "Poison evidence",
+      "shitib_o": "Body (back)",
+      "shitifuhao_o": "Body",
+      "shitiz_o": "Body (front)",
+      "shouqiang_o": "Pistol",
+      "shuangkaimen": "Double door",
+      "video": "Audio-visual evidence",
+      "virus": "Biological evidence",
+      "wrenchAndScrewdriver": "Tool mark",
+      "xieyin_o": "Shoe print",
+      "xueji_o": "Bloodstain",
+      "xuepo_o": "Pool of blood",
+      "yakou": "Archway",
+      "yandao": "Chimney flue",
+      "yimen": "Sliding door",
+      "youzuji_o": "Footprint",
+      "zhiwen_o": "Fingerprint",
+      "zhuzi": "Pillar",
+      "zuozuji_o": "Footprint"
+    },
+    "search": "Search legend",
+    "undata": "No matches found"
+  },
+  "mark": {
+    "name": "Annotation"
+  },
   "overview": {
-    "name": "test"
+    "name": "Drawing"
+  },
+  "res": {
+    "code": {
+      "404": "Network error",
+      "500": "Server error",
+      "6012": "Unauthorized operation",
+      "8032": "Drawing does not exist",
+      "8035": "Storage path unavailable. Please go to Settings/File Management to update the original data path and try again."
+    }
+  },
+  "scene": {
+    "cloud": "Point cloud scene",
+    "fuse": "Fusion scene",
+    "mesh": "Mesh scene"
+  },
+  "shape": {
+    "arrow": {
+      "name": "Arrow"
+    },
+    "circle": {
+      "name": "Circle"
+    },
+    "group": {
+      "name": "Group"
+    },
+    "icon": {
+      "name": "Icon"
+    },
+    "image": {
+      "name": "Image"
+    },
+    "line": {
+      "addPoint": "Add point",
+      "name": "Line"
+    },
+    "lineIcon": {
+      "name": "Line icon",
+      "rever": "Flip"
+    },
+    "polygon": {
+      "name": "Polygon",
+      "penEdit": "Pen edit"
+    },
+    "polygon1": {
+      "name": "Polyline"
+    },
+    "rect": {
+      "name": "Rectangle"
+    },
+    "serial": {
+      "diff": "Value",
+      "head1": "No.",
+      "head2": "Description",
+      "name": "Serial number",
+      "tableTitle": "Illustration"
+    },
+    "table": {
+      "addCol": "Insert column",
+      "addRow": "Insert row",
+      "delCol": "Delete column",
+      "delRow": "Delete row",
+      "name": "Table"
+    },
+    "text": {
+      "name": "Text"
+    },
+    "triangle": {
+      "name": "Triangle"
+    },
+    "wall": {
+      "name": "Wall",
+      "strokeWidth": "Thickness"
+    }
+  },
+  "sys": {
+    "action": {
+      "download": {
+        "setting": "Export settings"
+      }
+    },
+    "actions": {
+      "a_adapt": "Fit to view",
+      "clear": "Clear",
+      "download": {
+        "color": "Color",
+        "error": "Export failed",
+        "format": "Format",
+        "grayscale": "Grayscale",
+        "name": "Export",
+        "raw": "Color",
+        "success": "Export successful"
+      },
+      "draw": {
+        "name": "Draw",
+        "text": "Text"
+      },
+      "floor": {
+        "hide": "Hide base map",
+        "show": "Show base map"
+      },
+      "import": {
+        "image": {
+          "maxTip": "Image size cannot exceed 100MB"
+        },
+        "local": {
+          "name": "Local",
+          "tip": "Please select a placement position on the drawing panel, right-click to cancel"
+        },
+        "map": "Map",
+        "name": "Import",
+        "scene": "Scene",
+        "tip": "Please select a placement position on the drawing panel, right-click to cancel"
+      },
+      "paper": {
+        "A3_h": "A3 landscape",
+        "A4_h": "A4 landscape",
+        "name": "Paper"
+      },
+      "redo": "Redo",
+      "rotate": "Rotate canvas",
+      "undo": "Undo"
+    },
+    "alignment": "Alignment",
+    "cancel": "Cancel",
+    "color": "Color",
+    "copy": "Copy",
+    "defTitle": "Floor plan",
+    "del": "Delete",
+    "enter": "OK",
+    "full": {
+      "exit": "Press ESC to exit full screen mode"
+    },
+    "hide": "Hide",
+    "lang": "Switch language",
+    "length": "Length",
+    "line": {
+      "strokeWidth": "Line width"
+    },
+    "lock": "Lock",
+    "more": "Multiple values",
+    "placeholder": {
+      "input": "Please enter",
+      "select": "Select"
+    },
+    "save": "Save",
+    "screenshot": {
+      "error": "Screenshot save failed"
+    },
+    "setting": "Settings {name}",
+    "shape": "Shape",
+    "similars": "Multiple implementations",
+    "strokeWidth": "Thickness",
+    "strokeWidth2": "Border line width",
+    "unlock": "Unlock",
+    "unproject": "Current project number does not exist!",
+    "untoken": "Current user not logged in",
+    "update": "Update data",
+    "vr": {
+      "dialog": {
+        "floor": "Floor",
+        "hot": "Hotspot",
+        "icon": "Icon",
+        "selectFloor": "Please select a floor",
+        "selectScene": "Please select a sync scene",
+        "signage": "Signage",
+        "title": "Please select a scene",
+        "traces": "Trace evidence"
+      }
+    },
+    "zbot": "Send to back",
+    "ztop": "Bring to front"
+  },
+  "tableTemp": {
+    "th1": "Incident date",
+    "th2": "Incident location",
+    "th3": "Drawing unit",
+    "th4": "Drafter",
+    "th5": "Drawing time",
+    "title": "Scene floor plan of \"{crimeTimeBegin}\" {caseLocation}{caseTypeName}",
+    "title1": "Default title",
+    "title2": "Drawing description"
+  },
+  "tabulation": {
+    "name": "Tabulation",
+    "name1": "Drawing sheet"
+  },
+  "tagging": {
+    "name": "Labeling"
+  },
+  "vr": {
+    "fz": "VR assistant",
+    "name": "VR panorama"
   }
 }

+ 385 - 0
src/lang/locales/es.json

@@ -1,2 +1,387 @@
 {
+  "alignment": {
+    "end": {
+      "tip": "Por favor, alinee con la leyenda en el lienzo (presione ESC para salir de la alineación)"
+    },
+    "start": {
+      "tip": "Por favor, seleccione una posición para la leyenda actual (presione ESC para salir de la alineación)"
+    }
+  },
+  "background": {
+    "map": {
+      "latlng": "Latitud/Longitud",
+      "name": "Dirección"
+    },
+    "setting": {
+      "click": "Posición del clic",
+      "input": {
+        "place": "Ingrese nombre o latitud/longitud (ej. 113.281272,23.117661) para buscar",
+        "place1": "ej. 39.909187,116.397463",
+        "place2": "Por favor, ingrese {searchName} para buscar"
+      },
+      "inputLatLng": "Ingrese latitud/longitud directamente",
+      "lat": "Latitud",
+      "latlng": {
+        "errname": "Formato de latitud/longitud inválido",
+        "errtip": "Por favor, ingrese un formato válido de latitud/longitud\nLatitud, Longitud (ej. 23.11766,113.28122)\nRango de latitud: -90 a 90\nRango de longitud: -180 a 180",
+        "success": "Latitud/longitud ubicada exitosamente"
+      },
+      "lng": "Longitud",
+      "map": "Seleccionar mapa base de AMap",
+      "name": "Configuración del mapa base",
+      "select": "Seleccionar ubicación en el mapa",
+      "zoom": "Nivel de zoom"
+    }
+  },
+  "compass": {
+    "name": "Brújula"
+  },
+  "cover": {
+    "fixProportion": "Proporción de escala",
+    "itemName": "Escala",
+    "showProportion": "Mostrar escala"
+  },
+  "describes": {
+    "align": {
+      "center": "Alinear al centro",
+      "left": "Alinear a la izquierda",
+      "name": "Alineación",
+      "right": "Alinear a la derecha"
+    },
+    "coverFill": "Color de fondo",
+    "coverOpcatiy": "Opacidad del fondo",
+    "coverStroke": "Color del borde del fondo",
+    "coverStrokeWidth": "Grosor del borde del fondo",
+    "dash": "Proporción de guiones",
+    "fill": "Color de relleno",
+    "fontColor": "Color del texto",
+    "fontSize": "Tamaño de fuente",
+    "fontStyle": {
+      "bold": "Negrita",
+      "italic": "Cursiva",
+      "italicBold": "Negrita cursiva",
+      "name": "Estilo de fuente",
+      "normal": "Normal"
+    },
+    "name": "Nombre",
+    "opacity": "Opacidad",
+    "pointerLength": "Tamaño de la flecha",
+    "pointerPosition": {
+      "all": "Todo",
+      "end": "Fin",
+      "name": "Dirección de la flecha",
+      "start": "Inicio"
+    },
+    "ref": "Referencia",
+    "rotate": "Ángulo de rotación",
+    "stroke": "Color del borde",
+    "strokeScaleEnabled": "Escalar grosor del borde",
+    "strokeWidth": "Grosor del borde",
+    "zIndex": "Índice Z"
+  },
+  "icons": {
+    "groups": {
+      "chuang": "Ventanas",
+      "chuwei": "Cocina y baño",
+      "goujian": "Componentes",
+      "henji": "Evidencia de rastros",
+      "huxing": "Plano de planta",
+      "jiaju": "Muebles",
+      "kecan": "Sala y comedor",
+      "men": "Puertas",
+      "qita": "Otros",
+      "woshi": "Dormitorio"
+    },
+    "items": {
+      "AirConditioner": "Aire acondicionado - Redondo",
+      "BalconyChair": "Silla de balcón",
+      "Bathtub": "Bañera",
+      "BedsideCupboard": "Mesita de noche",
+      "Cabinet": "Armario",
+      "CabinetB": "Mueble de baño",
+      "Carpet": "Alfombra",
+      "Chair": "Silla",
+      "Closestool": "Inodoro",
+      "CombinationSofa": "Sofá modular",
+      "CornerSofa": "Sofá esquinero 2.7m",
+      "Cupboard": "Armario de cocina",
+      "CupboardU": "Armario universal",
+      "CurvedSofa": "Sofá curvo 2.2m",
+      "Desk": "Escritorio",
+      "DiningTable": "Mesa de comedor",
+      "DiningTableC": "Mesa de comedor con sillas",
+      "DiningTableR": "Mesa de comedor - Redonda",
+      "DiningTableRC": "Mesa de comedor",
+      "DoubleBed": "Cama doble",
+      "DoubleBedB": "Cama doble 1.8m",
+      "Dresser": "Tocador",
+      "Elevator": "Ascensor",
+      "FridgeD": "Refrigerador - Dos puertas",
+      "FridgeS": "Refrigerador",
+      "GasStove": "Estufa de gas",
+      "HangingTV": "TV - Montaje en pared",
+      "MopPool": "Lavadero de trapeador",
+      "Pillow": "Cojín",
+      "Plant": "Planta",
+      "Shower": "Ducha",
+      "SideTableR": "Mesita auxiliar - Redonda",
+      "SideTableS": "Mesita auxiliar - Cuadrada",
+      "SingleBed": "Cama individual",
+      "SingleSofa": "Sillón individual",
+      "SingleSofaR": "Sofá modular",
+      "SquattingPan": "Inodoro en cuclillas",
+      "Stool": "Banco",
+      "TV": "Soporte para TV",
+      "Tablelamp": "Lámpara de mesa",
+      "TeaTable": "Mesa de centro",
+      "TeaTableO": "Mesa de centro - Ovalada",
+      "TeaTableR": "Mesa de centro - Redonda",
+      "ThreeSofa": "Sofá de tres plazas",
+      "TwoSofa": "Sofá de dos plazas 1.8m",
+      "Wardrobe": "Armario ropero",
+      "WashingMachine": "Lavadora",
+      "Washstand": "Lavamanos",
+      "WaterChannel": "Fregadero",
+      "WaterChannelD": "Fregadero doble",
+      "WaterFountain": "Dispensador de agua",
+      "buqiang_o": "Rifle",
+      "cartridge": "Marca de bala",
+      "case_other": "Otra evidencia",
+      "check": "Evidencia especial",
+      "chelunhenji_o": "Marca de neumático",
+      "chuang": "Ventana",
+      "corpse": "Cuerpo",
+      "cube": "Elemento extraído",
+      "danke_o": "Vaina",
+      "dantou_o": "Proyectil",
+      "electronic": "Evidencia digital",
+      "folder_close": "Evidencia documental",
+      "footprint": "Huella",
+      "handprint": "Huella dactilar",
+      "loudao": "Pasillo",
+      "luodichuang": "Ventanal",
+      "men_l": "Puerta abierta",
+      "physics_and_chemistry": "Evidencia física/química",
+      "piaochuang": "Ventana de saliente",
+      "poison": "Evidencia de veneno",
+      "shitib_o": "Cuerpo (espalda)",
+      "shitifuhao_o": "Cuerpo",
+      "shitiz_o": "Cuerpo (frente)",
+      "shouqiang_o": "Pistola",
+      "shuangkaimen": "Puerta doble",
+      "video": "Evidencia audiovisual",
+      "virus": "Evidencia biológica",
+      "wrenchAndScrewdriver": "Marca de herramienta",
+      "xieyin_o": "Huella de zapato",
+      "xueji_o": "Mancha de sangre",
+      "xuepo_o": "Charco de sangre",
+      "yakou": "Arco",
+      "yandao": "Conducto de humo",
+      "yimen": "Puerta corrediza",
+      "youzuji_o": "Huella",
+      "zhiwen_o": "Huella digital",
+      "zhuzi": "Pilar",
+      "zuozuji_o": "Huella"
+    },
+    "search": "Buscar leyenda",
+    "undata": "No se encontraron coincidencias"
+  },
+  "mark": {
+    "name": "Anotación"
+  },
+  "overview": {
+    "name": "Dibujo"
+  },
+  "res": {
+    "code": {
+      "404": "Error de red",
+      "500": "Error del servidor",
+      "6012": "Operación no autorizada",
+      "8032": "El dibujo no existe",
+      "8035": "Ruta de almacenamiento no disponible. Vaya a Configuración/Administración de archivos para actualizar la ruta de datos original e intente nuevamente."
+    }
+  },
+  "scene": {
+    "cloud": "Escena de nube de puntos",
+    "fuse": "Escena fusionada",
+    "mesh": "Escena de malla"
+  },
+  "shape": {
+    "arrow": {
+      "name": "Flecha"
+    },
+    "circle": {
+      "name": "Círculo"
+    },
+    "group": {
+      "name": "Grupo"
+    },
+    "icon": {
+      "name": "Icono"
+    },
+    "image": {
+      "name": "Imagen"
+    },
+    "line": {
+      "addPoint": "Agregar punto",
+      "name": "Línea"
+    },
+    "lineIcon": {
+      "name": "Icono de línea",
+      "rever": "Voltear"
+    },
+    "polygon": {
+      "name": "Polígono",
+      "penEdit": "Edición con pluma"
+    },
+    "polygon1": {
+      "name": "Polilínea"
+    },
+    "rect": {
+      "name": "Rectángulo"
+    },
+    "serial": {
+      "diff": "Valor",
+      "head1": "N.º",
+      "head2": "Descripción",
+      "name": "Número de serie",
+      "tableTitle": "Ilustración"
+    },
+    "table": {
+      "addCol": "Insertar columna",
+      "addRow": "Insertar fila",
+      "delCol": "Eliminar columna",
+      "delRow": "Eliminar fila",
+      "name": "Tabla"
+    },
+    "text": {
+      "name": "Texto"
+    },
+    "triangle": {
+      "name": "Triángulo"
+    },
+    "wall": {
+      "name": "Muro",
+      "strokeWidth": "Grosor"
+    }
+  },
+  "sys": {
+    "action": {
+      "download": {
+        "setting": "Configuración de exportación"
+      }
+    },
+    "actions": {
+      "a_adapt": "Ajustar a la vista",
+      "clear": "Limpiar",
+      "download": {
+        "color": "Color",
+        "error": "Error al exportar",
+        "format": "Formato",
+        "grayscale": "Escala de grises",
+        "name": "Exportar",
+        "raw": "Color",
+        "success": "Exportación exitosa"
+      },
+      "draw": {
+        "name": "Dibujar",
+        "text": "Texto"
+      },
+      "floor": {
+        "hide": "Ocultar mapa base",
+        "show": "Mostrar mapa base"
+      },
+      "import": {
+        "image": {
+          "maxTip": "El tamaño de la imagen no puede exceder los 100 MB"
+        },
+        "local": {
+          "name": "Local",
+          "tip": "Seleccione una posición de colocación en el panel de dibujo, haga clic derecho para cancelar"
+        },
+        "map": "Mapa",
+        "name": "Importar",
+        "scene": "Escena",
+        "tip": "Seleccione una posición de colocación en el panel de dibujo, haga clic derecho para cancelar"
+      },
+      "paper": {
+        "A3_h": "A3 horizontal",
+        "A4_h": "A4 horizontal",
+        "name": "Papel"
+      },
+      "redo": "Rehacer",
+      "rotate": "Rotar lienzo",
+      "undo": "Deshacer"
+    },
+    "alignment": "Alineación",
+    "cancel": "Cancelar",
+    "color": "Color",
+    "copy": "Copiar",
+    "defTitle": "Plano de planta",
+    "del": "Eliminar",
+    "enter": "Aceptar",
+    "full": {
+      "exit": "Presione ESC para salir del modo de pantalla completa"
+    },
+    "hide": "Ocultar",
+    "lang": "Cambiar idioma",
+    "length": "Longitud",
+    "line": {
+      "strokeWidth": "Ancho de línea"
+    },
+    "lock": "Bloquear",
+    "more": "Múltiples valores",
+    "placeholder": {
+      "input": "Por favor ingrese",
+      "select": "Seleccionar"
+    },
+    "save": "Guardar",
+    "screenshot": {
+      "error": "Error al guardar la captura de pantalla"
+    },
+    "setting": "Configuración {name}",
+    "shape": "Forma",
+    "similars": "Múltiples implementaciones",
+    "strokeWidth": "Grosor",
+    "strokeWidth2": "Ancho del borde",
+    "unlock": "Desbloquear",
+    "unproject": "¡El número de proyecto actual no existe!",
+    "untoken": "Usuario actual no ha iniciado sesión",
+    "update": "Actualizar datos",
+    "vr": {
+      "dialog": {
+        "floor": "Piso",
+        "hot": "Punto de interés",
+        "icon": "Icono",
+        "selectFloor": "Por favor seleccione un piso",
+        "selectScene": "Por favor seleccione una escena de sincronización",
+        "signage": "Señalización",
+        "title": "Por favor seleccione una escena",
+        "traces": "Evidencia de rastros"
+      }
+    },
+    "zbot": "Enviar al fondo",
+    "ztop": "Traer al frente"
+  },
+  "tableTemp": {
+    "th1": "Fecha del incidente",
+    "th2": "Lugar del incidente",
+    "th3": "Unidad de dibujo",
+    "th4": "Dibujante",
+    "th5": "Hora del dibujo",
+    "title": "Plano de escena de \"{crimeTimeBegin}\" {caseLocation}{caseTypeName}",
+    "title1": "Título predeterminado",
+    "title2": "Descripción del dibujo"
+  },
+  "tabulation": {
+    "name": "Tabulación",
+    "name1": "Hoja de dibujo"
+  },
+  "tagging": {
+    "name": "Etiquetado"
+  },
+  "vr": {
+    "fz": "Asistente de realidad virtual",
+    "name": "Panorama VR"
+  }
 }

+ 385 - 0
src/lang/locales/fr.json

@@ -1,2 +1,387 @@
 {
+  "alignment": {
+    "end": {
+      "tip": "Veuillez aligner avec la légende sur le canevas (appuyez sur ÉCHAP pour quitter l'alignement)"
+    },
+    "start": {
+      "tip": "Veuillez sélectionner une position pour la légende actuelle (appuyez sur ÉCHAP pour quitter l'alignement)"
+    }
+  },
+  "background": {
+    "map": {
+      "latlng": "Latitude/Longitude",
+      "name": "Adresse"
+    },
+    "setting": {
+      "click": "Position du clic",
+      "input": {
+        "place": "Entrez un nom ou une latitude/longitude (ex. 113.281272,23.117661) pour rechercher",
+        "place1": "ex. 39.909187,116.397463",
+        "place2": "Veuillez entrer {searchName} pour rechercher"
+      },
+      "inputLatLng": "Entrez directement la latitude/longitude",
+      "lat": "Latitude",
+      "latlng": {
+        "errname": "Format de latitude/longitude invalide",
+        "errtip": "Veuillez entrer un format de latitude/longitude valide\nLatitude, Longitude (ex. 23.11766,113.28122)\nPlage de latitude : -90 à 90\nPlage de longitude : -180 à 180",
+        "success": "Latitude/longitude localisée avec succès"
+      },
+      "lng": "Longitude",
+      "map": "Sélectionner le fond de carte AMap",
+      "name": "Paramètres du fond de carte",
+      "select": "Sélectionner l'emplacement sur la carte",
+      "zoom": "Niveau de zoom"
+    }
+  },
+  "compass": {
+    "name": "Boussole"
+  },
+  "cover": {
+    "fixProportion": "Échelle de proportion",
+    "itemName": "Échelle",
+    "showProportion": "Afficher l'échelle"
+  },
+  "describes": {
+    "align": {
+      "center": "Aligner au centre",
+      "left": "Aligner à gauche",
+      "name": "Alignement",
+      "right": "Aligner à droite"
+    },
+    "coverFill": "Couleur de fond",
+    "coverOpcatiy": "Opacité du fond",
+    "coverStroke": "Couleur de la bordure de fond",
+    "coverStrokeWidth": "Épaisseur de la bordure de fond",
+    "dash": "Proportion de tirets",
+    "fill": "Couleur de remplissage",
+    "fontColor": "Couleur du texte",
+    "fontSize": "Taille de la police",
+    "fontStyle": {
+      "bold": "Gras",
+      "italic": "Italique",
+      "italicBold": "Gras italique",
+      "name": "Style de police",
+      "normal": "Normal"
+    },
+    "name": "Nom",
+    "opacity": "Opacité",
+    "pointerLength": "Taille de la flèche",
+    "pointerPosition": {
+      "all": "Tous",
+      "end": "Fin",
+      "name": "Direction de la flèche",
+      "start": "Début"
+    },
+    "ref": "Référence",
+    "rotate": "Angle de rotation",
+    "stroke": "Couleur de la bordure",
+    "strokeScaleEnabled": "Mettre à l'échelle l'épaisseur de la bordure",
+    "strokeWidth": "Épaisseur de la bordure",
+    "zIndex": "Indice Z"
+  },
+  "icons": {
+    "groups": {
+      "chuang": "Fenêtres",
+      "chuwei": "Cuisine et salle de bain",
+      "goujian": "Composants",
+      "henji": "Preuve matérielle",
+      "huxing": "Plan d'étage",
+      "jiaju": "Meubles",
+      "kecan": "Salon et salle à manger",
+      "men": "Portes",
+      "qita": "Autres",
+      "woshi": "Chambre"
+    },
+    "items": {
+      "AirConditioner": "Climatiseur - Rond",
+      "BalconyChair": "Chaise de balcon",
+      "Bathtub": "Baignoire",
+      "BedsideCupboard": "Table de chevet",
+      "Cabinet": "Armoire",
+      "CabinetB": "Meuble de salle de bain",
+      "Carpet": "Tapis",
+      "Chair": "Chaise",
+      "Closestool": "Toilettes",
+      "CombinationSofa": "Canapé modulable",
+      "CornerSofa": "Canapé d'angle 2,7 m",
+      "Cupboard": "Armoire de cuisine",
+      "CupboardU": "Armoire universelle",
+      "CurvedSofa": "Canapé incurvé 2,2 m",
+      "Desk": "Bureau",
+      "DiningTable": "Table à manger",
+      "DiningTableC": "Table à manger avec chaises",
+      "DiningTableR": "Table à manger - Ronde",
+      "DiningTableRC": "Table à manger",
+      "DoubleBed": "Lit double",
+      "DoubleBedB": "Lit double 1,8 m",
+      "Dresser": "Coiffeuse",
+      "Elevator": "Ascenseur",
+      "FridgeD": "Réfrigérateur - Double porte",
+      "FridgeS": "Réfrigérateur",
+      "GasStove": "Cuisinière à gaz",
+      "HangingTV": "TV - Fixation murale",
+      "MopPool": "Évier à balai",
+      "Pillow": "Coussin",
+      "Plant": "Plante",
+      "Shower": "Douche",
+      "SideTableR": "Table d'appoint - Ronde",
+      "SideTableS": "Table d'appoint - Carrée",
+      "SingleBed": "Lit simple",
+      "SingleSofa": "Fauteuil",
+      "SingleSofaR": "Canapé modulable",
+      "SquattingPan": "Toilettes à la turque",
+      "Stool": "Tabouret",
+      "TV": "Meuble TV",
+      "Tablelamp": "Lampe de table",
+      "TeaTable": "Table basse",
+      "TeaTableO": "Table basse - Ovale",
+      "TeaTableR": "Table basse - Ronde",
+      "ThreeSofa": "Canapé trois places",
+      "TwoSofa": "Canapé deux places 1,8 m",
+      "Wardrobe": "Garde-robe",
+      "WashingMachine": "Machine à laver",
+      "Washstand": "Lavabo",
+      "WaterChannel": "Évier",
+      "WaterChannelD": "Double évier",
+      "WaterFountain": "Fontaine à eau",
+      "buqiang_o": "Fusil",
+      "cartridge": "Trace de balle",
+      "case_other": "Autre preuve",
+      "check": "Preuve spéciale",
+      "chelunhenji_o": "Trace de pneu",
+      "chuang": "Fenêtre",
+      "corpse": "Corps",
+      "cube": "Élément extrait",
+      "danke_o": "Douille",
+      "dantou_o": "Projectile",
+      "electronic": "Preuve numérique",
+      "folder_close": "Preuve documentaire",
+      "footprint": "Empreinte de pas",
+      "handprint": "Empreinte digitale",
+      "loudao": "Couloir",
+      "luodichuang": "Fenêtre panoramique",
+      "men_l": "Porte ouverte",
+      "physics_and_chemistry": "Preuve physique/chimique",
+      "piaochuang": "Fenêtre en saillie",
+      "poison": "Preuve de poison",
+      "shitib_o": "Corps (dos)",
+      "shitifuhao_o": "Corps",
+      "shitiz_o": "Corps (face)",
+      "shouqiang_o": "Pistolet",
+      "shuangkaimen": "Double porte",
+      "video": "Preuve audiovisuelle",
+      "virus": "Preuve biologique",
+      "wrenchAndScrewdriver": "Trace d'outil",
+      "xieyin_o": "Empreinte de chaussure",
+      "xueji_o": "Tache de sang",
+      "xuepo_o": "Flaque de sang",
+      "yakou": "Arcade",
+      "yandao": "Conduit de fumée",
+      "yimen": "Porte coulissante",
+      "youzuji_o": "Empreinte",
+      "zhiwen_o": "Empreinte digitale",
+      "zhuzi": "Pilier",
+      "zuozuji_o": "Empreinte"
+    },
+    "search": "Rechercher une légende",
+    "undata": "Aucun résultat trouvé"
+  },
+  "mark": {
+    "name": "Annotation"
+  },
+  "overview": {
+    "name": "Dessin"
+  },
+  "res": {
+    "code": {
+      "404": "Erreur réseau",
+      "500": "Erreur de serveur",
+      "6012": "Opération non autorisée",
+      "8032": "Le dessin n'existe pas",
+      "8035": "Chemin de stockage indisponible. Veuillez aller dans Paramètres/Gestion des fichiers pour mettre à jour le chemin des données d'origine et réessayer."
+    }
+  },
+  "scene": {
+    "cloud": "Scène de nuage de points",
+    "fuse": "Scène fusionnée",
+    "mesh": "Scène maillée"
+  },
+  "shape": {
+    "arrow": {
+      "name": "Flèche"
+    },
+    "circle": {
+      "name": "Cercle"
+    },
+    "group": {
+      "name": "Groupe"
+    },
+    "icon": {
+      "name": "Icône"
+    },
+    "image": {
+      "name": "Image"
+    },
+    "line": {
+      "addPoint": "Ajouter un point",
+      "name": "Ligne"
+    },
+    "lineIcon": {
+      "name": "Icône de ligne",
+      "rever": "Retourner"
+    },
+    "polygon": {
+      "name": "Polygone",
+      "penEdit": "Édition au stylo"
+    },
+    "polygon1": {
+      "name": "Polyligne"
+    },
+    "rect": {
+      "name": "Rectangle"
+    },
+    "serial": {
+      "diff": "Valeur",
+      "head1": "N°",
+      "head2": "Description",
+      "name": "Numéro de série",
+      "tableTitle": "Illustration"
+    },
+    "table": {
+      "addCol": "Insérer une colonne",
+      "addRow": "Insérer une ligne",
+      "delCol": "Supprimer la colonne",
+      "delRow": "Supprimer la ligne",
+      "name": "Tableau"
+    },
+    "text": {
+      "name": "Texte"
+    },
+    "triangle": {
+      "name": "Triangle"
+    },
+    "wall": {
+      "name": "Mur",
+      "strokeWidth": "Épaisseur"
+    }
+  },
+  "sys": {
+    "action": {
+      "download": {
+        "setting": "Paramètres d'exportation"
+      }
+    },
+    "actions": {
+      "a_adapt": "Ajuster à la vue",
+      "clear": "Effacer",
+      "download": {
+        "color": "Couleur",
+        "error": "Échec de l'exportation",
+        "format": "Format",
+        "grayscale": "Niveaux de gris",
+        "name": "Exporter",
+        "raw": "Couleur",
+        "success": "Exportation réussie"
+      },
+      "draw": {
+        "name": "Dessiner",
+        "text": "Texte"
+      },
+      "floor": {
+        "hide": "Masquer le fond de carte",
+        "show": "Afficher le fond de carte"
+      },
+      "import": {
+        "image": {
+          "maxTip": "La taille de l'image ne peut pas dépasser 100 Mo"
+        },
+        "local": {
+          "name": "Local",
+          "tip": "Veuillez sélectionner une position de placement sur le panneau de dessin, clic droit pour annuler"
+        },
+        "map": "Carte",
+        "name": "Importer",
+        "scene": "Scène",
+        "tip": "Veuillez sélectionner une position de placement sur le panneau de dessin, clic droit pour annuler"
+      },
+      "paper": {
+        "A3_h": "A3 paysage",
+        "A4_h": "A4 paysage",
+        "name": "Papier"
+      },
+      "redo": "Rétablir",
+      "rotate": "Faire pivoter le canevas",
+      "undo": "Annuler"
+    },
+    "alignment": "Alignement",
+    "cancel": "Annuler",
+    "color": "Couleur",
+    "copy": "Copier",
+    "defTitle": "Plan d'étage",
+    "del": "Supprimer",
+    "enter": "OK",
+    "full": {
+      "exit": "Appuyez sur ÉCHAP pour quitter le mode plein écran"
+    },
+    "hide": "Masquer",
+    "lang": "Changer de langue",
+    "length": "Longueur",
+    "line": {
+      "strokeWidth": "Largeur de ligne"
+    },
+    "lock": "Verrouiller",
+    "more": "Valeurs multiples",
+    "placeholder": {
+      "input": "Veuillez entrer",
+      "select": "Sélectionner"
+    },
+    "save": "Enregistrer",
+    "screenshot": {
+      "error": "Échec de la sauvegarde de la capture d'écran"
+    },
+    "setting": "Paramètres {name}",
+    "shape": "Forme",
+    "similars": "Implémentations multiples",
+    "strokeWidth": "Épaisseur",
+    "strokeWidth2": "Largeur de la bordure",
+    "unlock": "Déverrouiller",
+    "unproject": "Le numéro de projet actuel n'existe pas !",
+    "untoken": "Utilisateur actuel non connecté",
+    "update": "Mettre à jour les données",
+    "vr": {
+      "dialog": {
+        "floor": "Étage",
+        "hot": "Point d'intérêt",
+        "icon": "Icône",
+        "selectFloor": "Veuillez sélectionner un étage",
+        "selectScene": "Veuillez sélectionner une scène de synchronisation",
+        "signage": "Signalétique",
+        "title": "Veuillez sélectionner une scène",
+        "traces": "Preuve matérielle"
+      }
+    },
+    "zbot": "Envoyer à l'arrière",
+    "ztop": "Amener au premier plan"
+  },
+  "tableTemp": {
+    "th1": "Date de l'incident",
+    "th2": "Lieu de l'incident",
+    "th3": "Unité de dessin",
+    "th4": "Dessinateur",
+    "th5": "Heure du dessin",
+    "title": "Plan de scène de \"{crimeTimeBegin}\" {caseLocation}{caseTypeName}",
+    "title1": "Titre par défaut",
+    "title2": "Description du dessin"
+  },
+  "tabulation": {
+    "name": "Tabulation",
+    "name1": "Feuille de dessin"
+  },
+  "tagging": {
+    "name": "Étiquetage"
+  },
+  "vr": {
+    "fz": "Assistant VR",
+    "name": "Panorama VR"
+  }
 }

+ 387 - 1
src/lang/locales/ja.json

@@ -1 +1,387 @@
-{}
+{
+  "alignment": {
+    "end": {
+      "tip": "キャンバス上の凡例に対応する位置に配置してください(ESCキーで位置合わせを終了)"
+    },
+    "start": {
+      "tip": "現在の凡例の位置を選択してください(ESCキーで位置合わせを終了)"
+    }
+  },
+  "background": {
+    "map": {
+      "latlng": "緯度経度",
+      "name": "住所"
+    },
+    "setting": {
+      "click": "クリック位置",
+      "input": {
+        "place": "名称または緯度経度(例:113.281272,23.117661)を入力して検索",
+        "place1": "例:39.909187,116.397463",
+        "place2": "{searchName}を入力して検索してください"
+      },
+      "inputLatLng": "緯度経度を直接入力",
+      "lat": "緯度",
+      "latlng": {
+        "errname": "緯度経度の形式エラー",
+        "errtip": "正しい緯度経度形式を入力してください\n緯度,経度(例:23.11766,113.28122)\n緯度範囲:-90~90\n経度範囲:-180~180",
+        "success": "緯度経度の位置特定に成功しました"
+      },
+      "lng": "経度",
+      "map": "高德地図のベースマップを選択",
+      "name": "ベースマップ設定",
+      "select": "地図位置を選択",
+      "zoom": "ズームレベル"
+    }
+  },
+  "compass": {
+    "name": "コンパス"
+  },
+  "cover": {
+    "fixProportion": "拡大縮小比率",
+    "itemName": "比率",
+    "showProportion": "比率を表示"
+  },
+  "describes": {
+    "align": {
+      "center": "中央揃え",
+      "left": "左揃え",
+      "name": "配置",
+      "right": "右揃え"
+    },
+    "coverFill": "背景色",
+    "coverOpcatiy": "背景の不透明度",
+    "coverStroke": "背景枠の色",
+    "coverStrokeWidth": "背景枠の太さ",
+    "dash": "破線比率",
+    "fill": "塗りつぶし色",
+    "fontColor": "文字色",
+    "fontSize": "文字サイズ",
+    "fontStyle": {
+      "bold": "太字",
+      "italic": "イタリック",
+      "italicBold": "太字イタリック",
+      "name": "フォントスタイル",
+      "normal": "標準"
+    },
+    "name": "名前",
+    "opacity": "不透明度",
+    "pointerLength": "矢印のサイズ",
+    "pointerPosition": {
+      "all": "すべて",
+      "end": "終点",
+      "name": "矢印の方向",
+      "start": "始点"
+    },
+    "ref": "参照物",
+    "rotate": "回転角度",
+    "stroke": "枠線の色",
+    "strokeScaleEnabled": "枠の太さを拡大縮小に連動",
+    "strokeWidth": "枠の太さ",
+    "zIndex": "重ね順"
+  },
+  "icons": {
+    "groups": {
+      "chuang": "窓",
+      "chuwei": "キッチン・バス",
+      "goujian": "部材",
+      "henji": "痕跡証拠",
+      "huxing": "間取り",
+      "jiaju": "家具",
+      "kecan": "リビング・ダイニング",
+      "men": "ドア",
+      "qita": "その他",
+      "woshi": "寝室"
+    },
+    "items": {
+      "AirConditioner": "エアコン(丸型)",
+      "BalconyChair": "バルコニーチェア",
+      "Bathtub": "浴槽",
+      "BedsideCupboard": "ナイトテーブル",
+      "Cabinet": "収納棚",
+      "CabinetB": "洗面台キャビネット",
+      "Carpet": "カーペット",
+      "Chair": "椅子",
+      "Closestool": "トイレ",
+      "CombinationSofa": "コンビネーションソファ",
+      "CornerSofa": "コーナーソファ2.7m",
+      "Cupboard": "キッチンキャビネット",
+      "CupboardU": "汎用キャビネット",
+      "CurvedSofa": "カーブソファ2.2m",
+      "Desk": "机",
+      "DiningTable": "ダイニングテーブル",
+      "DiningTableC": "ダイニングテーブルセット",
+      "DiningTableR": "ダイニングテーブル(丸)",
+      "DiningTableRC": "ダイニングテーブル",
+      "DoubleBed": "ダブルベッド",
+      "DoubleBedB": "ダブルベッド1.8m",
+      "Dresser": "ドレッサー",
+      "Elevator": "エレベーター",
+      "FridgeD": "冷蔵庫(両開き)",
+      "FridgeS": "冷蔵庫",
+      "GasStove": "ガスコンロ",
+      "HangingTV": "テレビ(壁掛け)",
+      "MopPool": "モップ流し",
+      "Pillow": "クッション",
+      "Plant": "植物",
+      "Shower": "シャワー",
+      "SideTableR": "サイドテーブル(丸)",
+      "SideTableS": "サイドテーブル(角)",
+      "SingleBed": "シングルベッド",
+      "SingleSofa": "一人掛けソファ",
+      "SingleSofaR": "コンビネーションソファ",
+      "SquattingPan": "和式トイレ",
+      "Stool": "ベンチ",
+      "TV": "テレビボード",
+      "Tablelamp": "電気スタンド",
+      "TeaTable": "ティーテーブル",
+      "TeaTableO": "ティーテーブル(楕円)",
+      "TeaTableR": "ティーテーブル(丸)",
+      "ThreeSofa": "三人掛けソファ",
+      "TwoSofa": "二人掛けソファ1.8m",
+      "Wardrobe": "洋服ダンス",
+      "WashingMachine": "洗濯機",
+      "Washstand": "洗面台",
+      "WaterChannel": "シンク",
+      "WaterChannelD": "ダブルシンク",
+      "WaterFountain": "ウォーターサーバー",
+      "buqiang_o": "ライフル",
+      "cartridge": "銃弾痕",
+      "case_other": "その他の物証",
+      "check": "特殊物証",
+      "chelunhenji_o": "車輪痕",
+      "chuang": "窓",
+      "corpse": "死体",
+      "cube": "採取物品",
+      "danke_o": "薬莢",
+      "dantou_o": "弾頭",
+      "electronic": "電子物証",
+      "folder_close": "文書証拠",
+      "footprint": "足跡痕",
+      "handprint": "手形痕",
+      "loudao": "廊下",
+      "luodichuang": "掃出し窓",
+      "men_l": "開き戸",
+      "physics_and_chemistry": "理化学物証",
+      "piaochuang": "出窓",
+      "poison": "毒物証拠",
+      "shitib_o": "死体背面",
+      "shitifuhao_o": "死体",
+      "shitiz_o": "死体正面",
+      "shouqiang_o": "拳銃",
+      "shuangkaimen": "両開きドア",
+      "video": "視聴覚物証",
+      "virus": "生物物証",
+      "wrenchAndScrewdriver": "工具痕",
+      "xieyin_o": "靴跡",
+      "xueji_o": "血迹",
+      "xuepo_o": "血だまり",
+      "yakou": "開口部",
+      "yandao": "煙道",
+      "yimen": "引き戸",
+      "youzuji_o": "足跡",
+      "zhiwen_o": "手形",
+      "zhuzi": "柱",
+      "zuozuji_o": "足跡"
+    },
+    "search": "凡例検索",
+    "undata": "一致する結果がありません"
+  },
+  "mark": {
+    "name": "注釈"
+  },
+  "overview": {
+    "name": "作図"
+  },
+  "res": {
+    "code": {
+      "404": "ネットワーク異常",
+      "500": "サーバー異常",
+      "6012": "操作権限がありません",
+      "8032": "作図が存在しません",
+      "8035": "保存先パスが使用できません。設定/ファイル管理で元データの最新パスを変更してから再試行してください。"
+    }
+  },
+  "scene": {
+    "cloud": "点群シーン",
+    "fuse": "融合シーン",
+    "mesh": "メッシュシーン"
+  },
+  "shape": {
+    "arrow": {
+      "name": "矢印"
+    },
+    "circle": {
+      "name": "円"
+    },
+    "group": {
+      "name": "グループ"
+    },
+    "icon": {
+      "name": "凡例"
+    },
+    "image": {
+      "name": "画像"
+    },
+    "line": {
+      "addPoint": "点追加",
+      "name": "線分"
+    },
+    "lineIcon": {
+      "name": "線分凡例",
+      "rever": "反転"
+    },
+    "polygon": {
+      "name": "多角形",
+      "penEdit": "ペン編集"
+    },
+    "polygon1": {
+      "name": "連続線分"
+    },
+    "rect": {
+      "name": "長方形"
+    },
+    "serial": {
+      "diff": "数値",
+      "head1": "番号",
+      "head2": "説明",
+      "name": "連番",
+      "tableTitle": "図示"
+    },
+    "table": {
+      "addCol": "列挿入",
+      "addRow": "行挿入",
+      "delCol": "列削除",
+      "delRow": "行削除",
+      "name": "表"
+    },
+    "text": {
+      "name": "テキスト"
+    },
+    "triangle": {
+      "name": "三角形"
+    },
+    "wall": {
+      "name": "壁",
+      "strokeWidth": "厚さ"
+    }
+  },
+  "sys": {
+    "action": {
+      "download": {
+        "setting": "エクスポート設定"
+      }
+    },
+    "actions": {
+      "a_adapt": "ビューに合わせる",
+      "clear": "クリア",
+      "download": {
+        "color": "色",
+        "error": "エクスポート失敗",
+        "format": "フォーマット",
+        "grayscale": "白黒",
+        "name": "エクスポート",
+        "raw": "カラー",
+        "success": "エクスポート成功"
+      },
+      "draw": {
+        "name": "描画",
+        "text": "テキスト"
+      },
+      "floor": {
+        "hide": "ベースマップを隠す",
+        "show": "ベースマップを表示"
+      },
+      "import": {
+        "image": {
+          "maxTip": "画像サイズは100MB以下にしてください"
+        },
+        "local": {
+          "name": "ローカル",
+          "tip": "描画パネルで配置位置を選択してください。右クリックでキャンセル"
+        },
+        "map": "地図",
+        "name": "インポート",
+        "scene": "シーン",
+        "tip": "描画パネルで配置位置を選択してください。右クリックでキャンセル"
+      },
+      "paper": {
+        "A3_h": "A3横",
+        "A4_h": "A4横",
+        "name": "用紙"
+      },
+      "redo": "やり直し",
+      "rotate": "キャンバス回転",
+      "undo": "元に戻す"
+    },
+    "alignment": "整列",
+    "cancel": "キャンセル",
+    "color": "色",
+    "copy": "コピー",
+    "defTitle": "平面図",
+    "del": "削除",
+    "enter": "OK",
+    "full": {
+      "exit": "ESCキーで全画面モードを終了できます"
+    },
+    "hide": "非表示",
+    "lang": "言語切替",
+    "length": "長さ",
+    "line": {
+      "strokeWidth": "線幅"
+    },
+    "lock": "ロック",
+    "more": "複数値",
+    "placeholder": {
+      "input": "入力してください",
+      "select": "選択してください"
+    },
+    "save": "保存",
+    "screenshot": {
+      "error": "スクリーンショット保存失敗"
+    },
+    "setting": "{name}設定",
+    "shape": "形状",
+    "similars": "複数実装",
+    "strokeWidth": "太さ",
+    "strokeWidth2": "枠線の太さ",
+    "unlock": "ロック解除",
+    "unproject": "現在のプロジェクト番号は存在しません!",
+    "untoken": "現在のユーザーはログインしていません",
+    "update": "データ更新",
+    "vr": {
+      "dialog": {
+        "floor": "階",
+        "hot": "ホットスポット",
+        "icon": "アイコン",
+        "selectFloor": "階を選択してください",
+        "selectScene": "同期シーンを選択してください",
+        "signage": "案内板",
+        "title": "シーンを選択してください",
+        "traces": "痕跡証拠"
+      }
+    },
+    "zbot": "最背面へ",
+    "ztop": "最前面へ"
+  },
+  "tableTemp": {
+    "th1": "発生日",
+    "th2": "発生場所",
+    "th3": "作図単位",
+    "th4": "作図者",
+    "th5": "作図時間",
+    "title": "「{crimeTimeBegin}」{caseLocation}{caseTypeName}現場平面略図",
+    "title1": "デフォルトタイトル",
+    "title2": "作図説明"
+  },
+  "tabulation": {
+    "name": "製表",
+    "name1": "図面"
+  },
+  "tagging": {
+    "name": "注釈"
+  },
+  "vr": {
+    "fz": "VR補助",
+    "name": "VRパノラマ"
+  }
+}

+ 385 - 0
src/lang/locales/ko.json

@@ -1,2 +1,387 @@
 {
+  "alignment": {
+    "end": {
+      "tip": "캔버스에서 범례에 해당하는 위치에 정렬하세요. (ESC 키로 정렬 종료)"
+    },
+    "start": {
+      "tip": "현재 범례의 위치를 선택하세요. (ESC 키로 정렬 종료)"
+    }
+  },
+  "background": {
+    "map": {
+      "latlng": "위도/경도",
+      "name": "주소"
+    },
+    "setting": {
+      "click": "클릭 위치",
+      "input": {
+        "place": "이름 또는 위도/경도(예: 113.281272,23.117661)를 입력하여 검색",
+        "place1": "예: 39.909187,116.397463",
+        "place2": "{searchName}을(를) 입력하여 검색하세요."
+      },
+      "inputLatLng": "위도/경도 직접 입력",
+      "lat": "위도",
+      "latlng": {
+        "errname": "위도/경도 형식 오류",
+        "errtip": "올바른 위도/경도 형식을 입력하세요.\n위도, 경도 (예: 23.11766,113.28122)\n위도 범위: -90 ~ 90\n경도 범위: -180 ~ 180",
+        "success": "위도/경도 위치 지정 성공"
+      },
+      "lng": "경도",
+      "map": "아맵(Amap) 베이스맵 선택",
+      "name": "베이스맵 설정",
+      "select": "지도 위치 선택",
+      "zoom": "확대/축소 레벨"
+    }
+  },
+  "compass": {
+    "name": "나침반"
+  },
+  "cover": {
+    "fixProportion": "확대/축소 비율",
+    "itemName": "비율",
+    "showProportion": "비율 표시"
+  },
+  "describes": {
+    "align": {
+      "center": "가운데 정렬",
+      "left": "왼쪽 정렬",
+      "name": "정렬 방식",
+      "right": "오른쪽 정렬"
+    },
+    "coverFill": "배경색",
+    "coverOpcatiy": "배경 불투명도",
+    "coverStroke": "배경 테두리 색상",
+    "coverStrokeWidth": "배경 테두리 두께",
+    "dash": "점선 비율",
+    "fill": "채우기 색상",
+    "fontColor": "글자색",
+    "fontSize": "글자 크기",
+    "fontStyle": {
+      "bold": "굵게",
+      "italic": "기울임꼴",
+      "italicBold": "굵은 기울임꼴",
+      "name": "글꼴 스타일",
+      "normal": "기본"
+    },
+    "name": "이름",
+    "opacity": "불투명도",
+    "pointerLength": "화살표 크기",
+    "pointerPosition": {
+      "all": "전체",
+      "end": "끝점",
+      "name": "화살표 방향",
+      "start": "시작점"
+    },
+    "ref": "참조물",
+    "rotate": "회전 각도",
+    "stroke": "테두리 색상",
+    "strokeScaleEnabled": "테두리 두께 확대/축소에 연동",
+    "strokeWidth": "테두리 두께",
+    "zIndex": "레이어 순서"
+  },
+  "icons": {
+    "groups": {
+      "chuang": "창문",
+      "chuwei": "주방/욕실",
+      "goujian": "구성 요소",
+      "henji": "흔적 증거",
+      "huxing": "평면도",
+      "jiaju": "가구",
+      "kecan": "거실/식당",
+      "men": "문",
+      "qita": "기타",
+      "woshi": "침실"
+    },
+    "items": {
+      "AirConditioner": "에어컨 - 원형",
+      "BalconyChair": "발코니 의자",
+      "Bathtub": "욕조",
+      "BedsideCupboard": "침대 협탁",
+      "Cabinet": "수납장",
+      "CabinetB": "욕실 수납장",
+      "Carpet": "카펫",
+      "Chair": "의자",
+      "Closestool": "변기",
+      "CombinationSofa": "조합형 소파",
+      "CornerSofa": "코너 소파 2.7m",
+      "Cupboard": "주방 캐비닛",
+      "CupboardU": "범용 캐비닛",
+      "CurvedSofa": "곡선형 소파 2.2m",
+      "Desk": "책상",
+      "DiningTable": "식탁",
+      "DiningTableC": "식탁 세트",
+      "DiningTableR": "식탁 - 원형",
+      "DiningTableRC": "식탁",
+      "DoubleBed": "더블 침대",
+      "DoubleBedB": "더블 침대 1.8m",
+      "Dresser": "화장대",
+      "Elevator": "엘리베이터",
+      "FridgeD": "냉장고 - 양문형",
+      "FridgeS": "냉장고",
+      "GasStove": "가스레인지",
+      "HangingTV": "TV - 벽걸이형",
+      "MopPool": "걸레 세면대",
+      "Pillow": "쿠션",
+      "Plant": "식물",
+      "Shower": "샤워기",
+      "SideTableR": "사이드 테이블 - 원형",
+      "SideTableS": "사이드 테이블 - 사각형",
+      "SingleBed": "싱글 침대",
+      "SingleSofa": "1인용 소파",
+      "SingleSofaR": "조합형 소파",
+      "SquattingPan": "좌식 변기",
+      "Stool": "벤치",
+      "TV": "TV 장",
+      "Tablelamp": "테이블 램프",
+      "TeaTable": "티 테이블",
+      "TeaTableO": "티 테이블 - 타원형",
+      "TeaTableR": "티 테이블 - 원형",
+      "ThreeSofa": "3인용 소파",
+      "TwoSofa": "2인용 소파 1.8m",
+      "Wardrobe": "옷장",
+      "WashingMachine": "세탁기",
+      "Washstand": "세면대",
+      "WaterChannel": "싱크대",
+      "WaterChannelD": "더블 싱크대",
+      "WaterFountain": "정수기",
+      "buqiang_o": "소총",
+      "cartridge": "탄흔",
+      "case_other": "기타 물증",
+      "check": "특수 물증",
+      "chelunhenji_o": "바퀴 자국",
+      "chuang": "창문",
+      "corpse": "시체",
+      "cube": "추출 품목",
+      "danke_o": "탄피",
+      "dantou_o": "탄두",
+      "electronic": "전자 증거",
+      "folder_close": "문서 증거",
+      "footprint": "발자국 흔적",
+      "handprint": "손자국 흔적",
+      "loudao": "복도",
+      "luodichuang": "바닥까지 내려오는 창문",
+      "men_l": "여닫이문",
+      "physics_and_chemistry": "이화학 증거",
+      "piaochuang": "턱이 있는 창문",
+      "poison": "독물 증거",
+      "shitib_o": "시체 뒷면",
+      "shitifuhao_o": "시체",
+      "shitiz_o": "시체 정면",
+      "shouqiang_o": "권총",
+      "shuangkaimen": "양쪽 여닫이문",
+      "video": "시청각 증거",
+      "virus": "생물 증거",
+      "wrenchAndScrewdriver": "공구 흔적",
+      "xieyin_o": "신발 자국",
+      "xueji_o": "혈흔",
+      "xuepo_o": "고인 혈액",
+      "yakou": "개구부",
+      "yandao": "연도",
+      "yimen": "미닫이문",
+      "youzuji_o": "발자국",
+      "zhiwen_o": "손도장",
+      "zhuzi": "기둥",
+      "zuozuji_o": "발자국"
+    },
+    "search": "범례 검색",
+    "undata": "일치하는 결과 없음"
+  },
+  "mark": {
+    "name": "주석"
+  },
+  "overview": {
+    "name": "그리기"
+  },
+  "res": {
+    "code": {
+      "404": "네트워크 오류",
+      "500": "서버 오류",
+      "6012": "작업 권한 없음",
+      "8032": "그림이 존재하지 않음",
+      "8035": "저장 경로를 사용할 수 없습니다. 설정/파일 관리에서 원본 데이터의 최신 경로를 변경한 후 다시 시도하십시오."
+    }
+  },
+  "scene": {
+    "cloud": "포인트 클라우드 장면",
+    "fuse": "융합 장면",
+    "mesh": "메시 장면"
+  },
+  "shape": {
+    "arrow": {
+      "name": "화살표"
+    },
+    "circle": {
+      "name": "원"
+    },
+    "group": {
+      "name": "그룹"
+    },
+    "icon": {
+      "name": "범례"
+    },
+    "image": {
+      "name": "이미지"
+    },
+    "line": {
+      "addPoint": "점 추가",
+      "name": "선분"
+    },
+    "lineIcon": {
+      "name": "선분 범례",
+      "rever": "뒤집기"
+    },
+    "polygon": {
+      "name": "다각형",
+      "penEdit": "펜 편집"
+    },
+    "polygon1": {
+      "name": "연속 선분"
+    },
+    "rect": {
+      "name": "사각형"
+    },
+    "serial": {
+      "diff": "숫자",
+      "head1": "번호",
+      "head2": "설명",
+      "name": "일련 번호",
+      "tableTitle": "그림 설명"
+    },
+    "table": {
+      "addCol": "열 삽입",
+      "addRow": "행 삽입",
+      "delCol": "열 삭제",
+      "delRow": "행 삭제",
+      "name": "표"
+    },
+    "text": {
+      "name": "텍스트"
+    },
+    "triangle": {
+      "name": "삼각형"
+    },
+    "wall": {
+      "name": "벽",
+      "strokeWidth": "두께"
+    }
+  },
+  "sys": {
+    "action": {
+      "download": {
+        "setting": "내보내기 설정"
+      }
+    },
+    "actions": {
+      "a_adapt": "보기에 맞추기",
+      "clear": "지우기",
+      "download": {
+        "color": "색상",
+        "error": "내보내기 실패",
+        "format": "형식",
+        "grayscale": "흑백",
+        "name": "내보내기",
+        "raw": "컬러",
+        "success": "내보내기 성공"
+      },
+      "draw": {
+        "name": "그리기",
+        "text": "텍스트"
+      },
+      "floor": {
+        "hide": "베이스맵 숨기기",
+        "show": "베이스맵 표시"
+      },
+      "import": {
+        "image": {
+          "maxTip": "이미지 크기는 100MB를 초과할 수 없습니다."
+        },
+        "local": {
+          "name": "로컬",
+          "tip": "그리기 패널에서 배치 위치를 선택하세요. 마우스 오른쪽 버튼으로 취소"
+        },
+        "map": "지도",
+        "name": "가져오기",
+        "scene": "장면",
+        "tip": "그리기 패널에서 배치 위치를 선택하세요. 마우스 오른쪽 버튼으로 취소"
+      },
+      "paper": {
+        "A3_h": "A3 가로",
+        "A4_h": "A4 가로",
+        "name": "용지"
+      },
+      "redo": "재실행",
+      "rotate": "캔버스 회전",
+      "undo": "실행 취소"
+    },
+    "alignment": "정렬",
+    "cancel": "취소",
+    "color": "색상",
+    "copy": "복사",
+    "defTitle": "평면도",
+    "del": "삭제",
+    "enter": "확인",
+    "full": {
+      "exit": "ESC 키를 누르면 전체 화면 모드가 종료됩니다."
+    },
+    "hide": "숨기기",
+    "lang": "언어 전환",
+    "length": "길이",
+    "line": {
+      "strokeWidth": "선 두께"
+    },
+    "lock": "잠금",
+    "more": "다중 값",
+    "placeholder": {
+      "input": "입력하세요",
+      "select": "선택하세요"
+    },
+    "save": "저장",
+    "screenshot": {
+      "error": "스크린샷 저장 실패"
+    },
+    "setting": "{name} 설정",
+    "shape": "도형",
+    "similars": "다중 구현",
+    "strokeWidth": "굵기",
+    "strokeWidth2": "테두리 선 두께",
+    "unlock": "잠금 해제",
+    "unproject": "현재 프로젝트 번호가 존재하지 않습니다!",
+    "untoken": "현재 사용자가 로그인하지 않았습니다.",
+    "update": "데이터 업데이트",
+    "vr": {
+      "dialog": {
+        "floor": "층",
+        "hot": "핫스팟",
+        "icon": "아이콘",
+        "selectFloor": "층을 선택하세요.",
+        "selectScene": "동기화 장면을 선택하세요.",
+        "signage": "안내 표지",
+        "title": "장면을 선택하세요.",
+        "traces": "흔적 증거"
+      }
+    },
+    "zbot": "맨 뒤로 보내기",
+    "ztop": "맨 앞으로 가져오기"
+  },
+  "tableTemp": {
+    "th1": "발생일",
+    "th2": "발생 장소",
+    "th3": "작도 단위",
+    "th4": "작도자",
+    "th5": "작도 시간",
+    "title": "\"{crimeTimeBegin}\" {caseLocation}{caseTypeName} 현장 평면도",
+    "title1": "기본 제목",
+    "title2": "작도 설명"
+  },
+  "tabulation": {
+    "name": "제표",
+    "name1": "도면"
+  },
+  "tagging": {
+    "name": "주석"
+  },
+  "vr": {
+    "fz": "VR 보조",
+    "name": "VR 파노라마"
+  }
 }

+ 385 - 0
src/lang/locales/pt.json

@@ -1,2 +1,387 @@
 {
+  "alignment": {
+    "end": {
+      "tip": "Por favor, alinhe com a legenda no painel (pressione ESC para sair do alinhamento)"
+    },
+    "start": {
+      "tip": "Por favor, selecione uma posição para a legenda atual (pressione ESC para sair do alinhamento)"
+    }
+  },
+  "background": {
+    "map": {
+      "latlng": "Latitude/Longitude",
+      "name": "Endereço"
+    },
+    "setting": {
+      "click": "Posição do clique",
+      "input": {
+        "place": "Digite o nome ou latitude/longitude (ex. 113.281272,23.117661) para pesquisar",
+        "place1": "ex. 39.909187,116.397463",
+        "place2": "Por favor, digite {searchName} para pesquisar"
+      },
+      "inputLatLng": "Digite latitude/longitude diretamente",
+      "lat": "Latitude",
+      "latlng": {
+        "errname": "Formato de latitude/longitude inválido",
+        "errtip": "Por favor, digite um formato válido de latitude/longitude\nLatitude, Longitude (ex. 23.11766,113.28122)\nFaixa de latitude: -90 a 90\nFaixa de longitude: -180 a 180",
+        "success": "Localização por latitude/longitude bem-sucedida"
+      },
+      "lng": "Longitude",
+      "map": "Selecionar mapa base do AMap",
+      "name": "Configurações do mapa base",
+      "select": "Selecionar localização no mapa",
+      "zoom": "Nível de zoom"
+    }
+  },
+  "compass": {
+    "name": "Bússola"
+  },
+  "cover": {
+    "fixProportion": "Proporção de escala",
+    "itemName": "Escala",
+    "showProportion": "Mostrar escala"
+  },
+  "describes": {
+    "align": {
+      "center": "Alinhar ao centro",
+      "left": "Alinhar à esquerda",
+      "name": "Alinhamento",
+      "right": "Alinhar à direita"
+    },
+    "coverFill": "Cor de fundo",
+    "coverOpcatiy": "Opacidade do fundo",
+    "coverStroke": "Cor da borda de fundo",
+    "coverStrokeWidth": "Espessura da borda de fundo",
+    "dash": "Proporção de tracejado",
+    "fill": "Cor de preenchimento",
+    "fontColor": "Cor do texto",
+    "fontSize": "Tamanho da fonte",
+    "fontStyle": {
+      "bold": "Negrito",
+      "italic": "Itálico",
+      "italicBold": "Negrito itálico",
+      "name": "Estilo da fonte",
+      "normal": "Normal"
+    },
+    "name": "Nome",
+    "opacity": "Opacidade",
+    "pointerLength": "Tamanho da seta",
+    "pointerPosition": {
+      "all": "Todos",
+      "end": "Fim",
+      "name": "Direção da seta",
+      "start": "Início"
+    },
+    "ref": "Referência",
+    "rotate": "Ângulo de rotação",
+    "stroke": "Cor da borda",
+    "strokeScaleEnabled": "Espessura da borda escala com zoom",
+    "strokeWidth": "Espessura da borda",
+    "zIndex": "Índice Z"
+  },
+  "icons": {
+    "groups": {
+      "chuang": "Janelas",
+      "chuwei": "Cozinha e banheiro",
+      "goujian": "Componentes",
+      "henji": "Evidências de vestígios",
+      "huxing": "Planta baixa",
+      "jiaju": "Móveis",
+      "kecan": "Sala de estar e jantar",
+      "men": "Portas",
+      "qita": "Outros",
+      "woshi": "Quarto"
+    },
+    "items": {
+      "AirConditioner": "Ar condicionado - Redondo",
+      "BalconyChair": "Cadeira de varanda",
+      "Bathtub": "Banheira",
+      "BedsideCupboard": "Criado-mudo",
+      "Cabinet": "Armário",
+      "CabinetB": "Armário de banheiro",
+      "Carpet": "Tapete",
+      "Chair": "Cadeira",
+      "Closestool": "Vaso sanitário",
+      "CombinationSofa": "Sofá modular",
+      "CornerSofa": "Sofá de canto 2,7m",
+      "Cupboard": "Armário de cozinha",
+      "CupboardU": "Armário universal",
+      "CurvedSofa": "Sofá curvo 2,2m",
+      "Desk": "Mesa de escritório",
+      "DiningTable": "Mesa de jantar",
+      "DiningTableC": "Mesa de jantar com cadeiras",
+      "DiningTableR": "Mesa de jantar - Redonda",
+      "DiningTableRC": "Mesa de jantar",
+      "DoubleBed": "Cama de casal",
+      "DoubleBedB": "Cama de casal 1,8m",
+      "Dresser": "Penteadeira",
+      "Elevator": "Elevador",
+      "FridgeD": "Geladeira - Duas portas",
+      "FridgeS": "Geladeira",
+      "GasStove": "Fogão a gás",
+      "HangingTV": "TV - Montada na parede",
+      "MopPool": "Tanque de esfregão",
+      "Pillow": "Almofada",
+      "Plant": "Planta",
+      "Shower": "Chuveiro",
+      "SideTableR": "Mesa lateral - Redonda",
+      "SideTableS": "Mesa lateral - Quadrada",
+      "SingleBed": "Cama de solteiro",
+      "SingleSofa": "Sofá de um lugar",
+      "SingleSofaR": "Sofá modular",
+      "SquattingPan": "Vaso sanitário de cócoras",
+      "Stool": "Banco",
+      "TV": "Suporte para TV",
+      "Tablelamp": "Abajur",
+      "TeaTable": "Mesa de centro",
+      "TeaTableO": "Mesa de centro - Oval",
+      "TeaTableR": "Mesa de centro - Redonda",
+      "ThreeSofa": "Sofá de três lugares",
+      "TwoSofa": "Sofá de dois lugares 1,8m",
+      "Wardrobe": "Guarda-roupa",
+      "WashingMachine": "Máquina de lavar",
+      "Washstand": "Pia",
+      "WaterChannel": "Cuba",
+      "WaterChannelD": "Cuba dupla",
+      "WaterFountain": "Bebedouro",
+      "buqiang_o": "Rifle",
+      "cartridge": "Vestígio de projétil",
+      "case_other": "Outras evidências materiais",
+      "check": "Evidência especial",
+      "chelunhenji_o": "Marca de pneu",
+      "chuang": "Janela",
+      "corpse": "Cadáver",
+      "cube": "Item extraído",
+      "danke_o": "Estojo de bala",
+      "dantou_o": "Projétil",
+      "electronic": "Evidência eletrônica",
+      "folder_close": "Evidência documental",
+      "footprint": "Vestígio de pegada",
+      "handprint": "Vestígio de impressão digital",
+      "loudao": "Corredor",
+      "luodichuang": "Janela de chão",
+      "men_l": "Porta aberta",
+      "physics_and_chemistry": "Evidência físico-química",
+      "piaochuang": "Janela saliente",
+      "poison": "Evidência de veneno",
+      "shitib_o": "Cadáver (costas)",
+      "shitifuhao_o": "Cadáver",
+      "shitiz_o": "Cadáver (frente)",
+      "shouqiang_o": "Pistola",
+      "shuangkaimen": "Porta dupla",
+      "video": "Evidência audiovisual",
+      "virus": "Evidência biológica",
+      "wrenchAndScrewdriver": "Vestígio de ferramenta",
+      "xieyin_o": "Marca de sapato",
+      "xueji_o": "Mancha de sangue",
+      "xuepo_o": "Poça de sangue",
+      "yakou": "Vão",
+      "yandao": "Duto de fumaça",
+      "yimen": "Porta de correr",
+      "youzuji_o": "Pegada",
+      "zhiwen_o": "Impressão digital",
+      "zhuzi": "Pilar",
+      "zuozuji_o": "Pegada"
+    },
+    "search": "Pesquisar legenda",
+    "undata": "Nenhum resultado encontrado"
+  },
+  "mark": {
+    "name": "Anotação"
+  },
+  "overview": {
+    "name": "Desenho"
+  },
+  "res": {
+    "code": {
+      "404": "Erro de rede",
+      "500": "Erro de servidor",
+      "6012": "Operação não autorizada",
+      "8032": "Desenho não existe",
+      "8035": "Caminho de armazenamento indisponível. Acesse Configurações/Gerenciamento de arquivos para alterar o caminho dos dados originais e tente novamente."
+    }
+  },
+  "scene": {
+    "cloud": "Cena de nuvem de pontos",
+    "fuse": "Cena fundida",
+    "mesh": "Cena de malha"
+  },
+  "shape": {
+    "arrow": {
+      "name": "Seta"
+    },
+    "circle": {
+      "name": "Círculo"
+    },
+    "group": {
+      "name": "Grupo"
+    },
+    "icon": {
+      "name": "Legenda"
+    },
+    "image": {
+      "name": "Imagem"
+    },
+    "line": {
+      "addPoint": "Adicionar ponto",
+      "name": "Linha"
+    },
+    "lineIcon": {
+      "name": "Legenda de linha",
+      "rever": "Inverter"
+    },
+    "polygon": {
+      "name": "Polígono",
+      "penEdit": "Edição com caneta"
+    },
+    "polygon1": {
+      "name": "Polilinha"
+    },
+    "rect": {
+      "name": "Retângulo"
+    },
+    "serial": {
+      "diff": "Valor",
+      "head1": "Nº",
+      "head2": "Descrição",
+      "name": "Número de série",
+      "tableTitle": "Ilustração"
+    },
+    "table": {
+      "addCol": "Inserir coluna",
+      "addRow": "Inserir linha",
+      "delCol": "Excluir coluna",
+      "delRow": "Excluir linha",
+      "name": "Tabela"
+    },
+    "text": {
+      "name": "Texto"
+    },
+    "triangle": {
+      "name": "Triângulo"
+    },
+    "wall": {
+      "name": "Parede",
+      "strokeWidth": "Espessura"
+    }
+  },
+  "sys": {
+    "action": {
+      "download": {
+        "setting": "Configurações de exportação"
+      }
+    },
+    "actions": {
+      "a_adapt": "Ajustar à visualização",
+      "clear": "Limpar",
+      "download": {
+        "color": "Cor",
+        "error": "Falha na exportação",
+        "format": "Formato",
+        "grayscale": "Preto e branco",
+        "name": "Exportar",
+        "raw": "Colorido",
+        "success": "Exportação bem-sucedida"
+      },
+      "draw": {
+        "name": "Desenhar",
+        "text": "Texto"
+      },
+      "floor": {
+        "hide": "Ocultar mapa base",
+        "show": "Mostrar mapa base"
+      },
+      "import": {
+        "image": {
+          "maxTip": "O tamanho da imagem não pode exceder 100MB"
+        },
+        "local": {
+          "name": "Local",
+          "tip": "Selecione a posição no painel de desenho, clique com o botão direito para cancelar"
+        },
+        "map": "Mapa",
+        "name": "Importar",
+        "scene": "Cena",
+        "tip": "Selecione a posição no painel de desenho, clique com o botão direito para cancelar"
+      },
+      "paper": {
+        "A3_h": "A3 paisagem",
+        "A4_h": "A4 paisagem",
+        "name": "Papel"
+      },
+      "redo": "Refazer",
+      "rotate": "Girar tela",
+      "undo": "Desfazer"
+    },
+    "alignment": "Alinhamento",
+    "cancel": "Cancelar",
+    "color": "Cor",
+    "copy": "Copiar",
+    "defTitle": "Planta baixa",
+    "del": "Excluir",
+    "enter": "OK",
+    "full": {
+      "exit": "Pressione ESC para sair do modo tela cheia"
+    },
+    "hide": "Ocultar",
+    "lang": "Alternar idioma",
+    "length": "Comprimento",
+    "line": {
+      "strokeWidth": "Largura da linha"
+    },
+    "lock": "Bloquear",
+    "more": "Múltiplos valores",
+    "placeholder": {
+      "input": "Por favor, insira",
+      "select": "Selecionar"
+    },
+    "save": "Salvar",
+    "screenshot": {
+      "error": "Falha ao salvar captura de tela"
+    },
+    "setting": "Configurações {name}",
+    "shape": "Forma",
+    "similars": "Múltiplas implementações",
+    "strokeWidth": "Espessura",
+    "strokeWidth2": "Largura da borda",
+    "unlock": "Desbloquear",
+    "unproject": "Número do projeto atual não existe!",
+    "untoken": "Usuário atual não está logado",
+    "update": "Atualizar dados",
+    "vr": {
+      "dialog": {
+        "floor": "Andar",
+        "hot": "Ponto de interesse",
+        "icon": "Legenda",
+        "selectFloor": "Selecione o andar",
+        "selectScene": "Selecione a cena de sincronização",
+        "signage": "Placa de sinalização",
+        "title": "Selecione a cena",
+        "traces": "Evidências de vestígios"
+      }
+    },
+    "zbot": "Enviar para o fundo",
+    "ztop": "Trazer para a frente"
+  },
+  "tableTemp": {
+    "th1": "Data do incidente",
+    "th2": "Local do incidente",
+    "th3": "Unidade de desenho",
+    "th4": "Desenhista",
+    "th5": "Hora do desenho",
+    "title": "Esboço da cena \"{crimeTimeBegin}\" {caseLocation}{caseTypeName}",
+    "title1": "Título padrão",
+    "title2": "Descrição do desenho"
+  },
+  "tabulation": {
+    "name": "Tabulação",
+    "name1": "Desenho técnico"
+  },
+  "tagging": {
+    "name": "Marcação"
+  },
+  "vr": {
+    "fz": "Auxiliar VR",
+    "name": "Panorama VR"
+  }
 }

+ 385 - 0
src/lang/locales/ru.json

@@ -1,2 +1,387 @@
 {
+  "alignment": {
+    "end": {
+      "tip": "Пожалуйста, выровняйте по соответствующей позиции легенды на холсте (нажмите ESC для выхода из режима выравнивания)"
+    },
+    "start": {
+      "tip": "Пожалуйста, выберите позицию для текущей легенды (нажмите ESC для выхода из режима выравнивания)"
+    }
+  },
+  "background": {
+    "map": {
+      "latlng": "Широта/Долгота",
+      "name": "Адрес"
+    },
+    "setting": {
+      "click": "Позиция щелчка",
+      "input": {
+        "place": "Введите название или координаты (например, 113.281272,23.117661) для поиска",
+        "place1": "например, 39.909187,116.397463",
+        "place2": "Пожалуйста, введите {searchName} для поиска"
+      },
+      "inputLatLng": "Введите координаты напрямую",
+      "lat": "Широта",
+      "latlng": {
+        "errname": "Неверный формат координат",
+        "errtip": "Пожалуйста, введите координаты в правильном формате\nШирота, Долгота (например, 23.11766,113.28122)\nДиапазон широты: от -90 до 90\nДиапазон долготы: от -180 до 180",
+        "success": "Координаты успешно определены"
+      },
+      "lng": "Долгота",
+      "map": "Выбрать базовую карту AMap",
+      "name": "Настройки базовой карты",
+      "select": "Выбрать местоположение на карте",
+      "zoom": "Уровень масштабирования"
+    }
+  },
+  "compass": {
+    "name": "Компас"
+  },
+  "cover": {
+    "fixProportion": "Масштаб",
+    "itemName": "Масштаб",
+    "showProportion": "Показать масштаб"
+  },
+  "describes": {
+    "align": {
+      "center": "По центру",
+      "left": "По левому краю",
+      "name": "Выравнивание",
+      "right": "По правому краю"
+    },
+    "coverFill": "Цвет фона",
+    "coverOpcatiy": "Непрозрачность фона",
+    "coverStroke": "Цвет границы фона",
+    "coverStrokeWidth": "Толщина границы фона",
+    "dash": "Штриховка",
+    "fill": "Цвет заливки",
+    "fontColor": "Цвет текста",
+    "fontSize": "Размер шрифта",
+    "fontStyle": {
+      "bold": "Жирный",
+      "italic": "Курсив",
+      "italicBold": "Жирный курсив",
+      "name": "Стиль шрифта",
+      "normal": "Обычный"
+    },
+    "name": "Название",
+    "opacity": "Непрозрачность",
+    "pointerLength": "Размер стрелки",
+    "pointerPosition": {
+      "all": "Все",
+      "end": "Конец",
+      "name": "Направление стрелки",
+      "start": "Начало"
+    },
+    "ref": "Ориентир",
+    "rotate": "Угол поворота",
+    "stroke": "Цвет обводки",
+    "strokeScaleEnabled": "Масштабировать толщину обводки",
+    "strokeWidth": "Толщина обводки",
+    "zIndex": "Z-индекс"
+  },
+  "icons": {
+    "groups": {
+      "chuang": "Окна",
+      "chuwei": "Кухня и ванная",
+      "goujian": "Элементы",
+      "henji": "Следы и вещественные доказательства",
+      "huxing": "Планировка",
+      "jiaju": "Мебель",
+      "kecan": "Гостиная и столовая",
+      "men": "Двери",
+      "qita": "Другое",
+      "woshi": "Спальня"
+    },
+    "items": {
+      "AirConditioner": "Кондиционер - круглый",
+      "BalconyChair": "Балконный стул",
+      "Bathtub": "Ванна",
+      "BedsideCupboard": "Прикроватная тумба",
+      "Cabinet": "Шкаф",
+      "CabinetB": "Тумба под раковину",
+      "Carpet": "Ковёр",
+      "Chair": "Стул",
+      "Closestool": "Унитаз",
+      "CombinationSofa": "Модульный диван",
+      "CornerSofa": "Угловой диван 2,7 м",
+      "Cupboard": "Кухонный шкаф",
+      "CupboardU": "Универсальный шкаф",
+      "CurvedSofa": "Изогнутый диван 2,2 м",
+      "Desk": "Письменный стол",
+      "DiningTable": "Обеденный стол",
+      "DiningTableC": "Обеденный стол со стульями",
+      "DiningTableR": "Обеденный стол - круглый",
+      "DiningTableRC": "Обеденный стол",
+      "DoubleBed": "Двуспальная кровать",
+      "DoubleBedB": "Двуспальная кровать 1,8 м",
+      "Dresser": "Туалетный столик",
+      "Elevator": "Лифт",
+      "FridgeD": "Холодильник - двухдверный",
+      "FridgeS": "Холодильник",
+      "GasStove": "Газовая плита",
+      "HangingTV": "Телевизор - настенный",
+      "MopPool": "Раковина для швабры",
+      "Pillow": "Подушка",
+      "Plant": "Растение",
+      "Shower": "Душ",
+      "SideTableR": "Журнальный столик - круглый",
+      "SideTableS": "Журнальный столик - квадратный",
+      "SingleBed": "Односпальная кровать",
+      "SingleSofa": "Одно местный диван",
+      "SingleSofaR": "Модульный диван",
+      "SquattingPan": "Напольный унитаз",
+      "Stool": "Скамья",
+      "TV": "Тумба под телевизор",
+      "Tablelamp": "Настольная лампа",
+      "TeaTable": "Журнальный столик",
+      "TeaTableO": "Журнальный столик - овальный",
+      "TeaTableR": "Журнальный столик - круглый",
+      "ThreeSofa": "Трехместный диван",
+      "TwoSofa": "Двухместный диван 1,8 м",
+      "Wardrobe": "Гардероб",
+      "WashingMachine": "Стиральная машина",
+      "Washstand": "Умывальник",
+      "WaterChannel": "Мойка",
+      "WaterChannelD": "Двойная мойка",
+      "WaterFountain": "Кулер для воды",
+      "buqiang_o": "Винтовка",
+      "cartridge": "След от пули",
+      "case_other": "Другие вещественные доказательства",
+      "check": "Особые вещественные доказательства",
+      "chelunhenji_o": "След от колеса",
+      "chuang": "Окно",
+      "corpse": "Труп",
+      "cube": "Изъятый предмет",
+      "danke_o": "Гильза",
+      "dantou_o": "Пуля",
+      "electronic": "Электронные доказательства",
+      "folder_close": "Документальные доказательства",
+      "footprint": "След обуви",
+      "handprint": "След руки",
+      "loudao": "Коридор",
+      "luodichuang": "Панорамное окно",
+      "men_l": "Открытая дверь",
+      "physics_and_chemistry": "Физико-химические доказательства",
+      "piaochuang": "Эркерное окно",
+      "poison": "Отравляющие вещества",
+      "shitib_o": "Труп (спина)",
+      "shitifuhao_o": "Труп",
+      "shitiz_o": "Труп (спереди)",
+      "shouqiang_o": "Пистолет",
+      "shuangkaimen": "Двустворчатая дверь",
+      "video": "Аудиовизуальные доказательства",
+      "virus": "Биологические доказательства",
+      "wrenchAndScrewdriver": "Следы инструментов",
+      "xieyin_o": "Отпечаток обуви",
+      "xueji_o": "След крови",
+      "xuepo_o": "Лужа крови",
+      "yakou": "Проём",
+      "yandao": "Дымоход",
+      "yimen": "Раздвижная дверь",
+      "youzuji_o": "След",
+      "zhiwen_o": "Отпечаток пальца",
+      "zhuzi": "Колонна",
+      "zuozuji_o": "След"
+    },
+    "search": "Поиск легенды",
+    "undata": "Совпадений не найдено"
+  },
+  "mark": {
+    "name": "Примечание"
+  },
+  "overview": {
+    "name": "Рисование"
+  },
+  "res": {
+    "code": {
+      "404": "Ошибка сети",
+      "500": "Ошибка сервера",
+      "6012": "Нет прав на выполнение операции",
+      "8032": "Рисунок не существует",
+      "8035": "Путь хранения недоступен. Пожалуйста, перейдите в Настройки/Управление файлами, чтобы изменить путь к исходным данным, и повторите попытку."
+    }
+  },
+  "scene": {
+    "cloud": "Облако точек",
+    "fuse": "Объединённая сцена",
+    "mesh": "Меш-сцена"
+  },
+  "shape": {
+    "arrow": {
+      "name": "Стрелка"
+    },
+    "circle": {
+      "name": "Круг"
+    },
+    "group": {
+      "name": "Группа"
+    },
+    "icon": {
+      "name": "Легенда"
+    },
+    "image": {
+      "name": "Изображение"
+    },
+    "line": {
+      "addPoint": "Добавить точку",
+      "name": "Линия"
+    },
+    "lineIcon": {
+      "name": "Легенда линии",
+      "rever": "Перевернуть"
+    },
+    "polygon": {
+      "name": "Многоугольник",
+      "penEdit": "Редактирование пером"
+    },
+    "polygon1": {
+      "name": "Ломаная линия"
+    },
+    "rect": {
+      "name": "Прямоугольник"
+    },
+    "serial": {
+      "diff": "Значение",
+      "head1": "№",
+      "head2": "Описание",
+      "name": "Серийный номер",
+      "tableTitle": "Иллюстрация"
+    },
+    "table": {
+      "addCol": "Вставить столбец",
+      "addRow": "Вставить строку",
+      "delCol": "Удалить столбец",
+      "delRow": "Удалить строку",
+      "name": "Таблица"
+    },
+    "text": {
+      "name": "Текст"
+    },
+    "triangle": {
+      "name": "Треугольник"
+    },
+    "wall": {
+      "name": "Стена",
+      "strokeWidth": "Толщина"
+    }
+  },
+  "sys": {
+    "action": {
+      "download": {
+        "setting": "Настройки экспорта"
+      }
+    },
+    "actions": {
+      "a_adapt": "Подогнать под вид",
+      "clear": "Очистить",
+      "download": {
+        "color": "Цвет",
+        "error": "Ошибка экспорта",
+        "format": "Формат",
+        "grayscale": "Чёрно-белый",
+        "name": "Экспорт",
+        "raw": "Цветной",
+        "success": "Экспорт выполнен успешно"
+      },
+      "draw": {
+        "name": "Рисовать",
+        "text": "Текст"
+      },
+      "floor": {
+        "hide": "Скрыть базовую карту",
+        "show": "Показать базовую карту"
+      },
+      "import": {
+        "image": {
+          "maxTip": "Размер изображения не должен превышать 100 МБ"
+        },
+        "local": {
+          "name": "Локально",
+          "tip": "Выберите место размещения на панели рисования, щёлкните правой кнопкой мыши для отмены"
+        },
+        "map": "Карта",
+        "name": "Импорт",
+        "scene": "Сцена",
+        "tip": "Выберите место размещения на панели рисования, щёлкните правой кнопкой мыши для отмены"
+      },
+      "paper": {
+        "A3_h": "A3 альбомная",
+        "A4_h": "A4 альбомная",
+        "name": "Бумага"
+      },
+      "redo": "Повторить",
+      "rotate": "Повернуть холст",
+      "undo": "Отменить"
+    },
+    "alignment": "Выравнивание",
+    "cancel": "Отмена",
+    "color": "Цвет",
+    "copy": "Копировать",
+    "defTitle": "План",
+    "del": "Удалить",
+    "enter": "OK",
+    "full": {
+      "exit": "Нажмите ESC для выхода из полноэкранного режима"
+    },
+    "hide": "Скрыть",
+    "lang": "Сменить язык",
+    "length": "Длина",
+    "line": {
+      "strokeWidth": "Толщина линии"
+    },
+    "lock": "Заблокировать",
+    "more": "Несколько значений",
+    "placeholder": {
+      "input": "Пожалуйста, введите",
+      "select": "Выберите"
+    },
+    "save": "Сохранить",
+    "screenshot": {
+      "error": "Ошибка сохранения скриншота"
+    },
+    "setting": "Настройки {name}",
+    "shape": "Фигура",
+    "similars": "Несколько реализаций",
+    "strokeWidth": "Толщина",
+    "strokeWidth2": "Толщина обводки",
+    "unlock": "Разблокировать",
+    "unproject": "Текущий номер проекта не существует!",
+    "untoken": "Пользователь не авторизован",
+    "update": "Обновить данные",
+    "vr": {
+      "dialog": {
+        "floor": "Этаж",
+        "hot": "Точка интереса",
+        "icon": "Легенда",
+        "selectFloor": "Выберите этаж",
+        "selectScene": "Выберите сцену для синхронизации",
+        "signage": "Указатель",
+        "title": "Выберите сцену",
+        "traces": "Следы и вещественные доказательства"
+      }
+    },
+    "zbot": "На задний план",
+    "ztop": "На передний план"
+  },
+  "tableTemp": {
+    "th1": "Дата происшествия",
+    "th2": "Место происшествия",
+    "th3": "Подразделение",
+    "th4": "Чертёжник",
+    "th5": "Время создания",
+    "title": "Схема места происшествия \"{crimeTimeBegin}\" {caseLocation}{caseTypeName}",
+    "title1": "Заголовок по умолчанию",
+    "title2": "Описание чертежа"
+  },
+  "tabulation": {
+    "name": "Табуляция",
+    "name1": "Чертёж"
+  },
+  "tagging": {
+    "name": "Маркировка"
+  },
+  "vr": {
+    "fz": "VR-помощник",
+    "name": "VR-панорама"
+  }
 }

+ 385 - 0
src/lang/locales/th.json

@@ -1,2 +1,387 @@
 {
+  "alignment": {
+    "end": {
+      "tip": "โปรดจัดตำแหน่งให้ตรงกับสัญลักษณ์บนกระดานวาด (กด ESC เพื่อออกจากการจัดตำแหน่ง)"
+    },
+    "start": {
+      "tip": "โปรดเลือกตำแหน่งสำหรับสัญลักษณ์ปัจจุบัน (กด ESC เพื่อออกจากการจัดตำแหน่ง)"
+    }
+  },
+  "background": {
+    "map": {
+      "latlng": "ละติจูด/ลองจิจูด",
+      "name": "ที่อยู่"
+    },
+    "setting": {
+      "click": "ตำแหน่งที่คลิก",
+      "input": {
+        "place": "ป้อนชื่อหรือละติจูด/ลองจิจูด (เช่น 113.281272,23.117661) เพื่อค้นหา",
+        "place1": "เช่น 39.909187,116.397463",
+        "place2": "โปรดป้อน {searchName} เพื่อค้นหา"
+      },
+      "inputLatLng": "ป้อนละติจูด/ลองจิจูดโดยตรง",
+      "lat": "ละติจูด",
+      "latlng": {
+        "errname": "รูปแบบละติจูด/ลองจิจูดไม่ถูกต้อง",
+        "errtip": "โปรดป้อนรูปแบบละติจูด/ลองจิจูดที่ถูกต้อง\nละติจูด, ลองจิจูด (เช่น 23.11766,113.28122)\nช่วงละติจูด: -90 ถึง 90\nช่วงลองจิจูด: -180 ถึง 180",
+        "success": "ระบุตำแหน่งละติจูด/ลองจิจูดสำเร็จ"
+      },
+      "lng": "ลองจิจูด",
+      "map": "เลือกแผนที่ฐาน AMap",
+      "name": "การตั้งค่าแผนที่ฐาน",
+      "select": "เลือกตำแหน่งบนแผนที่",
+      "zoom": "ระดับการซูม"
+    }
+  },
+  "compass": {
+    "name": "เข็มทิศ"
+  },
+  "cover": {
+    "fixProportion": "สัดส่วนการซูม",
+    "itemName": "สัดส่วน",
+    "showProportion": "แสดงสัดส่วน"
+  },
+  "describes": {
+    "align": {
+      "center": "จัดกึ่งกลาง",
+      "left": "จัดชิดซ้าย",
+      "name": "การจัดตำแหน่ง",
+      "right": "จัดชิดขวา"
+    },
+    "coverFill": "สีพื้นหลัง",
+    "coverOpcatiy": "ความทึบของพื้นหลัง",
+    "coverStroke": "สีขอบพื้นหลัง",
+    "coverStrokeWidth": "ความหนาของขอบพื้นหลัง",
+    "dash": "สัดส่วนเส้นประ",
+    "fill": "สีเติม",
+    "fontColor": "สีตัวอักษร",
+    "fontSize": "ขนาดตัวอักษร",
+    "fontStyle": {
+      "bold": "ตัวหนา",
+      "italic": "ตัวเอียง",
+      "italicBold": "ตัวหนาเอียง",
+      "name": "รูปแบบตัวอักษร",
+      "normal": "ปกติ"
+    },
+    "name": "ชื่อ",
+    "opacity": "ความทึบ",
+    "pointerLength": "ขนาดลูกศร",
+    "pointerPosition": {
+      "all": "ทั้งหมด",
+      "end": "จุดสิ้นสุด",
+      "name": "ทิศทางลูกศร",
+      "start": "จุดเริ่มต้น"
+    },
+    "ref": "สิ่งอ้างอิง",
+    "rotate": "มุมหมุน",
+    "stroke": "สีขอบ",
+    "strokeScaleEnabled": "ปรับความหนาของขอบตามการซูม",
+    "strokeWidth": "ความหนาของขอบ",
+    "zIndex": "ลำดับชั้น"
+  },
+  "icons": {
+    "groups": {
+      "chuang": "หน้าต่าง",
+      "chuwei": "ห้องครัวและห้องน้ำ",
+      "goujian": "ส่วนประกอบ",
+      "henji": "ร่องรอยหลักฐาน",
+      "huxing": "ผังห้อง",
+      "jiaju": "เฟอร์นิเจอร์",
+      "kecan": "ห้องรับแขกและห้องอาหาร",
+      "men": "ประตู",
+      "qita": "อื่น ๆ",
+      "woshi": "ห้องนอน"
+    },
+    "items": {
+      "AirConditioner": "เครื่องปรับอากาศ - ทรงกลม",
+      "BalconyChair": "เก้าอี้ระเบียง",
+      "Bathtub": "อ่างอาบน้ำ",
+      "BedsideCupboard": "โต๊ะข้างเตียง",
+      "Cabinet": "ตู้",
+      "CabinetB": "ตู้ห้องน้ำ",
+      "Carpet": "พรม",
+      "Chair": "เก้าอี้",
+      "Closestool": "โถส้วม",
+      "CombinationSofa": "โซฟาแบบโมดูลาร์",
+      "CornerSofa": "โซฟาเข้ามุม 2.7 ม.",
+      "Cupboard": "ตู้ครัว",
+      "CupboardU": "ตู้ครัวอเนกประสงค์",
+      "CurvedSofa": "โซฟาโค้ง 2.2 ม.",
+      "Desk": "โต๊ะเขียนหนังสือ",
+      "DiningTable": "โต๊ะอาหาร",
+      "DiningTableC": "โต๊ะอาหารพร้อมเก้าอี้",
+      "DiningTableR": "โต๊ะอาหาร - กลม",
+      "DiningTableRC": "โต๊ะอาหาร",
+      "DoubleBed": "เตียงคู่",
+      "DoubleBedB": "เตียงคู่ 1.8 ม.",
+      "Dresser": "โต๊ะเครื่องแป้ง",
+      "Elevator": "ลิฟต์",
+      "FridgeD": "ตู้เย็น - 2 ประตู",
+      "FridgeS": "ตู้เย็น",
+      "GasStove": "เตาแก๊ส",
+      "HangingTV": "ทีวี - แบบแขวนผนัง",
+      "MopPool": "อ่างล้างไม้ถูพื้น",
+      "Pillow": "หมอนอิง",
+      "Plant": "ต้นไม้",
+      "Shower": "ฝักบัว",
+      "SideTableR": "โต๊ะข้าง - กลม",
+      "SideTableS": "โต๊ะข้าง - เหลี่ยม",
+      "SingleBed": "เตียงเดี่ยว",
+      "SingleSofa": "โซฟาเดี่ยว",
+      "SingleSofaR": "โซฟาแบบโมดูลาร์",
+      "SquattingPan": "โถส้วมแบบนั่งยอง",
+      "Stool": "ม้านั่ง",
+      "TV": "ตู้ทีวี",
+      "Tablelamp": "โคมไฟตั้งโต๊ะ",
+      "TeaTable": "โต๊ะน้ำชา",
+      "TeaTableO": "โต๊ะน้ำชา - วงรี",
+      "TeaTableR": "โต๊ะน้ำชา - กลม",
+      "ThreeSofa": "โซฟา 3 ที่นั่ง",
+      "TwoSofa": "โซฟา 2 ที่นั่ง 1.8 ม.",
+      "Wardrobe": "ตู้เสื้อผ้า",
+      "WashingMachine": "เครื่องซักผ้า",
+      "Washstand": "อ่างล้างหน้า",
+      "WaterChannel": "อ่างล้างจาน",
+      "WaterChannelD": "อ่างล้างจานคู่",
+      "WaterFountain": "เครื่องกรองน้ำ",
+      "buqiang_o": "ปืนยาว",
+      "cartridge": "รอยกระสุน",
+      "case_other": "หลักฐานอื่น ๆ",
+      "check": "หลักฐานพิเศษ",
+      "chelunhenji_o": "รอยล้อ",
+      "chuang": "หน้าต่าง",
+      "corpse": "ศพ",
+      "cube": "สิ่งของที่เก็บได้",
+      "danke_o": "ปลอกกระสุน",
+      "dantou_o": "หัวกระสุน",
+      "electronic": "หลักฐานอิเล็กทรอนิกส์",
+      "folder_close": "หลักฐานเอกสาร",
+      "footprint": "รอยเท้า",
+      "handprint": "รอยมือ",
+      "loudao": "ทางเดิน",
+      "luodichuang": "หน้าต่างบานเลื่อน",
+      "men_l": "ประตูเปิด",
+      "physics_and_chemistry": "หลักฐานทางกายภาพ/เคมี",
+      "piaochuang": "หน้าต่างเบย์",
+      "poison": "หลักฐานสารพิษ",
+      "shitib_o": "ศพ (ด้านหลัง)",
+      "shitifuhao_o": "ศพ",
+      "shitiz_o": "ศพ (ด้านหน้า)",
+      "shouqiang_o": "ปืนพก",
+      "shuangkaimen": "ประตูคู่",
+      "video": "หลักภาพและเสียง",
+      "virus": "หลักฐานทางชีวภาพ",
+      "wrenchAndScrewdriver": "รอยเครื่องมือ",
+      "xieyin_o": "รอยรองเท้า",
+      "xueji_o": "รอยเลือด",
+      "xuepo_o": "แอ่งเลือด",
+      "yakou": "ช่องเปิด",
+      "yandao": "ปล่องควัน",
+      "yimen": "ประตูบานเลื่อน",
+      "youzuji_o": "รอยเท้า",
+      "zhiwen_o": "ลายนิ้วมือ",
+      "zhuzi": "เสา",
+      "zuozuji_o": "รอยเท้า"
+    },
+    "search": "ค้นหาสัญลักษณ์",
+    "undata": "ไม่พบผลลัพธ์ที่ตรงกัน"
+  },
+  "mark": {
+    "name": "หมายเหตุ"
+  },
+  "overview": {
+    "name": "การวาด"
+  },
+  "res": {
+    "code": {
+      "404": "เครือข่ายผิดปกติ",
+      "500": "เซิร์ฟเวอร์ผิดปกติ",
+      "6012": "ไม่มีสิทธิ์ดำเนินการ",
+      "8032": "ไม่มีภาพวาดนี้",
+      "8035": "ไม่สามารถใช้เส้นทางจัดเก็บได้ โปรดไปที่การตั้งค่า/การจัดการไฟล์เพื่อเปลี่ยนเส้นทางข้อมูลต้นฉบับล่าสุดแล้วลองอีกครั้ง"
+    }
+  },
+  "scene": {
+    "cloud": "ฉากจุด clouds",
+    "fuse": "ฉากผสาน",
+    "mesh": "ฉาก Mesh"
+  },
+  "shape": {
+    "arrow": {
+      "name": "ลูกศร"
+    },
+    "circle": {
+      "name": "วงกลม"
+    },
+    "group": {
+      "name": "กลุ่ม"
+    },
+    "icon": {
+      "name": "สัญลักษณ์"
+    },
+    "image": {
+      "name": "รูปภาพ"
+    },
+    "line": {
+      "addPoint": "เพิ่มจุด",
+      "name": "เส้น"
+    },
+    "lineIcon": {
+      "name": "สัญลักษณ์เส้น",
+      "rever": "พลิก"
+    },
+    "polygon": {
+      "name": "รูปหลายเหลี่ยม",
+      "penEdit": "แก้ไขด้วยปากกา"
+    },
+    "polygon1": {
+      "name": "เส้นต่อเนื่อง"
+    },
+    "rect": {
+      "name": "สี่เหลี่ยมผืนผ้า"
+    },
+    "serial": {
+      "diff": "ค่า",
+      "head1": "ลำดับ",
+      "head2": "คำอธิบาย",
+      "name": "หมายเลขลำดับ",
+      "tableTitle": "ภาพประกอบ"
+    },
+    "table": {
+      "addCol": "แทรกคอลัมน์",
+      "addRow": "แทรกแถว",
+      "delCol": "ลบคอลัมน์",
+      "delRow": "ลบแถว",
+      "name": "ตาราง"
+    },
+    "text": {
+      "name": "ข้อความ"
+    },
+    "triangle": {
+      "name": "สามเหลี่ยม"
+    },
+    "wall": {
+      "name": "ผนัง",
+      "strokeWidth": "ความหนา"
+    }
+  },
+  "sys": {
+    "action": {
+      "download": {
+        "setting": "การตั้งค่าการส่งออก"
+      }
+    },
+    "actions": {
+      "a_adapt": "ปรับให้พอดีกับมุมมอง",
+      "clear": "ล้าง",
+      "download": {
+        "color": "สี",
+        "error": "ส่งออกไม่สำเร็จ",
+        "format": "รูปแบบ",
+        "grayscale": "ขาวดำ",
+        "name": "ส่งออก",
+        "raw": "สี",
+        "success": "ส่งออกสำเร็จ"
+      },
+      "draw": {
+        "name": "วาด",
+        "text": "ข้อความ"
+      },
+      "floor": {
+        "hide": "ซ่อนแผนที่ฐาน",
+        "show": "แสดงแผนที่ฐาน"
+      },
+      "import": {
+        "image": {
+          "maxTip": "ขนาดรูปภาพต้องไม่เกิน 100MB"
+        },
+        "local": {
+          "name": "ภายในเครื่อง",
+          "tip": "โปรดเลือกตำแหน่งวางบนแผงวาดภาพ คลิกขวาเพื่อยกเลิก"
+        },
+        "map": "แผนที่",
+        "name": "นำเข้า",
+        "scene": "ฉาก",
+        "tip": "โปรดเลือกตำแหน่งวางบนแผงวาดภาพ คลิกขวาเพื่อยกเลิก"
+      },
+      "paper": {
+        "A3_h": "A3 แนวนอน",
+        "A4_h": "A4 แนวนอน",
+        "name": "กระดาษ"
+      },
+      "redo": "ทำซ้ำ",
+      "rotate": "หมุนผืนผ้าใบ",
+      "undo": "เลิกทำ"
+    },
+    "alignment": "การจัดตำแหน่ง",
+    "cancel": "ยกเลิก",
+    "color": "สี",
+    "copy": "คัดลอก",
+    "defTitle": "ผังพื้น",
+    "del": "ลบ",
+    "enter": "ตกลง",
+    "full": {
+      "exit": "กด ESC เพื่อออกจากโหมดเต็มหน้าจอ"
+    },
+    "hide": "ซ่อน",
+    "lang": "เปลี่ยนภาษา",
+    "length": "ความยาว",
+    "line": {
+      "strokeWidth": "ความกว้างเส้น"
+    },
+    "lock": "ล็อก",
+    "more": "หลายค่า",
+    "placeholder": {
+      "input": "โปรดป้อน",
+      "select": "เลือก"
+    },
+    "save": "บันทึก",
+    "screenshot": {
+      "error": "บันทึกภาพหน้าจอล้มเหลว"
+    },
+    "setting": "การตั้งค่า {name}",
+    "shape": "รูปร่าง",
+    "similars": "การใช้งานหลายแบบ",
+    "strokeWidth": "ความหนา",
+    "strokeWidth2": "ความกว้างเส้นขอบ",
+    "unlock": "ปลดล็อก",
+    "unproject": "ไม่มีหมายเลขโครงการปัจจุบัน!",
+    "untoken": "ผู้ใช้ปัจจุบันยังไม่ได้เข้าสู่ระบบ",
+    "update": "อัปเดตข้อมูล",
+    "vr": {
+      "dialog": {
+        "floor": "ชั้น",
+        "hot": "จุดสนใจ",
+        "icon": "สัญลักษณ์",
+        "selectFloor": "โปรดเลือกชั้น",
+        "selectScene": "โปรดเลือกฉากที่ซิงค์",
+        "signage": "ป้ายบอกทาง",
+        "title": "โปรดเลือกฉาก",
+        "traces": "ร่องรอยหลักฐาน"
+      }
+    },
+    "zbot": "ส่งไปด้านหลัง",
+    "ztop": "นำมาด้านหน้า"
+  },
+  "tableTemp": {
+    "th1": "วันที่เกิดเหตุ",
+    "th2": "สถานที่เกิดเหตุ",
+    "th3": "หน่วยงานที่วาด",
+    "th4": "ผู้วาด",
+    "th5": "เวลาที่วาด",
+    "title": "แผนผังสถานที่เกิดเหตุ \"{crimeTimeBegin}\" {caseLocation}{caseTypeName}",
+    "title1": "ชื่อเริ่มต้น",
+    "title2": "คำอธิบายภาพวาด"
+  },
+  "tabulation": {
+    "name": "การทำตาราง",
+    "name1": "แบบแปลน"
+  },
+  "tagging": {
+    "name": "การติดป้าย"
+  },
+  "vr": {
+    "fz": "ตัวช่วย VR",
+    "name": "ภาพพาโนรามา VR"
+  }
 }