diff --git a/components/AppWindow.vue b/components/AppWindow.vue index 1b155d8..981d85c 100644 --- a/components/AppWindow.vue +++ b/components/AppWindow.vue @@ -1,12 +1,13 @@ + + + + + + 📺 {{ t('livestream.title') }} + {{ t('livestream.subtitle') }} + + + + + + + + 🔥 {{ t('livestream.featuredStreams') }} + + + + + + + + + + 0 ? currentSlide - 1 : featuredStreams.length - 1" + > + ‹ + + + › + + + + + + + + + + + + ⭐ {{ t('livestream.popularStreamers') }} + + + {{ streamer.avatar }} + + {{ streamer.name }} + {{ streamer.viewers }} {{ t('livestream.viewers') }} + + + {{ streamer.isLive ? `🔴 ${t('livestream.live')}` : `⚪ ${t('livestream.offline')}` }} + + + + + + + + + diff --git a/components/Taskbar.vue b/components/Taskbar.vue index b646a6d..1e2ca58 100644 --- a/components/Taskbar.vue +++ b/components/Taskbar.vue @@ -105,7 +105,7 @@ const taskbarItems = computed(() => { const appInfo = appsStore.getAppById(instance.appId); items.push({ id: instance.id, - title: instance.title, + title: appInfo ? t(`apps.${appInfo.name}`) : instance.title, isActive: instance.isFocused, type: 'app', icon: appInfo?.icon diff --git a/i18n/lang/en.json b/i18n/lang/en.json index 15cd2f2..e48b5e8 100644 --- a/i18n/lang/en.json +++ b/i18n/lang/en.json @@ -4,20 +4,63 @@ "systemSettings": "System Settings...", "toggleTheme": "Toggle Theme", "signOut": "Sign Out", - "closeAllWindows": "Close All Windows", - "language": "Language", - "switchToEnglish": "Switch to English", - "switchToChinese": "Switch to 繁體中文" + "closeAllWindows": "Close All Windows" }, "taskbar": { - "zhuyin": "Zhuyin", - "english_us": "English (US)", - "language": "Language" + "language": "Language", + "currentLanguage": "EN" }, "common": { "createWindow": "Create Window", "close": "Close", "minimize": "Minimize", - "maximize": "Maximize" + "maximize": "Maximize", + "back": "Back" + }, + "apps": { + "livestream-hub": "LiveStream Hub", + "calculator": "Calculator" + }, + "livestream": { + "title": "LiveStream Hub", + "subtitle": "Discover amazing live content", + "featuredStreams": "Featured Streams", + "popularStreamers": "Popular Streamers", + "viewers": "viewers", + "live": "Live", + "offline": "Offline", + "watch": "Watch", + "follow": "Follow", + "share": "Share", + "categories": { + "gaming": "Gaming", + "music": "Music", + "lifestyle": "Lifestyle", + "education": "Education", + "art": "Art", + "fitness": "Fitness", + "travel": "Travel", + "pets": "Pets" + }, + "streams": { + "gamingNight": "🎮 Gaming All Night!", + "musicShare": "🎵 Late Night Music", + "cooking": "🍳 Late Night Kitchen - Learn Cooking", + "coding": "💻 Programming Tutorial", + "art": "🎨 Digital Art Creation", + "fitness": "💪 Fitness Training", + "travel": "✈️ Travel Vlog", + "pets": "🐱 Pet Care Tips" + }, + "streamers": { + "gamingKing": "Gaming King", + "musicMaster": "Music Master", + "cookingChef": "Cooking Chef", + "codeTeacher": "Code Teacher", + "artist": "Digital Artist", + "trainer": "Fitness Trainer", + "traveler": "Travel Blogger", + "petLover": "Pet Lover" + } } -} +} \ No newline at end of file diff --git a/i18n/lang/zh-TW.json b/i18n/lang/zh-TW.json index 5eac0f4..82721a1 100644 --- a/i18n/lang/zh-TW.json +++ b/i18n/lang/zh-TW.json @@ -4,20 +4,63 @@ "systemSettings": "系統設定...", "toggleTheme": "切換主題", "signOut": "登出", - "closeAllWindows": "關閉所有視窗", - "language": "語言", - "switchToEnglish": "切換至英文", - "switchToChinese": "切換至繁體中文" + "closeAllWindows": "關閉所有視窗" }, "taskbar": { - "zhuyin": "注音", - "english_us": "英文 (美國)", - "language": "語言" + "language": "語言", + "currentLanguage": "注" }, "common": { "createWindow": "建立視窗", "close": "關閉", "minimize": "最小化", - "maximize": "最大化" + "maximize": "最大化", + "back": "返回" + }, + "apps": { + "livestream-hub": "直播中心", + "calculator": "計算機" + }, + "livestream": { + "title": "直播中心", + "subtitle": "發現最精彩的直播內容", + "featuredStreams": "精選直播", + "popularStreamers": "熱門主播", + "viewers": "觀看", + "live": "直播中", + "offline": "離線", + "watch": "觀看", + "follow": "關注", + "share": "分享", + "categories": { + "gaming": "遊戲", + "music": "音樂", + "lifestyle": "生活", + "education": "教育", + "art": "藝術", + "fitness": "健身", + "travel": "旅遊", + "pets": "寵物" + }, + "streams": { + "gamingNight": "🎮 今晚通宵打遊戲!", + "musicShare": "🎵 深夜音樂分享", + "cooking": "🍳 深夜廚房 - 學做菜", + "coding": "💻 程式設計教學", + "art": "🎨 數位藝術創作", + "fitness": "💪 健身訓練", + "travel": "✈️ 旅遊日誌", + "pets": "🐱 寵物照護小貼士" + }, + "streamers": { + "gamingKing": "遊戲小王子", + "musicMaster": "音樂達人", + "cookingChef": "料理大師", + "codeTeacher": "程式導師", + "artist": "繪畫師", + "trainer": "健身教練", + "traveler": "旅遊達人", + "petLover": "寵物愛好者" + } } } diff --git a/stores/apps.ts b/stores/apps.ts index dc1c1fa..51887cd 100644 --- a/stores/apps.ts +++ b/stores/apps.ts @@ -34,12 +34,12 @@ export const useAppsStore = defineStore('apps', () => { // Available apps registry const availableApps = ref([ { - id: 'calculator', - name: 'Calculator', - icon: '🧮', - component: 'Calculator', - description: 'A simple calculator for basic arithmetic operations', - category: 'Utilities' + id: 'livestream-hub', + name: 'livestream-hub', // Use translation key instead of hardcoded name + icon: '📺', + component: 'LiveStreamHub', + description: 'Discover and watch live streams from popular streamers', + category: 'Entertainment' }, // More apps can be added here in the future ]); @@ -75,13 +75,13 @@ export const useAppsStore = defineStore('apps', () => { minWidth?: number; minHeight?: number; }> = { - 'calculator': { - width: 300, - height: 450, - maxWidth: 350, // Prevent calculator from getting too wide - maxHeight: 500, // Prevent calculator from getting too tall - minWidth: 250, // Minimum usable width - minHeight: 400 // Minimum usable height + 'livestream-hub': { + width: 800, + height: 600, + maxWidth: 1200, // Allow wider view for better content display + maxHeight: 800, // Allow taller view for more streamers + minWidth: 600, // Minimum usable width + minHeight: 500 // Minimum usable height }, 'text-editor': { width: 600,