tremble 2 年之前
父节点
当前提交
23e41443fb

+ 1 - 1
src/components/Controls/Panel/Main.vue

@@ -108,7 +108,7 @@
 
         <div class="search">
           <img :src="require(`@/assets/images/icon/search.svg`)" alt="" />
-          <input v-model="searchKey" type="text" placeholder="專櫃搜索" />
+          <input v-model="searchKey" type="text" :placeholder="$t('common.guideSearch')" />
           <ui-icon class="close" v-if="searchKey.length > 0" @click.stop="searchKey = ''" type="state_f"></ui-icon>
         </div>
 

+ 9 - 6
src/components/RTC/dialog/createdRoom.vue

@@ -3,15 +3,15 @@
     <div class="created_dialog">
       <div class="blurBox"></div>
       <div class="content">
-        <div class="dialog_title" v-if="role == 'leader'">創建一起逛</div>
-        <div class="dialog_title" v-else>進入一起逛</div>
+        <div class="dialog_title" v-if="role == 'leader'">{{ $t('common.createTour')}}</div>
+        <div class="dialog_title" v-else>{{ $t('common.joinTour')}}</div>
         <div class="user_name">
           <input
             class="input_name"
             maxlength="20"
             v-model.trim="userName"
             type="text"
-            :placeholder="role == 'leader' ? ' 請輸入發起人昵稱' : '請輸入您的昵稱'"
+            :placeholder="role == 'leader' ? $t('common.leadernickName') : $t('common.inputnickName')"
           />
           <span class="limitNum">{{ userName.length }}/20</span>
         </div>
@@ -19,8 +19,8 @@
           <div @click="chooseMode(i.mode)" v-for="i,index in modeList" :key="index" :class="{ active: mode==i.mode }" class="mode">{{i.title}}</div>
         </div> -->
         <div class="created_btn">
-          <div class="created_cancel" @click="closeCreated">取消</div>
-          <div class="created_confirm" @click="createdConfirm">確認</div>
+          <div class="created_cancel" @click="closeCreated">{{ $t('common.cancel')}}</div>
+          <div class="created_confirm" @click="createdConfirm">{{ $t('common.confirm')}}</div>
         </div>
       </div>
     </div>
@@ -32,6 +32,9 @@ import { Dialog } from "@/global_components/";
 import browser from "@/utils/browser";
 import { useStore } from "vuex";
 
+import { useI18n, getLocale } from '@/i18n'
+const { t } = useI18n({ useScope: 'global' })
+
 export default {
   data() {
     return {
@@ -79,7 +82,7 @@ export default {
     },
     createdConfirm() {
       if (this.userName == "") {
-        Dialog.toast({ content: "請輸入您的昵稱", type: "error" });
+        Dialog.toast({ content: t('common.inputnickName'), type: "error" });
         return;
       }
       let name = encodeURIComponent(this.userName);

+ 6 - 4
src/components/RTC/dialog/share.vue

@@ -3,7 +3,7 @@
     <div class="created_dialog">
       <div class="blurBox"></div>
       <div class="content">
-        <div class="dialog_title">{{ title }}</div>
+        <div class="dialog_title">{{ title || $t('share.shareLinkTips') }}</div>
         <div class="dialog_link">
           <p>
             {{ shareLink }}
@@ -11,8 +11,8 @@
         </div>
 
         <div class="created_btn">
-          <div class="created_cancel" @click="closeCreated">取消</div>
-          <div class="created_confirm"  ref="copylink$" :data-clipboard-text="shareLink" @click="createdConfirm">複製分享</div>
+          <div class="created_cancel" @click="closeCreated">{{ $t('common.cancel')}}</div>
+          <div class="created_confirm"  ref="copylink$" :data-clipboard-text="shareLink" @click="createdConfirm">{{ $t('share.shareLink')}} 複製分享</div>
         </div>
       </div>
     </div>
@@ -23,13 +23,15 @@
 import { onMounted, watch, defineProps, defineEmits, ref, nextTick } from "vue";
 import ClipboardJS from 'clipboard'
 import { Dialog } from '@/global_components/'
+import { useI18n, getLocale } from '@/i18n'
+const { t } = useI18n({ useScope: 'global' })
 
 const emit = defineEmits(["closeDialog"]);
 
 const props = defineProps({
   title: {
     type: String,
-    default: "邀請好友",
+    default: ``,
   },
   shareLink: {
     type: String,

+ 11 - 7
src/components/Tags/goods-list.vue

@@ -22,7 +22,7 @@
                 </div>
                 <ul>
                   <li>
-                    <span>規格:</span>
+                    <span>{{$t('common.guige')}}</span>
                     <ul>
                       <li @click.stop="onClickSku(item)" :class="{ active: item.id == i.currentSku.id }" v-for="(item, idx) in i.skus" :key="idx">
                         <span v-if="item.properties[0]">
@@ -32,7 +32,7 @@
                     </ul>
                   </li>
                   <li>
-                    <span>數量:</span>
+                    <span>{{$t('common.shuliang')}}</span>
                     <div class="number">
                       <ui-icon
                         @click="
@@ -58,10 +58,10 @@
                 </ul>
               </div>
               <div class="goods-button">
-                <span v-if="i.saleChannel == 1" class="tipss">僅供線下門店購買</span>
+                <span v-if="i.saleChannel == 1" class="tipss">{{$t('common.onlyOffLine')}}</span>
                 <template v-else>
-                  <div @click.stop="viewDetail(i)">查看詳情</div>
-                  <div @click.stop="addCart(i)">加入購物車</div>
+                  <div @click.stop="viewDetail(i)">{{$t('common.viewDetail')}}</div>
+                  <div @click.stop="addCart(i)">{{$t('common.addCart')}}</div>
                 </template>
               </div>
             </div>
@@ -81,6 +81,10 @@ import { Loading, Dialog } from "@/global_components/";
 import browser from "@/utils/browser";
 import viewimg from "@/views/viewimg";
 
+import { useI18n, getLocale } from '@/i18n'
+const { t } = useI18n({ useScope: 'global' })
+
+
 // get_product_info
 const store = useStore();
 const isshoppingguide = computed(() => store.getters["shoppingguide"]);
@@ -135,7 +139,7 @@ const addCart = async (item) => {
   Loading.hide();
   if (result.code === 0) {
     apis.burying_point({ type: 7, productId: item.id });
-    return Dialog.toast({ content: `添加成功`, type: "success" });
+    return Dialog.toast({ content: t('common.addSuccess'), type: "success" });
   } else {
     let callbackUrl = `${window.location.origin}${window.location.pathname}?m=${browser.getURLParam("m")}&${getApp().Camera.getPoseUrlParams()}`;
 
@@ -160,7 +164,7 @@ const close = () => {
 
 const updateProductsById = async (idx) => {
   if (!tagclick.value.data.products[idx]) {
-    Dialog.toast({ content: `獲取商品詳情失敗,請稍後再試`, type: "error" });
+    Dialog.toast({ content: t('common.viewDetailFail'), type: "error" });
     close();
     return;
   }

+ 5 - 1
src/components/Tags/waterfall.vue

@@ -13,7 +13,7 @@
             <div class="wfavatar" :style="{ backgroundImage: `url(${item.pic})` }"></div>
             <div class="wfinfo">
               <p>{{ item.name }}</p>
-              <p>{{ item.symbol }} {{ item.price }} | 查看 ></p>
+              <p>{{ item.symbol }} {{ item.price }} | {{$t('common.view')}} ></p>
             </div>
           </li>
         </ul>
@@ -29,6 +29,10 @@ import { useStore } from "vuex";
 import browser from "@/utils/browser";
 import * as apis from "@/apis/index.js";
 
+
+import { useI18n, getLocale } from '@/i18n'
+const { t } = useI18n({ useScope: 'global' })
+
 const store = useStore();
 
 const tagclick = computed(() => store.getters["tag/tagClickType"]);

+ 13 - 1
src/locales/en.json

@@ -58,7 +58,19 @@
     "know":"Got It",
     "privacy":"Privacy Policies:",
     "notice":"To preserve the security of user personal information, the developer has complied with all applicable laws, policies, and regulations regulating the collection and use of end-user personal information.",
-    "invitation":"【Friends Recommend】 Let's start a virtual walkthrough together!"
+    "invitation":"【Friends Recommend】 Let's start a virtual walkthrough together!",
+    "inputnickName": "请输入您的昵称~",
+    "leadernickName": " 请输入发起人昵称",
+    "createTour": " 创建一起逛",
+    "joinTour": " 进入一起逛",
+    "addSuccess": "添加成功",
+    "viewDetailFail": "获取商品详情失败,请稍后再试",
+    "addCart": "加入购物车",
+    "viewDetail": "查看详情",
+    "onlyOffLine":"仅供线下门店购买",
+    "guige":"规格:",
+    "shuliang":"数量:",
+    "guideSearch":"专柜搜索"
   },
   "share": {
     "wechat": "Wechat",

+ 58 - 45
src/locales/zh_CN.json

@@ -18,46 +18,59 @@
     "tour": "导览",
     "all": "全部",
     "model": "三维模式",
-    "title": "cdf澳门上葡京店",
-    "mode": "一起逛",
-    "shopping": "购物",
-    "guide": "专柜导航",
-    "guidelist": "专柜列表",
-    "noResult": "暂无结果",
-    "searchguide": "搜索专柜",
-    "help": "帮助",
-    "kefu": "客服",
-    "viewnum": "观看",
-    "saysomething": "说点什么",
-    "cantsay": "已被禁言",
-    "back": "返回",
-    "linking": "连接中...",
-    "send": "发送",
-    "member": "成员管理",
-    "me": "我",
-    "leader": "主持人",
-    "setTaboo": "主持人设置了禁言",
-    "relieveTaboo": "主持人已解除禁言",
-    "openMic": "主持人设置了开麦",
-    "closeMic": "主持人设置了静音",
-    "inRoom": "进入房间",
-    "leaveRoom": "离开房间",
-    "removed": "您已被移除",
-    "fullStarffed": "房间已满员",
-    "notFoundRoom": "房间未找到",
-    "openBrush": "开启画笔",
-    "closeBrush": "关闭画笔",
-    "dismissRoom": "已解散房间",
-    "jumpTips": "s 后右跳过视频",
-    "jump": "跳过",
-    "goNext": "点击前往下一个区域",
-    "view": "查看",
-    "calculation": "该场景正在计算中,请稍后再试",
-    "error": "服务端开小差,请稍后再试",
-    "know": "我知道了",
-    "privacy": "隐私条款:",
-    "notice": "开发者已遵守收集、使用最终用户个人信息有关的所有可适用法律、政策和法规,保护用户个人信息安全。",
-    "invitation": "【好友推荐】一起云逛店吧~"
+    "title":"cdf澳门上葡京店",
+    "mode":"一起逛",
+    "shopping":"购物",
+    "guide":"专柜导航",
+    "guidelist":"专柜列表",
+    "noResult":"暂无结果",
+    "searchguide":"搜索专柜",
+    "help":"帮助",
+    "kefu":"客服",
+    "viewnum":"观看",
+    "saysomething":"说点什麽",
+    "cantsay":"已被禁言",
+    "back":"返回",
+    "linking":"连接中...",
+    "send":"发送",
+    "member":"成员管理",
+    "me":"我",
+    "leader":"主持人",
+    "setTaboo":"主持人设置了禁言",
+    "relieveTaboo":"主持人已解除禁言",
+    "openMic":"主持人设置了开麦",
+    "closeMic":"主持人设置了静音",
+    "inRoom":"进入房间",
+    "leaveRoom":"离开房间",
+    "removed":"您已被移除",
+    "fullStarffed":"房间已满员",
+    "notFoundRoom":"房间未找到",
+    "openBrush":"开启画笔",
+    "closeBrush":"关闭画笔",
+    "dismissRoom":"已解散房间",
+    "jumpTips":"s 后可跳过视频",
+    "jump":"跳过",
+
+    "goNext":"点击前往下一个区域",
+    "view":"查看",
+    "calculation":"该场景正在计算中,请稍后再试",
+    "error":"服务端开小差,请稍后再试",
+    "know":"我知道了",
+    "privacy":"隐私条款:",
+    "notice":"开发者已遵守收集、使用最终用户个人信息有关的所有可适用法律、政策和法规,保护用户个人信息安全。",
+    "invitation":"【好友推荐】一起云逛店吧~",
+    "inputnickName": "请输入您的昵称~",
+    "leadernickName": " 请输入发起人昵称",
+    "createTour": " 创建一起逛",
+    "joinTour": " 进入一起逛",
+    "addSuccess": "添加成功",
+    "viewDetailFail": "获取商品详情失败,请稍后再试",
+    "addCart": "加入购物车",
+    "viewDetail": "查看详情",
+    "onlyOffLine":"仅供线下门店购买",
+    "guige":"规格:",
+    "shuliang":"数量:",
+    "guideSearch":"专柜搜索"
   },
   "share": {
     "wechat": "微信",
@@ -65,12 +78,12 @@
     "qq": "QQ",
     "facebook": "Facebook",
     "whatsApp": "WhatsApp",
-    "copyLink": "复制链接",
+    "copyLink": "複制分享",
     "shareLink": "分享链接",
-    "shareLinkTips": "分享链接给好友",
+    "shareLinkTips": "邀请好友",
     "vrMode": "VR模式",
-    "fastCopy": "一键制",
-    "copySuccess": "场景链接复制成功"
+    "fastCopy": "一键制",
+    "copySuccess":"场景链接複制成功"
   },
   "mode": {
     "panorama": "漫游",
@@ -83,4 +96,4 @@
     "exitFullScene": "退出全屏",
     "rule": "测量工具"
   }
-}
+}

+ 15 - 3
src/locales/zh_HK.json

@@ -58,7 +58,19 @@
     "know":"我知道了",
     "privacy":"隱私條款:",
     "notice":"開發者已遵守收集、使用最終用戶個人信息有關的所有可適用法律、政策和法規,保護用戶個人信息安全。",
-    "invitation":"【好友推薦】一起雲逛店吧~"
+    "invitation":"【好友推薦】一起雲逛店吧~",
+    "inputnickName": "請輸入您的昵稱~",
+    "leadernickName": " 請輸入發起人昵稱",
+    "createTour": " 創建一起逛",
+    "joinTour": " 進入一起逛",
+    "addSuccess": "添加成功",
+    "viewDetailFail": "獲取商品詳情失敗,請稍後再試",
+    "addCart": "加入購物車",
+    "viewDetail": "查看詳情",
+    "onlyOffLine":"僅供線下門店購買",
+    "guige":"規格:",
+    "shuliang":"數量:",
+    "guideSearch":"專櫃搜索"
   },
   "share": {
     "wechat": "微信",
@@ -66,9 +78,9 @@
     "qq": "QQ",
     "facebook": "Facebook",
     "whatsApp": "WhatsApp",
-    "copyLink": "複製鏈接",
+    "copyLink": "複製分享",
     "shareLink": "分享鏈接",
-    "shareLinkTips": "分享鏈接給好友",
+    "shareLinkTips": "邀請好友",
     "vrMode": "VR模式",
     "fastCopy": "一鍵複製",
     "copySuccess":"場景鏈接複製成功"