From 3c9ef24c54a46055e217ac2744baaf00d3b8843c Mon Sep 17 00:00:00 2001 From: eric Date: Sun, 8 Mar 2026 12:53:01 -0500 Subject: [PATCH] =?UTF-8?q?'app=E4=B8=8B=E8=BD=BD=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/[locale]/app/AppDownloadContent.tsx | 70 +++++++++++++++++ app/[locale]/app/page.tsx | 21 +++++ app/components/Community.tsx | 76 +++++++++---------- app/components/Header.tsx | 1 + content/themes/digital-nomad/messages/en.json | 26 ++++--- content/themes/digital-nomad/messages/zh.json | 26 ++++--- 6 files changed, 162 insertions(+), 58 deletions(-) create mode 100644 app/[locale]/app/AppDownloadContent.tsx create mode 100644 app/[locale]/app/page.tsx diff --git a/app/[locale]/app/AppDownloadContent.tsx b/app/[locale]/app/AppDownloadContent.tsx new file mode 100644 index 0000000..9cfa36e --- /dev/null +++ b/app/[locale]/app/AppDownloadContent.tsx @@ -0,0 +1,70 @@ +"use client"; + +import { useEffect } from "react"; +import { useTranslation } from "@/i18n/navigation"; + +export default function AppDownloadContent() { + const { t } = useTranslation("appDownload"); + + useEffect(() => { + window.history.scrollRestoration = "manual"; + window.scrollTo(0, 0); + return () => { + window.history.scrollRestoration = "auto"; + }; + }, []); + + const features = [ + { key: "resources", icon: "📚" }, + { key: "community", icon: "👥" }, + { key: "tools", icon: "🛠️" }, + ] as const; + + return ( +
+
+
+
+
+ 📱 +
+

+ {t("title")} +

+

+ {t("subtitle")} +

+
+ +
+ {features.map(({ key, icon }) => ( +
+ + {icon} + +

+ {t(`features.${key}.title`)} +

+

+ {t(`features.${key}.desc`)} +

+
+ ))} +
+ +
+
+ {t("comingSoon")} +
+

+ {t("comingSoonDesc")} +

+
+
+
+
+ ); +} diff --git a/app/[locale]/app/page.tsx b/app/[locale]/app/page.tsx new file mode 100644 index 0000000..adc381c --- /dev/null +++ b/app/[locale]/app/page.tsx @@ -0,0 +1,21 @@ +import type { Metadata } from "next"; +import Header from "../../components/Header"; +import Footer from "../../components/Footer"; +import AppDownloadContent from "./AppDownloadContent"; + +export const metadata: Metadata = { + title: "App 下载 | App Download", + description: "数字游民指南移动端应用,随时随地获取资源与社区动态。", +}; + +export default function AppDownloadPage() { + return ( + <> +
+
+ +
+