|
|
@@ -1,4 +1,4 @@
|
|
|
-<script setup>
|
|
|
+<script setup>
|
|
|
import { computed, nextTick, onBeforeUnmount, onMounted, ref } from 'vue'
|
|
|
import lottie from 'lottie-web'
|
|
|
import { clearSession, loadSession, saveSession } from './services/auth'
|
|
|
@@ -12,6 +12,7 @@ const currentLocale = ref('en')
|
|
|
const languageMenuOpen = ref(false)
|
|
|
const languageMenuRef = ref(null)
|
|
|
const profileMenuOpen = ref(false)
|
|
|
+const profileLanguageMenuOpen = ref(false)
|
|
|
const loginModalOpen = ref(false)
|
|
|
const logoutModalOpen = ref(false)
|
|
|
const session = ref(loadSession())
|
|
|
@@ -146,9 +147,14 @@ function toggleLanguageMenu() {
|
|
|
languageMenuOpen.value = !languageMenuOpen.value
|
|
|
}
|
|
|
|
|
|
+function toggleProfileLanguageMenu() {
|
|
|
+ profileLanguageMenuOpen.value = !profileLanguageMenuOpen.value
|
|
|
+}
|
|
|
+
|
|
|
function setLocale(locale) {
|
|
|
currentLocale.value = locale
|
|
|
languageMenuOpen.value = false
|
|
|
+ profileLanguageMenuOpen.value = false
|
|
|
}
|
|
|
|
|
|
function openLoginModal() {
|
|
|
@@ -177,6 +183,7 @@ function openProfileMenu() {
|
|
|
|
|
|
function closeProfileMenu() {
|
|
|
profileMenuOpen.value = false
|
|
|
+ profileLanguageMenuOpen.value = false
|
|
|
}
|
|
|
|
|
|
function handleDocumentClick(event) {
|
|
|
@@ -222,10 +229,6 @@ function confirmLogout() {
|
|
|
closeLogoutModal()
|
|
|
}
|
|
|
|
|
|
-function useProfileLanguage() {
|
|
|
- setLocale('en')
|
|
|
-}
|
|
|
-
|
|
|
onMounted(() => {
|
|
|
mountAllAnimations()
|
|
|
document.addEventListener('click', handleDocumentClick)
|
|
|
@@ -321,8 +324,8 @@ const copy = {
|
|
|
},
|
|
|
zh: {
|
|
|
login: '登录',
|
|
|
- heroTitle: 'Simubus - 电气接线仿真软件',
|
|
|
- heroSubtitle: '你的虚拟电气实验室。',
|
|
|
+ heroTitle: 'Simubus - 电路接线仿真软件',
|
|
|
+ heroSubtitle: '你的虚拟电路实验室。',
|
|
|
iosDownload: 'iOS 下载',
|
|
|
androidDownload: 'Android 下载',
|
|
|
featureOneTitle: '交互式电路设计体验',
|
|
|
@@ -347,7 +350,7 @@ const copy = {
|
|
|
crossPlatform: { title: '跨平台', body: '在桌面、平板和移动设备上无缝运行。你的模拟会跟随你走到哪里。' },
|
|
|
cloud: { title: '基于云平台', body: '无需安装。随时随地,直接从浏览器访问强大的模拟工具。' },
|
|
|
},
|
|
|
- footerSlogan: '你的虚拟电气实验室。',
|
|
|
+ footerSlogan: '你的虚拟电路实验室。',
|
|
|
quickLinksTitle: '快速链接',
|
|
|
quickLinks: ['首页', '隐私政策', '使用条款', '订阅条款', '下载 APP'],
|
|
|
contactTitle: '联系我们',
|
|
|
@@ -412,10 +415,24 @@ const messages = computed(() => copy[currentLocale.value])
|
|
|
<p class="login-modal__profile-email">{{ session?.email || messages.profileEmail }}</p>
|
|
|
|
|
|
<button class="login-modal__ghost-button" type="button" @click="handleProfileLogoutClick">{{ messages.logoutAction }}</button>
|
|
|
- <button class="login-modal__ghost-button login-modal__ghost-button--language" type="button" @click="useProfileLanguage">
|
|
|
- <span>{{ messages.language }}</span>
|
|
|
- <img class="login-modal__chevron" src="https://www.figma.com/api/mcp/asset/3bc941af-ef23-4f72-85ce-604343b147f1" alt="Open language menu" />
|
|
|
- </button>
|
|
|
+ <div class="profile-language-menu">
|
|
|
+ <button class="login-modal__ghost-button login-modal__ghost-button--language" type="button" @click="toggleProfileLanguageMenu">
|
|
|
+ <span>{{ messages.language }}</span>
|
|
|
+ <img class="login-modal__chevron" src="https://www.figma.com/api/mcp/asset/3bc941af-ef23-4f72-85ce-604343b147f1" alt="Open language menu" />
|
|
|
+ </button>
|
|
|
+ <div v-if="profileLanguageMenuOpen" class="profile-language-dropdown">
|
|
|
+ <button
|
|
|
+ v-for="option in languageOptions"
|
|
|
+ :key="option.value"
|
|
|
+ class="profile-language-option"
|
|
|
+ :class="{ active: currentLocale === option.value }"
|
|
|
+ type="button"
|
|
|
+ @click="setLocale(option.value)"
|
|
|
+ >
|
|
|
+ {{ option.label }}
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
|
|
|
<p class="login-modal__footer-links">
|
|
|
<a href="/">{{ messages.footerTerms }}</a>
|