fix: language

This commit is contained in:
王性驊 2025-09-12 01:01:54 +08:00
parent cfa76cab17
commit 759ae6884f
2 changed files with 17 additions and 4 deletions

View File

@ -28,7 +28,7 @@ const initialIconsContainerY = ref(0);
const startMenuItems = ref([ const startMenuItems = ref([
{ {
labelKey: 'terminal', labelKey: 'terminal',
icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0yMiAxNlY4QzIyIDYuODk1NDMgMjEuMTA0NiA2IDIwIDZIMTRMMTIgNEg0QzIuODk1NDMgNCAyIDQuODk1NDMgMiA2VjE4QzIgMTkuMTA0NiAyLjg5NTQzIDIwIDQgMjBIMjBDMjEuMTA0NiAyMCAyMiAxOS4xMDQ2IDIyIDE4VjE2WiIgZmlsbD0iIzAwMDAwMCIvPgogICAgPHBhdGggZD0iTTggMTJMMTAgMTQuNUwxMiAxMkwxMCA5LjVMOCAxMloiIGZpbGw9IndoaXRlIi8+CiAgICA8cGF0aCBkPSJNMTAgMTZIMTRWMThIMTBWMTZaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4=', icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjEgM0gyVjIxSDIxVjNaIiBmaWxsPSJibGFjayIvPjxwYXRoIGQ9Ik0zIDRWMjBIMjBWM0gzVjRaTTQgNEg1VjVINFY0Wk01IDVIOFY2SDVWNVoiIGZpbGw9ImJsYWNrIi8+PHBhdGggZD0iTTQgNUg1VjZINFY1WiIgZmlsbD0id2hpdGUiLz48cGF0aCBkPSJNNiA5TDkgMTJMNiAxNUg4TDEwIDEyLjVMOCAxMEg2VjlaIiBmaWxsPSJ3aGl0ZSIvPjxwYXRoIGQ9Ik0xMSAxNUgxM1YxNkgxMVYxNVoiIGZpbGw9IndoaXRlIi8+PC9zdmc+',
action: 'openTerminal', action: 'openTerminal',
}, },
{ {
@ -38,7 +38,7 @@ const startMenuItems = ref([
}, },
{ {
labelKey: 'close_all_windows', labelKey: 'close_all_windows',
icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0xOC41IDUuNUw1LjUgMTguNU01LjUgNS41TDE4LjUgMTguNSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIi8+Cjwvc3ZnPgo=', icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiLz4KPC9zdmc+Cg==',
action: 'closeAllWindows', action: 'closeAllWindows',
}, },
]); ]);

View File

@ -1,10 +1,11 @@
<template> <template>
<div class="taskbar"> <div class="taskbar">
<div class="start-section"> <div class="start-section" ref="startMenuRef">
<button class="start-button" @click="toggleStartMenu"> <button class="start-button" @click="toggleStartMenu">
<img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9IiNjMGMwYzAiLz48cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iNyIgaGVpZ2h0PSI3IiBmaWxsPSIjMDAwMDgwIi8+PHJlY3QgeD0iMiIgeT0iMTEiIHdpZHRoPSI3IiBoZWlnaHQ9IjciIGZpbGw9IiMwMDAwODAiLz48cmVjdCB4PSIxMSIgeT0iMiIgd2lkdGg9IjciIGhlaWdodD0iNyIgZmlsbD0iIzAwMDA4MCIvPjxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjciIGhlaWdodD0iNyIgZmlsbD0iIzAwMDA4MCIvPjwvc3ZnPg==" alt="Start" class="start-icon" /> <img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9IiNjMGMwYzAiLz48cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iNyIgaGVpZ2h0PSI3IiBmaWxsPSIjMDAwMDgwIi8+PHJlY3QgeD0iMiIgeT0iMTEiIHdpZHRoPSI3IiBoZWlnaHQ9IjciIGZpbGw9IiMwMDAwODAiLz48cmVjdCB4PSIxMSIgeT0iMiIgd2lkdGg9IjciIGhlaWdodD0iNyIgZmlsbD0iIzAwMDA4MCIvPjxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjciIGhlaWdodD0iNyIgZmlsbD0iIzAwMDA4MCIvPjwvc3ZnPg==" alt="Start" class="start-icon" />
<span>{{ t('start') }}</span> <span>{{ t('start') }}</span>
</button> </button>
<div v-if="showStartMenu" class="start-menu"> <div v-if="showStartMenu" class="start-menu">
<div <div
v-for="item in menuItems" v-for="item in menuItems"
@ -55,6 +56,7 @@ const currentTime = ref('');
const isMounted = ref(false); const isMounted = ref(false);
let timerId = null; let timerId = null;
const showStartMenu = ref(false); const showStartMenu = ref(false);
const startMenuRef = ref(null); // Ref for the start-section div
const toggleStartMenu = () => { const toggleStartMenu = () => {
showStartMenu.value = !showStartMenu.value; showStartMenu.value = !showStartMenu.value;
@ -80,18 +82,29 @@ const updateCurrentTime = () => {
currentTime.value = new Date().toLocaleTimeString(timeLocale); currentTime.value = new Date().toLocaleTimeString(timeLocale);
}; };
// Function to handle clicks outside the start menu
const handleClickOutside = (event) => {
if (startMenuRef.value && !startMenuRef.value.contains(event.target)) {
if (showStartMenu.value) {
showStartMenu.value = false;
}
}
};
watch(locale, updateCurrentTime); watch(locale, updateCurrentTime);
onMounted(() => { onMounted(() => {
isMounted.value = true; isMounted.value = true;
updateCurrentTime(); updateCurrentTime();
timerId = setInterval(updateCurrentTime, 1000); timerId = setInterval(updateCurrentTime, 1000);
document.addEventListener('click', handleClickOutside); // Add event listener
}); });
onUnmounted(() => { onUnmounted(() => {
if (timerId) { if (timerId) {
clearInterval(timerId); clearInterval(timerId);
} }
document.removeEventListener('click', handleClickOutside); // Remove event listener
}); });
</script> </script>