Kaynağa Gözat

update 翻译

tremble 2 yıl önce
ebeveyn
işleme
a7e9aa848d

+ 21 - 1
packages/qjkankan-editor/src/lang/_en.json

@@ -542,6 +542,20 @@
       "work_preview": "Project Preview",
       "new_blank": "Open in a new window",
       "cancel": "Cancel"
+    },
+    "components":{
+      "prev":"上一张",
+      "next":"下一张",
+      "zoom_in":"放大",
+      "zoom_out":"缩小",
+      "delete":"删除",
+      "fullscreen":"全屏",
+      "cancel_fullscreen":"取消全屏",
+      "pano_setting":"全景图封面设置",
+      "drag_to_cut":"拖动画面截取封面",
+      "cutting":"截图",
+      "preview_cover":"封面预览",
+      "rename_material":"重命名素材"
     }
   },
   "gather": {
@@ -663,7 +677,13 @@
     "背景音乐": "BGM",
     "自定义LOGO": "Custom Logo",
     "自定义遮罩": "Custom Mask",
-    "自定义按钮": "Custom Button"
+    "自定义按钮": "Custom Button",
+    "素材": "素材",
+    "名称": "名称",
+    "大小": "大小",
+    "分辨率": "分辨率",
+    "创建时间": "创建时间",
+    "修改时间": "修改时间"
   },
   "navigation": {
     "scene_edit_tips": "请前往四维时代个人中心编辑场景",

+ 24 - 1
packages/qjkankan-editor/src/lang/_zh.json

@@ -542,6 +542,21 @@
       "work_preview": "全景作品预览",
       "new_blank": "新窗口打开",
       "cancel": "取消"
+    },
+    
+    "components":{
+      "prev":"上一张",
+      "next":"下一张",
+      "zoom_in":"放大",
+      "zoom_out":"缩小",
+      "delete":"删除",
+      "fullscreen":"全屏",
+      "cancel_fullscreen":"取消全屏",
+      "pano_setting":"全景图封面设置",
+      "drag_to_cut":"拖动画面截取封面",
+      "cutting":"截图",
+      "preview_cover":"封面预览",
+      "rename_material":"重命名素材"
     }
   },
   "gather": {
@@ -663,7 +678,15 @@
     "背景音乐": "背景音乐",
     "自定义LOGO": "自定义LOGO",
     "自定义遮罩": "自定义遮罩",
-    "自定义按钮": "自定义按钮"
+    "自定义按钮": "自定义按钮",
+
+    "素材": "素材",
+    "名称": "名称",
+    "大小": "大小",
+    "分辨率": "分辨率",
+    "创建时间": "创建时间",
+    "修改时间": "修改时间"
+
   },
   "navigation": {
     "scene_edit_tips": "请前往四维时代个人中心编辑场景",

+ 2 - 0
packages/qjkankan-editor/src/pages/material.js

@@ -9,6 +9,7 @@ import { showLoginTips } from '@/utils/request'
 import { Button } from 'element-ui';
 import '@/directives/vTitleInManageCenter.js'
 import '@/directives/vTooltipInManageCenter.js'
+import { i18n } from "@/lang"
 
 Vue.component(Button.name, Button);
 
@@ -35,5 +36,6 @@ window.addEventListener('storage', () => {
 new Vue({
   router,
   store,
+  i18n,
   render: h => h(App)
 }).$mount('#app')

+ 1 - 1
packages/qjkankan-editor/src/views/material/audio/index.vue

@@ -56,7 +56,7 @@
         ref="table-list"
       >
         <div slot-scope="{ data }" slot="header">
-          {{ data.name }}
+          {{ data.name && $i18n.t(`zh_key.${data.name}`)  }}
         </div>
         <div slot-scope="{ data, item, sub }" slot="item" style="width: 100%">
           <div class="handle" v-if="sub.canclick">

+ 2 - 2
packages/qjkankan-editor/src/views/material/image/index.vue

@@ -56,7 +56,7 @@
         ref="table-list"
       >
         <div slot-scope="{ data }" slot="header">
-          {{ data.name }}
+          {{ data.name && $i18n.t(`zh_key.${data.name}`)  }}
         </div>
         <div slot-scope="{ data, item, sub }" slot="item" style="width: 100%">
           <div v-if="sub.canclick" class="handle">
@@ -70,7 +70,7 @@
             </i>
             <i class="iconfont icon-material_operation_delete hover-tips-warn" @click="del(item)">
               <div>
-                <div class="remark">{{del}}</div>
+                <div class="remark">{{deltips}}</div>
               </div>
             </i>
           </div>

+ 47 - 92
packages/qjkankan-editor/src/views/material/pano/index.vue

@@ -5,97 +5,64 @@
     </div>
     <div class="second-line">
       <div class="btn">
-        <button
-          @mouseover.stop="showList = true"
-          @click="onUploadFile"
-          class="ui-button submit"
-        >
-          <span>{{upload_material}}</span>
+        <button @mouseover.stop="showList = true" @click="onUploadFile" class="ui-button submit">
+          <span>{{ upload_material }}</span>
           <i class="iconfont icon-material_prompt hover-tips hover-tips-upload-icon">
             <div>
-              <div class="remark">{{pano_size}}</div>
+              <div class="remark">{{ pano_size }}</div>
             </div>
           </i>
-          <upload
-            ref="uploadFile"
-            :failString="pano_fail"
-            :limitFailStr="pano_limit"
-            accept-type=".jpg"
-            media-type="image"
-            :limit="120"
-            @file-change="onFileChange"
-          ></upload>
+          <upload ref="uploadFile" :failString="pano_fail" :limitFailStr="pano_limit" accept-type=".jpg"
+            media-type="image" :limit="120" @file-change="onFileChange"></upload>
         </button>
       </div>
       <div class="filter">
-        <div :class="{active: isFilterFocus}" @focusin="onFilterFocus" @focusout="onFilterBlur">
+        <div :class="{ active: isFilterFocus }" @focusin="onFilterFocus" @focusout="onFilterBlur">
           <i class="iconfont icon-works_search search"></i>
-          <input
-            type="text"
-            v-model="searchKey"
-            :placeholder="serch_material"
-          />
-          <i v-if="searchKey" @click="searchKey=''" class="iconfont icontoast_red del"></i>
+          <input type="text" v-model="searchKey" :placeholder="serch_material" />
+          <i v-if="searchKey" @click="searchKey = ''" class="iconfont icontoast_red del"></i>
         </div>
       </div>
     </div>
     <div class="list">
-      <tableList
-        @selection-change="
-          (data) => {
-            selectedArr = data;
-          }
-        "
-        @request-more-data="getMoreMaterialItem"
-        :canRequestMoreData="hasMoreData && !isRequestingMoreData"
-        :header="tabHeader"
-        :showLine="true"
-        :selection="false"
-        :data="list"
-        class="table-list"
-        ref="table-list"
-      >
+      <tableList @selection-change="
+        (data) => {
+          selectedArr = data;
+        }
+      " @request-more-data="getMoreMaterialItem" :canRequestMoreData="hasMoreData && !isRequestingMoreData"
+        :header="tabHeader" :showLine="true" :selection="false" :data="list" class="table-list" ref="table-list">
         <!-- 表头 -->
         <div slot-scope="{ data }" slot="header">
-          {{ data.name }}
+          {{ data.name && $i18n.t(`zh_key.${data.name}`) }}
         </div>
         <!-- 内容各单元格 -->
         <!-- item:传给组件的data里各元素,对应单元格所在行(hasAuth都写成false);data:item里各元素,对应每个单元格;sub:表头数据各元素,即单元各所属列的表头数据 -->
         <div slot-scope="{ data, item, sub }" slot="item" style="width: 100%">
           <!-- 操作型单元格 -->
           <div class="handle" v-if="sub.canclick">
-            <i
-              class="iconfont icon-material_operation_image hover-tips"
-              @click="(showCover = true), (popupItem = item)"
-            >
+            <i class="iconfont icon-material_operation_image hover-tips"
+              @click="(showCover = true), (popupItem = item)">
               <div>
-                <div class="remark">{{edit_cover}}</div>
+                <div class="remark">{{ edit_cover }}</div>
               </div>
             </i>
 
-            <i
-              class="iconfont icon-material_operation_editor hover-tips"
-              @click="(showRename = true), (popupItem = item)"
-            >
+            <i class="iconfont icon-material_operation_editor hover-tips"
+              @click="(showRename = true), (popupItem = item)">
               <div>
-                <div class="remark">{{rename}}</div>
+                <div class="remark">{{ rename }}</div>
               </div>
             </i>
             <i class="iconfont icon-material_operation_delete hover-tips-warn" @click="del(item)">
               <div>
-                <div class="remark">{{deltips}}</div>
+                <div class="remark">{{ deltips }}</div>
               </div>
             </i>
           </div>
           <!-- 图片型单元格 -->
-          <div
-            class="img"
-            v-else-if="sub.type == 'image'"
-            @click="previewImage(item)"
-          >
-            <img 
-            :src="data + (Number(item.fileSize)>512 ? `?x-oss-process=image/resize,p_20&${Math.random()}` : '') "
-            alt="" />
+          <div class="img" v-else-if="sub.type == 'image'" @click="previewImage(item)">
+            <img :src="data + (Number(item.fileSize) > 512 ? `?x-oss-process=image/resize,p_20&${Math.random()}` : '')"
+              alt="" />
           </div>
           <span style="cursor: pointer;" @click="previewImage(item)" v-else-if="sub.key == 'name'">{{ data || "-" }}
           </span>
@@ -105,37 +72,24 @@
           </span>
         </div>
       </tableList>
-      <UploadTaskList class="upload-task-list" fileType="IMAGE" :taskList="uploadListForUI" @cancel-task="onCancelTask"></UploadTaskList>
-      <div class="total-number" v-if="list.length !== 0 || hasMoreData">{{had_load}}</div>
+      <UploadTaskList class="upload-task-list" fileType="IMAGE" :taskList="uploadListForUI" @cancel-task="onCancelTask">
+      </UploadTaskList>
+      <div class="total-number" v-if="list.length !== 0 || hasMoreData">{{ had_load }}</div>
       <div class="nodata" v-if="list.length == 0 && !hasMoreData && lastestUsedSearchKey">
         <img :src="$noresult" alt="" />
-        <span>{{no_serch_result}}</span>
+        <span>{{ no_serch_result }}</span>
       </div>
       <div class="nodata" v-if="list.length == 0 && !hasMoreData && !lastestUsedSearchKey">
         <img :src="config.empty" alt="" />
-        <span>{{no_material_result}}</span>
-        <button @click="$refs.uploadFile.click()" class="upload-btn-in-table">{{upload_material}}</button>
+        <span>{{ no_material_result }}</span>
+        <button @click="$refs.uploadFile.click()" class="upload-btn-in-table">{{ upload_material }}</button>
       </div>
     </div>
 
-    <rename
-      v-if="showRename"
-      :item="popupItem"
-      @rename="handleRename"
-      @close="showRename = false"
-    />
-    <preview
-      ref="image-previewer"
-      :sceneCodeList="list.map(item => item.sceneCode)"
-      :imageTitleList="list.map(item => item.name)"
-      @click-delete="onClickDeleteInPreview"
-    />
-    <cover
-      @panocover="handlePanoCover"
-      :item="popupItem"
-      v-if="showCover"
-      @close="showCover = false"
-    />
+    <rename v-if="showRename" :item="popupItem" @rename="handleRename" @close="showRename = false" />
+    <preview ref="image-previewer" :sceneCodeList="list.map(item => item.sceneCode)"
+      :imageTitleList="list.map(item => item.name)" @click-delete="onClickDeleteInPreview" />
+    <cover @panocover="handlePanoCover" :item="popupItem" v-if="showCover" @close="showCover = false" />
   </div>
 </template>
 
@@ -163,7 +117,7 @@ import {
   checkUserSize
 } from "@/api";
 
-import {i18n} from "@/lang"
+import { i18n } from "@/lang"
 
 
 const TYPE = "pano";
@@ -192,7 +146,7 @@ export default {
       edit_cover: i18n.t("gather.edit_cover"),
       rename: i18n.t("gather.rename"),
       deltips: i18n.t("gather.delete"),
-      
+
       config,
       showRename: false,
       showCover: false,
@@ -200,7 +154,7 @@ export default {
       popupItem: null,
       tabHeader: data,
       selectedArr: [],
-      
+
       searchKey: "",
       // 因为searchKey的变化经过debounce、异步请求的延时,才会反映到数据列表的变化上,所以是否显示、显示哪种无数据提示,也要等到数据列表变化后,根据数据列表是否为空,以及引发本次变化的那个searchKey瞬时值来决定。本变量就是用来保存那个瞬时值。
       lastestUsedSearchKey: '',
@@ -227,8 +181,8 @@ export default {
         return item.status === 'LOADING' && item.ifKnowProgress === false
       })
     },
-    had_load(){
-      return i18n.t("gather.had_load",{msg:this.list.length})
+    had_load() {
+      return i18n.t("gather.had_load", { msg: this.list.length })
     }
   },
   mounted() {
@@ -258,12 +212,12 @@ export default {
     },
   },
   methods: {
-    onUploadFile(){
-      checkUserSize({},(data)=>{
+    onUploadFile() {
+      checkUserSize({}, (data) => {
         //判断已用是否大于3G
         if ((data.data / 1024 / 1024) > 3) {
           this.$alert({ content: "空间已满" });
-        }else{
+        } else {
           this.$refs.uploadFile.click()
         }
       })
@@ -274,7 +228,7 @@ export default {
     onFilterBlur() {
       this.isFilterFocus = false
     },
-    refreshListDebounced: debounce(function() {
+    refreshListDebounced: debounce(function () {
       this.list = []
       this.isRequestingMoreData = false
       this.hasMoreData = true
@@ -472,9 +426,9 @@ export default {
 
         let WHRate = null
         try {
-          const {width, height} = await getImgWH(eachFile)
+          const { width, height } = await getImgWH(eachFile)
           WHRate = width / height
-        } catch(e) {
+        } catch (e) {
           console.error('获取图像宽高失败:', e)
           setTimeout(() => {
             this.$msg({
@@ -586,6 +540,7 @@ export default {
 </script>
 
 <style lang="less" scoped>
+
 </style>
 <style lang="less" scoped>
 @import "../style.less";

+ 6 - 6
packages/qjkankan-editor/src/views/material/popup/cover.vue

@@ -2,7 +2,7 @@
     <popup>
       <div class="ui-message ui-message-confirm message-material">
         <div class="ui-message-header header-material">
-          <div>全景图封面设置</div>
+          <div>{{$i18n.t(`material.components.pano_setting`)}}</div>
           <div @click="$emit('close')">
             <i class="iconfont icon_close"></i>
           </div>
@@ -11,27 +11,27 @@
           <div>
             <iframe id="ifrcover" :src="'./vr.html?hideScale=1&vr='+item.sceneCode" frameborder="0"></iframe>
             <div>
-              <span class="remark">拖动画面截取封面</span>
+              <span class="remark">{{$i18n.t(`material.components.drag_to_cut`)}}</span>
               <div @click="onClick" :class="canPrintScreen ? 'print-screen-btn' : 'print-screen-btn--disabled'" >
                 <i class="iconfont icon-pop-ups_crop"></i>
-                截图
+                {{$i18n.t(`material.components.cutting`)}}
               </div>
             </div>
           </div>
           <div>
             <img :src="img||$thumb" alt="" />
             <div>
-              <div class="remark">封面预览</div>
+              <div class="remark">{{$i18n.t(`material.components.preview_cover`)}}</div>
             </div>
           </div>
         </div>
         <div class="ui-message-footer">
           <div class="btn">
             <button @click="$emit('close')" class="ui-button ui-button-rect cancel" >
-              取消
+              {{$i18n.t(`gather.cancel`)}}
             </button>
             <button @click="save" class="ui-button ui-button-rect submit" >
-              确定
+              {{$i18n.t(`gather.comfirm`)}}
             </button>
           </div>
         </div>

+ 7 - 7
packages/qjkankan-editor/src/views/material/popup/imagePreviewer.vue

@@ -16,37 +16,37 @@
         <i
           class="iconfont icon-material_preview_previous hover-tips" :class="{disabled: currentIndex === 0}" @click="onClickPrevious()">
           <div>
-            <div class="remark">上一张</div>
+            <div class="remark">{{$i18n.t(`material.components.prev`)}}</div>
           </div>
         </i>
         <i class="iconfont icon-material_preview_next1 hover-tips append-splitter" :class="{disabled: currentIndex === imageList.length - 1}" @click="onClickNext()">
           <div>
-            <div class="remark">下一张</div>
+            <div class="remark">{{$i18n.t(`material.components.next`)}}</div>
           </div>
         </i>
         <i v-if="canScale" class="iconfont icon-material_preview_enlarge hover-tips" @click="onClickZoomIn()">
           <div>
-            <div class="remark">放大</div>
+            <div class="remark">{{$i18n.t(`material.components.zoom_in`)}}</div>
           </div>
         </i>
         <i v-if="canScale" class="iconfont icon-material_preview_narrow hover-tips" @click="onClickZoomOut()">
           <div>
-            <div class="remark">缩小</div>
+            <div class="remark">{{$i18n.t(`material.components.zoom_out`)}}</div>
           </div>
         </i>
         <i class="iconfont icon-material_preview_next hover-tips-warn" @click="onClickDelete()">
           <div>
-            <div class="remark">删除</div>
+            <div class="remark">{{$i18n.t(`material.components.delete`)}}</div>
           </div>
         </i>
         <i v-if="canFullScreen && objectFit === 'scale-down'" class="iconfont icon-material_preview_full_screen hover-tips" @click="onClickFullScreen()">
           <div>
-            <div class="remark">全屏</div>
+            <div class="remark">{{$i18n.t(`material.components.fullscreen`)}}</div>
           </div>
         </i>
         <i v-if="canFullScreen && objectFit === 'contain'" class="iconfont icon-material_preview_drop_out hover-tips" @click="onClickCancelFullScreen()">
           <div>
-            <div class="remark">取消全屏</div>
+            <div class="remark">{{$i18n.t(`material.components.cancel_fullscreen`)}}</div>
           </div>
         </i>
       </div>

+ 5 - 5
packages/qjkankan-editor/src/views/material/popup/panoImagePreviewer.vue

@@ -21,27 +21,27 @@
         <i
           class="iconfont icon-material_preview_previous hover-tips" :class="{disabled: currentIndex === 0}" @click="onClickPrevious()">
           <div>
-            <div class="remark">上一张</div>
+            <div class="remark">{{$i18n.t(`material.components.prev`)}}</div>
           </div>
         </i>
         <i class="iconfont icon-material_preview_next1 hover-tips append-splitter" :class="{disabled: currentIndex === sceneCodeList.length - 1}" @click="onClickNext()">
           <div>
-            <div class="remark">下一张</div>
+            <div class="remark">{{$i18n.t(`material.components.next`)}}</div>
           </div>
         </i>
         <i class="iconfont icon-material_preview_next hover-tips-warn" @click="onClickDelete()">
           <div>
-            <div class="remark">删除</div>
+            <div class="remark">{{$i18n.t(`material.components.delete`)}}</div>
           </div>
         </i>
         <i v-if="!isFullscreen" class="iconfont icon-material_preview_full_screen hover-tips" @click="onClickFullScreen()">
           <div>
-            <div class="remark">全屏</div>
+            <div class="remark">{{$i18n.t(`material.components.fullscreen`)}}</div>
           </div>
         </i>
         <i v-if="isFullscreen" class="iconfont icon-material_preview_drop_out hover-tips" @click="onClickCancelFullScreen()">
           <div>
-            <div class="remark">退出全屏</div>
+            <div class="remark">{{$i18n.t(`material.components.cancel_fullscreen`)}}</div>
           </div>
         </i>
       </div>

+ 4 - 4
packages/qjkankan-editor/src/views/material/popup/rename.vue

@@ -2,19 +2,19 @@
   <popup>
     <div class="ui-message ui-message-confirm" style="width: 400px">
       <div class="ui-message-header">
-        <span>重命名素材</span>
+        <span>{{$i18n.t(`material.components.rename_material`)}}</span>
         <span @click="$emit('close')">
           <i class="iconfont icon_close"></i>
         </span>
       </div>
-      <input class="ui-input" type="text" maxlength="50" placeholder="请输入" @input="emojistr" v-model="key" />
+      <input class="ui-input" type="text" maxlength="50" :placeholder="$i18n.t(`edit_settings.please_input`)" @input="emojistr" v-model="key" />
       <div class="ui-message-footer">
         <div class="btn">
           <button @click="$emit('close')" class="ui-button ui-button-rect cancel">
-            取消
+            {{$i18n.t(`gather.cancel`)}}
           </button>
           <button @click="emitname" class="ui-button ui-button-rect submit" :class="{disable:!key}">
-            确定
+            {{$i18n.t(`gather.comfirm`)}}
           </button>
         </div>
       </div>

+ 1 - 1
packages/qjkankan-editor/src/views/material/video/index.vue

@@ -56,7 +56,7 @@
         ref="table-list"
       >
         <div slot-scope="{ data }" slot="header">
-          {{ data.name }}
+          {{ data.name && $i18n.t(`zh_key.${data.name}`)  }}
         </div>
         <div slot-scope="{ data, item, sub }" slot="item" style="width: 100%">
           <div class="handle" v-if="sub.canclick">