diff --git a/app/components/dashboard/Nav.vue b/app/components/dashboard/Nav.vue
index ee11d6d..1f74333 100644
--- a/app/components/dashboard/Nav.vue
+++ b/app/components/dashboard/Nav.vue
@@ -18,6 +18,9 @@ const route = useRoute()
{{ $t('nav.analysis') }}
+
+ {{ $t('nav.realtime') }}
+
diff --git a/app/components/dashboard/Counters.vue b/app/components/dashboard/analysis/Counters.vue
similarity index 100%
rename from app/components/dashboard/Counters.vue
rename to app/components/dashboard/analysis/Counters.vue
diff --git a/app/components/dashboard/Index.vue b/app/components/dashboard/analysis/Index.vue
similarity index 94%
rename from app/components/dashboard/Index.vue
rename to app/components/dashboard/analysis/Index.vue
index a974031..8a21306 100644
--- a/app/components/dashboard/Index.vue
+++ b/app/components/dashboard/analysis/Index.vue
@@ -74,8 +74,8 @@ onBeforeMount(() => {
-
-
-
+
+
+
diff --git a/app/components/dashboard/Views.vue b/app/components/dashboard/analysis/Views.vue
similarity index 100%
rename from app/components/dashboard/Views.vue
rename to app/components/dashboard/analysis/Views.vue
diff --git a/app/components/dashboard/metrics/Group.vue b/app/components/dashboard/analysis/metrics/Group.vue
similarity index 94%
rename from app/components/dashboard/metrics/Group.vue
rename to app/components/dashboard/analysis/metrics/Group.vue
index 8e96155..e15b823 100644
--- a/app/components/dashboard/metrics/Group.vue
+++ b/app/components/dashboard/analysis/metrics/Group.vue
@@ -31,7 +31,7 @@ defineProps({
:value="rawTabs[index]"
class="flex-1"
>
- ({
-
-
+
-
-
-
-
-
diff --git a/app/components/dashboard/metrics/Locations.vue b/app/components/dashboard/analysis/metrics/Locations.vue
similarity index 100%
rename from app/components/dashboard/metrics/Locations.vue
rename to app/components/dashboard/analysis/metrics/Locations.vue
diff --git a/app/components/dashboard/metrics/Metric.vue b/app/components/dashboard/analysis/metrics/Metric.vue
similarity index 97%
rename from app/components/dashboard/metrics/Metric.vue
rename to app/components/dashboard/analysis/metrics/Metric.vue
index e7c7636..e682fdc 100644
--- a/app/components/dashboard/metrics/Metric.vue
+++ b/app/components/dashboard/analysis/metrics/Metric.vue
@@ -61,7 +61,7 @@ onBeforeUnmount(() => {
- {
{{ name }}
-
-
-
-
+
+
+
+
+
+ Realtime
+
+
+
diff --git a/app/pages/dashboard/analysis.vue b/app/pages/dashboard/analysis.vue
index 348cb9d..2f9529d 100644
--- a/app/pages/dashboard/analysis.vue
+++ b/app/pages/dashboard/analysis.vue
@@ -5,6 +5,6 @@ provide('id', ref())
-
+
diff --git a/app/pages/dashboard/realtime.vue b/app/pages/dashboard/realtime.vue
new file mode 100644
index 0000000..24b0f42
--- /dev/null
+++ b/app/pages/dashboard/realtime.vue
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/i18n/locales/en-US.json b/i18n/locales/en-US.json
index 3929928..bb2aa9b 100644
--- a/i18n/locales/en-US.json
+++ b/i18n/locales/en-US.json
@@ -50,7 +50,8 @@
},
"nav": {
"links": "Links",
- "analysis": "Analysis"
+ "analysis": "Analysis",
+ "realtime": "Realtime"
},
"home": {
"features": {
diff --git a/i18n/locales/fr-FR.json b/i18n/locales/fr-FR.json
index 7a3441b..40c8c93 100644
--- a/i18n/locales/fr-FR.json
+++ b/i18n/locales/fr-FR.json
@@ -50,7 +50,8 @@
},
"nav": {
"links": "Liens",
- "analysis": "Statistique"
+ "analysis": "Statistiques",
+ "realtime": "Realtime"
},
"home": {
"features": {
diff --git a/i18n/locales/vi-VN.json b/i18n/locales/vi-VN.json
index 5eb08e9..43b826d 100644
--- a/i18n/locales/vi-VN.json
+++ b/i18n/locales/vi-VN.json
@@ -50,7 +50,8 @@
},
"nav": {
"links": "Liên kết",
- "analysis": "Phân tích"
+ "analysis": "Phân tích",
+ "realtime": "Thời gian thực"
},
"home": {
"features": {
diff --git a/i18n/locales/zh-CN.json b/i18n/locales/zh-CN.json
index 3f55e20..f69abf8 100644
--- a/i18n/locales/zh-CN.json
+++ b/i18n/locales/zh-CN.json
@@ -50,7 +50,8 @@
},
"nav": {
"links": "链接",
- "analysis": "分析"
+ "analysis": "分析",
+ "realtime": "实时"
},
"home": {
"features": {
diff --git a/i18n/locales/zh-TW.json b/i18n/locales/zh-TW.json
index ef9ca23..719c101 100644
--- a/i18n/locales/zh-TW.json
+++ b/i18n/locales/zh-TW.json
@@ -1,170 +1,170 @@
{
- "common": {
- "i18n": "多語言",
- "abbreviations": "繁",
- "current_language": "繁體中文",
- "try_again": "重試",
- "cancel": "取消",
- "continue": "繼續",
- "close": "關閉",
- "save": "保存",
- "edit": "編輯",
- "delete": "刪除",
- "delete_success": "刪除成功!",
- "search": "搜尋"
- },
- "theme": {
- "toggle": "切換主题",
- "light": "淺色",
- "dark": "深色",
- "system": "跟隨系統"
- },
- "login": {
- "title": "登入",
- "description": "請輸入站點密碼以登入",
- "tips": "提示",
- "preview_token": "預覽模式的站點密碼是",
- "submit": "登入",
- "failed": "登入失敗,請重試"
- },
- "logout": {
- "title": "登出?",
- "confirm": "確定要登出嗎?",
- "action": "登出"
- },
- "layouts": {
- "footer": {
- "copyright": "產品來自 HTML.ZONE",
- "social": {
- "email": "郵箱",
- "telegram": "Telegram",
- "blog": "部落個",
- "twitter": "Twitter",
- "mastodon": "Mastodon",
- "github": "GitHub"
- }
- },
- "header": {
- "select_language": "選擇語言"
+ "common": {
+ "i18n": "多語言",
+ "abbreviations": "繁",
+ "current_language": "繁體中文",
+ "try_again": "重試",
+ "cancel": "取消",
+ "continue": "繼續",
+ "close": "關閉",
+ "save": "保存",
+ "edit": "編輯",
+ "delete": "刪除",
+ "delete_success": "刪除成功!",
+ "search": "搜尋"
+ },
+ "theme": {
+ "toggle": "切換主题",
+ "light": "淺色",
+ "dark": "深色",
+ "system": "跟隨系統"
+ },
+ "login": {
+ "title": "登入",
+ "description": "請輸入站點密碼以登入",
+ "tips": "提示",
+ "preview_token": "預覽模式的站點密碼是",
+ "submit": "登入",
+ "failed": "登入失敗,請重試"
+ },
+ "logout": {
+ "title": "登出?",
+ "confirm": "確定要登出嗎?",
+ "action": "登出"
+ },
+ "layouts": {
+ "footer": {
+ "copyright": "產品來自 HTML.ZONE",
+ "social": {
+ "email": "郵箱",
+ "telegram": "Telegram",
+ "blog": "部落個",
+ "twitter": "Twitter",
+ "mastodon": "Mastodon",
+ "github": "GitHub"
}
},
- "nav": {
- "links": "連結",
- "analysis": "分析"
- },
- "home": {
- "features": {
- "title": "功能特色",
- "subtitle": "簡單而實用的功能",
- "url_shortening": {
- "title": "URL 縮短",
- "description": "將您的 URL 壓縮到最小長度"
- },
- "analytics": {
- "title": "數據分析",
- "description": "監控連結分析病收集有價值的統計數據"
- },
- "serverless": {
- "title": "免伺服器",
- "description": "無需傳統伺服器即可部署"
- },
- "customizable_slug": {
- "title": "自定義短連結",
- "description": "支持自訂連結和大小寫敏感"
- },
- "ai_slug": {
- "title": "AI 短連結",
- "description": "利用 AI 生成短連接"
- },
- "link_expiration": {
- "title": "短連結過期",
- "description": "為您的短連結設置過期日期"
- }
+ "header": {
+ "select_language": "選擇語言"
+ }
+ },
+ "nav": {
+ "links": "連結",
+ "analysis": "分析",
+ "realtime": "即時"
+ },
+ "home": {
+ "features": {
+ "title": "功能特色",
+ "subtitle": "簡單而實用的功能",
+ "url_shortening": {
+ "title": "URL 縮短",
+ "description": "將您的 URL 壓縮到最小長度"
},
- "cta": {
- "title": "立即部署",
- "description": "只需幾個簡單的點擊,您就可以免費開始部署",
- "button": "開始部署"
+ "analytics": {
+ "title": "數據分析",
+ "description": "監控連結分析病收集有價值的統計數據"
},
- "logos": {
- "title": "使用優秀的技術構建"
+ "serverless": {
+ "title": "免伺服器",
+ "description": "無需傳統伺服器即可部署"
},
- "twitter": {
- "follow": "在 X(Twitter) 上關注我"
+ "customizable_slug": {
+ "title": "自定義短連結",
+ "description": "支持自訂連結和大小寫敏感"
+ },
+ "ai_slug": {
+ "title": "AI 短連結",
+ "description": "利用 AI 生成短連接"
+ },
+ "link_expiration": {
+ "title": "短連結過期",
+ "description": "為您的短連結設置過期日期"
}
},
- "dashboard": {
- "title": "儀表板",
- "visits": "訪問次數",
- "views": "瀏覽次數",
- "visitors": "訪客人數",
- "referers": "引薦來源",
- "stats": "的統計",
- "custom_date": "自定義日期",
- "date": "日期",
- "date_range": "日期範圍",
- "locations": "地理位置",
- "details": "詳細資料",
- "name": "名稱",
- "count": "數量",
- "loading": "載入中",
- "no_data": "暫無數據",
- "none": "(無)",
- "filter_placeholder": "過濾連結...",
- "date_picker": {
- "today": "今天",
- "last_24h": "最近24小時",
- "this_week": "本週",
- "last_7d": "最近7天",
- "this_month": "本月",
- "last_30d": "最近30天",
- "last_90d": "最近90天",
- "custom": "自定義",
- "custom_title": "自定義日期",
- "single_date": "單個日期",
- "date_range": "日期範圍"
- },
- "metrics": {
- "country": "國家",
- "region": "地區",
- "city": "城市",
- "referer": "來源",
- "slug": "短連結",
- "language": "語言",
- "timezone": "時區",
- "device": "設備",
- "deviceType": "設備類型",
- "os": "操作系統",
- "browser": "瀏覽器",
- "browserType": "瀏覽器類型"
- }
+ "cta": {
+ "title": "立即部署",
+ "description": "只需幾個簡單的點擊,您就可以免費開始部署",
+ "button": "開始部署"
},
- "links": {
- "create": "創建連結",
- "edit": "編輯連結",
- "delete_confirm_title": "確定要刪除嗎?",
- "delete_confirm_desc": "此操作無法撤銷。这將從伺服器中永久刪除您的連結。",
- "delete_success": "刪除成功!",
- "update_success": "連結更新成功",
- "create_success": "連結創建成功",
- "preview_mode_tip": "預覽模式下的連結最多有效5分鐘",
- "search_placeholder": "搜尋連結...",
- "no_results": "未找到連結。",
- "group_title": "連結列表",
- "copy_success": "複製成功!",
- "created_at": "創建時間",
- "updated_at": "更新時間",
- "expires_at": "過期時間",
- "no_more": "沒有更多連結",
- "load_failed": "加載連接失敗,",
- "download_qr_code": "下載QR code",
- "sort": {
- "newest": "最新",
- "oldest": "最舊",
- "az": "短連結(A-Z)",
- "za": "短連結(Z-A)",
- "tip": "體驗功能: 僅對已經加載的連結有效"
- }
+ "logos": {
+ "title": "使用優秀的技術構建"
+ },
+ "twitter": {
+ "follow": "在 X(Twitter) 上關注我"
+ }
+ },
+ "dashboard": {
+ "title": "儀表板",
+ "visits": "訪問次數",
+ "views": "瀏覽次數",
+ "visitors": "訪客人數",
+ "referers": "引薦來源",
+ "stats": "的統計",
+ "custom_date": "自定義日期",
+ "date": "日期",
+ "date_range": "日期範圍",
+ "locations": "地理位置",
+ "details": "詳細資料",
+ "name": "名稱",
+ "count": "數量",
+ "loading": "載入中",
+ "no_data": "暫無數據",
+ "none": "(無)",
+ "filter_placeholder": "過濾連結...",
+ "date_picker": {
+ "today": "今天",
+ "last_24h": "最近24小時",
+ "this_week": "本週",
+ "last_7d": "最近7天",
+ "this_month": "本月",
+ "last_30d": "最近30天",
+ "last_90d": "最近90天",
+ "custom": "自定義",
+ "custom_title": "自定義日期",
+ "single_date": "單個日期",
+ "date_range": "日期範圍"
+ },
+ "metrics": {
+ "country": "國家",
+ "region": "地區",
+ "city": "城市",
+ "referer": "來源",
+ "slug": "短連結",
+ "language": "語言",
+ "timezone": "時區",
+ "device": "設備",
+ "deviceType": "設備類型",
+ "os": "操作系統",
+ "browser": "瀏覽器",
+ "browserType": "瀏覽器類型"
+ }
+ },
+ "links": {
+ "create": "創建連結",
+ "edit": "編輯連結",
+ "delete_confirm_title": "確定要刪除嗎?",
+ "delete_confirm_desc": "此操作無法撤銷。这將從伺服器中永久刪除您的連結。",
+ "delete_success": "刪除成功!",
+ "update_success": "連結更新成功",
+ "create_success": "連結創建成功",
+ "preview_mode_tip": "預覽模式下的連結最多有效5分鐘",
+ "search_placeholder": "搜尋連結...",
+ "no_results": "未找到連結。",
+ "group_title": "連結列表",
+ "copy_success": "複製成功!",
+ "created_at": "創建時間",
+ "updated_at": "更新時間",
+ "expires_at": "過期時間",
+ "no_more": "沒有更多連結",
+ "load_failed": "加載連接失敗,",
+ "download_qr_code": "下載QR code",
+ "sort": {
+ "newest": "最新",
+ "oldest": "最舊",
+ "az": "短連結(A-Z)",
+ "za": "短連結(Z-A)",
+ "tip": "體驗功能: 僅對已經加載的連結有效"
}
}
-
\ No newline at end of file
+}
diff --git a/nuxt.config.ts b/nuxt.config.ts
index be42dec..19519c9 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -11,6 +11,7 @@ export default defineNuxtConfig({
'@nuxtjs/color-mode',
'@nuxtjs/i18n',
],
+
devtools: { enabled: true },
colorMode: {