Ver código fonte

feat: 添加国际化配置

bill 6 meses atrás
pai
commit
a2e9fd3234
6 arquivos alterados com 317 adições e 11 exclusões
  1. 311 5
      src/lang/en.ts
  2. 2 2
      src/lang/index.ts
  3. 1 1
      src/main.ts
  4. 1 1
      src/model/platform.ts
  5. 1 1
      src/store/sys.ts
  6. 1 1
      src/views/tagging/sign.vue

+ 311 - 5
src/lang/en.ts

@@ -1,9 +1,315 @@
-
-
 export default {
   resCode: {
     4008: "token已失效",
     4010: "您没有访问权限",
-    0: "请求成功"
-  }
-}
+    0: "请求成功",
+  },
+  security: {
+    name: "安防",
+  },
+  floder: {
+    name: "卷宗",
+    record: "勘验笔录",
+    extractList: "提取清单",
+    photo: "照片制卷",
+  },
+  sys: {
+    search: '搜索',
+    all: '全部',
+    download: '下载',
+    create: '创建',
+    rename: '重命名',
+    edit: '编辑',
+    add: '新增',
+    unSaveMsg: "您有操作未保存,确定要退出吗?",
+    "404Page": "资源不存在或已删除",
+    errPage: "错误页面",
+    list: "数据列表",
+    delConfrm: "确定要删除此数据吗?",
+    del: "删除",
+    quit: "退出",
+    save: "保存",
+    undata: "暂无结果",
+    unSearchData: "暂无搜索结果",
+    addData: "添加数据",
+    ok: "我知道了",
+    serviceErr: "服务出现异常,请稍后再试",
+    other: "其他",
+    crop: "裁剪",
+    imgLoadErr: "图片加载失败",
+    tranCropImg: "请传入裁剪图片",
+    cropIng: "正在裁剪",
+    tip: "提示",
+    enter: "确定",
+    cancel: "取消",
+    upload: {
+      place1: "上传文件",
+      accept: "支持 {accept} 等格式,",
+      normalizeScale: "宽*高比例 {scale},",
+      maxSize: "大小不超过 {sizeStr},",
+      maxLen: "个数不超过 {maxLen}个",
+      conAdd: "继续添加",
+      rep: "替换",
+      previewErr: "预览加载失败!",
+      accErr: "格式错误",
+      accSuperErr: "仅支持{accept}格式文件",
+      scaleErr: "{name}的比例部位不为{scale}",
+      sizeErr: "{name}的大小超过{sizeStr}",
+      lenErr: "最多仅支持{maxLen}个文件!",
+    },
+    placeInput: "请输入",
+    placeSelect: "请选择",
+    unSelect: "暂无选项",
+    unSearch: "无搜索结果",
+    jsError:
+      "内存不足,请勿同时打开多个页面或应用程序,尝试重启浏览器后重新打开。",
+    viewPWD: "访问密码",
+    placPWD: "请输入密码!",
+    pwdErr: "密码错误,请重新输入。",
+  },
+  material: {
+    name: "媒体库",
+    selectCount: "已选择数据",
+    search: "输入名称搜索",
+    uploadSuccess: "上传成功",
+    uploadErr: "上传失败",
+    up: '+从媒体库上传',
+    uploadIng: "上传中",
+    selectErr: "最多选择{count}项",
+    tabs: {
+      name: "名称",
+      format: "格式",
+      size: "大小",
+      status: "状态",
+      group: "分组",
+      action: "操作",
+    },
+  },
+  view: {
+    name: "视图提取",
+    vName: "视图",
+    defName: "视图 {num}",
+    nameErr: "视图名称不可为空",
+    all: '全部视图',
+
+  },
+  guide: {
+    name: "路径",
+    modelErr: "路径所在模型被删除,无法播放",
+    defTitle: "路径{num}",
+    nameErr: "路径名称不可为空",
+    pErr: "路径点不可少于两个",
+
+
+    pathName: '路线({count})',
+    guideName: '导览({count})',
+
+    guide: {
+      name: '导览',
+      add: '添加视角',
+      time: '视频时长',
+      clear: '清空画面',
+      undata: '暂无导览',
+      unItems: '无法保存空路径导览!',
+      delConfirm: '确定要删除此画面吗?',
+      clearConfirm: '确定要清空画面吗?'
+    },
+    path: { 
+      name: '路线' ,
+      title: '路径名称',
+      lineWidth: '路径粗细',
+      lineColor: '路径颜色',
+      showDirection: '路径箭头',
+      reverseDirection: '箭头反向',
+      fontSize: '文字大小',
+      visibilityRange: '可见范围',
+      preview: '预览路径',
+      stop: '停止',
+      pointTitle: '编辑点',
+      pointDesc: '描述',
+      globalVisibility: '全部范围可视',
+      applyConfirm: '确定要将此属性应用到所有位置?'
+    },
+  },
+  measure: {
+    list: '测量列表',
+    name: "测量",
+    area: {
+      desc: "面积",
+      unit: "面积",
+    },
+    free: {
+      desc: "自由",
+      unit: "长度",
+    },
+    vertical: {
+      desc: "垂直",
+      unit: "长度",
+    },
+    nameErr: "测量名称不可为空",
+  },
+  setting: {
+    name: "设置",
+    initView: '初始画面',
+    back: '设置天空',
+    backs: [
+      '无',
+      '地图',
+      '蓝天白云',
+      '乌云密布',
+      '夜空',
+      '傍晚',
+    ]
+  },
+  record: {
+    name: "屏幕录制",
+    vName: "录屏",
+    defName: "讲解视频{num}",
+    nameErr: "视频名称不可为空",
+    start: '开始录制',
+    list: '全部视频',
+    delConfirm: '确定要删除视频吗?',
+    tag: '标签',
+    merge: '合并视频',
+    con: '继续录制',
+    sizeErr: '已超出限制大小无法继续录制,可保存后继续录制!',
+    backHandler: '后台正在处理',
+  },
+  case: {
+    name: "案件信息",
+    tmName: "勘验信息",
+    sn: "案件名称",
+    summary: "案件概要",
+    yv: '是',
+    nv: '否',
+    cols: {
+      caseTitle: "案件名称",
+      caseNum: "立案编号",
+      caseCategory: "案件类别",
+      crimeTime: "案发时间",
+      homicideCase: '是否命案',
+      criminalCase: '是否刑案',
+      caseRegion: '案发区域',
+      caseAddress: '案发地点',
+      latAndLong: '经纬度',
+    },
+    tmCols: {
+      commandTime: "指挥中心电话时间",
+      alarmTime: "报警时间",
+      alarmName: "报警人",
+      assignDept: "指派/报告单位",
+      inquestDept: "现场勘验单位",
+      assignType: "指派方式",
+      inquestAddress: "勘验地点",
+      times: "勘验时间"
+    }
+  },
+  tagging: {
+    list: '标签列表',
+    name: "标签",
+    tabs: {
+      typeId: "特征描述",
+      part: "遗留部位",
+      method: "提取方法",
+      principal: "提取人",
+    },
+    type: {
+      1: "痕迹",
+      2: "手印",
+      3: "足迹",
+      4: "血迹 ",
+      5: "尸体",
+      6: "其他",
+      7: "物证",
+    },
+    style: '图标样式',
+    plcTitle: '请输入标签标题',
+    titleFex: '标题常驻',
+    plcType: '描述:',
+    plcType1: '特征描述:',
+    plcPart: '遗留部位:',
+    plcMethod: '提取方法:',
+    plcPrincipal: '提取人:',
+    mic: '音乐',
+    micPlc: '支持 mp3/wav 格式,≤30MB',
+    media: '图片/视频',
+    pleMedia: '上传图片/视频',
+    plcMedia1: '支持JPG、PNG、MP4等格式,单个不超过100MB,最多支持上传10张。',
+    styleErr: '请选择图标样式!',
+    titleErr: '标签标题必须填写!',
+    pos: '放置',
+    plcPos: '放置位置',
+    posName: '位置',
+    applyConfirm: '确定要将此属性应用到所有位置?',
+    apply: '应用到全部',
+    posErr: '当前位置无法添加',
+    posTip: '请在模型上单击选择标签位置',
+
+    posTabs: {
+      type: '图标放置方式',
+      typeVal: ['悬浮', '贴地/墙'],
+      scale: '图标大小',
+      rotation: '旋转图标',
+      fontSize: '文字大小',
+      lineHeight: '引线高度',
+      visibilityRange: '可见范围',
+      globalVisibility: '全部范围可视',
+    }
+  },
+  scene: {
+    list: "场景列表",
+    manage: "场景管理",
+    add: "添加场景",
+    tabs: {
+      name: "名称",
+      type: "类型",
+      createTime: "拍摄/创建时间",
+    },
+    typeRaws: {
+      0: "Mesh场景",
+      1: "Mesh场景",
+      2: "点云场景",
+      4: "Mesh场景",
+      5: "点云场景",
+      6: "Mesh场景",
+      7: "Mesh场景",
+    },
+    types: {
+      0: "四维看看/Mesh",
+      1: "四维看见/Mesh",
+      2: "四维深时/点云",
+      3: "媒体库",
+      4: "四维深时/Mesh",
+      5: "四维深光/点云",
+      6: "四维深光/Mesh",
+      7: "圆周率/Mesh",
+    },
+  },
+  fuse: {
+    name: "多元融合",
+    label: '融合场景',
+    join: "拼接",
+    unModel: '模型不存在!',
+    model: "三维模型",
+    pano: "全景图",
+    dataQue: "数据来源",
+    dataSize: "数据大小",
+    dataTime: "拍摄时间",
+    sync: "同屏勘验",
+    syncErr: "带看仅支持{types}类型场景,请添加此类型场景。",
+    repScale: '等比缩放',
+    setScale: '设置比例',
+    opacity: '模型不透明度',
+    registration: '配准',
+    def: '恢复默认',
+    move: '移动',
+    flip: '旋转',
+    defConfirm: '确定恢复默认?此操作无法撤销',
+    len: '长度',
+    reSelect: '重新选点',
+    selectTip: '请选择两点标记一段已知长度,并输入真实长度',
+    vre: '请在当前窗口调整水平方向位置',
+    hre: '请在当前窗口调整垂直方向位置',
+    opacity1: '透明度'
+  },
+};

+ 2 - 2
src/lang/index.ts

@@ -1,7 +1,7 @@
 import { createI18n, I18n as BaseI18n } from 'vue-i18n'
 import { App, WritableComputedRef } from 'vue'
 import { localGetFactory, localSetFactory } from '@/utils/store'
-import { paramsToStr, strToParams } from '@/utils'
+import { paramsToStr, strToParams } from '@/utils/params'
 import zh from './zh'
 import en from './en'
 
@@ -83,7 +83,7 @@ i18n.global.changeLang = (lang: langNameEum, reload = true) => {
 }
 
 export const setupI18n = (app: App) => {
-  app.config.globalProperties.$t = i18n.global.t
+  window.$t = app.config.globalProperties.$t = i18n.global.t
   app.use(i18n)
 }
 export const changeLang = i18n.global.changeLang

+ 1 - 1
src/main.ts

@@ -1,3 +1,4 @@
+import { setupI18n } from "./lang";
 import { createApp, watchEffect } from "vue";
 import "./style.scss";
 import App from "./app.vue";
@@ -9,7 +10,6 @@ import { currentLayout, RoutesName } from "./router";
 import * as URL from "@/api/constant";
 // import 'ant-design-vue/dist/reset.css';
 import "@/assets/style/global.less";
-import { setupI18n } from "./lang";
 
 const app = createApp(App);
 app.use(Components);

+ 1 - 1
src/model/platform.ts

@@ -37,7 +37,7 @@ export async function modelSDKFactory(
   if (type === fuseModel) {
     if (!fuseInitialed) {
       await initialSDK({
-        laserRoot: offline ? offlinePrev : import.meta.env.VITE_LASER_HOST,
+        // laserRoot: offline ? offlinePrev : import.meta.env.VITE_LASER_HOST,
         panoOSSRoot: offline ? offlinePrev : import.meta.env.VITE_PANO_OSS,
         ossRoot: offline ? offlinePrev : import.meta.env.VITE_OSS,
         laserOSSRoot: offline ? offlinePrev : import.meta.env.VITE_LASER_OSS,

+ 1 - 1
src/store/sys.ts

@@ -23,7 +23,7 @@ export const isNow = computed(() => !!(mode.value & Flags.NOW));
 export const appEl = ref<HTMLDivElement | null>(null);
 export const prefix = ref("");
 
-export const defTitle = ref(ui18n.t('case.name');
+export const defTitle = ref(ui18n.t('case.name'));
 export const title = computed(() => {
   console.error(currentMeta.value);
   const last =

+ 1 - 1
src/views/tagging/sign.vue

@@ -20,7 +20,7 @@
         :class="{ disabled: !getTaggingIsShow(tagging) }"
       />
       <template v-else>
-        <ui-icon type="pin1" ctrl @click.stop="$emit('fixed')" :tip="{{$t('tagging.pos')}}" />
+        <ui-icon type="pin1" ctrl @click.stop="$emit('fixed')" :tip="$t('tagging.pos')" />
         <ui-more
           :options="menus"
           style="margin-left: 20px"