From 32f5e9cf8f2e5d9052b623e792a71e1ac5b04760 Mon Sep 17 00:00:00 2001 From: hailin Date: Tue, 22 Apr 2025 18:30:20 +0800 Subject: [PATCH] . --- app/[locale]/layout.tsx | 116 ++++++++++++++++++++--------- public/locales/en/translation.json | 7 +- public/locales/ja/translation.json | 6 ++ public/locales/zh/translation.json | 6 ++ 4 files changed, 100 insertions(+), 35 deletions(-) diff --git a/app/[locale]/layout.tsx b/app/[locale]/layout.tsx index cfed5df..38a11aa 100644 --- a/app/[locale]/layout.tsx +++ b/app/[locale]/layout.tsx @@ -12,10 +12,10 @@ import { ReactNode } from "react" import "./globals.css" const inter = Inter({ subsets: ["latin"] }) -const APP_NAME = "Chatbot UI" -const APP_DEFAULT_TITLE = "Chatbot UI" -const APP_TITLE_TEMPLATE = "%s - Chatbot UI" -const APP_DESCRIPTION = "Chabot UI PWA!" +const APP_NAME = "ChatAI UI" +const APP_DEFAULT_TITLE = "ChatAI UI" +const APP_TITLE_TEMPLATE = "%s - ChatAI UI" +const APP_DESCRIPTION = "ChaAI UI PWA!" interface RootLayoutProps { children: ReactNode @@ -24,39 +24,87 @@ interface RootLayoutProps { } } -export const metadata: Metadata = { - applicationName: APP_NAME, - title: { - default: APP_DEFAULT_TITLE, - template: APP_TITLE_TEMPLATE - }, - description: APP_DESCRIPTION, - manifest: "/manifest.json", - appleWebApp: { - capable: true, - statusBarStyle: "black", - title: APP_DEFAULT_TITLE - // startUpImage: [], - }, - formatDetection: { - telephone: false - }, - openGraph: { - type: "website", - siteName: APP_NAME, +// export const metadata: Metadata = { +// applicationName: APP_NAME, +// title: { +// default: APP_DEFAULT_TITLE, +// template: APP_TITLE_TEMPLATE +// }, +// description: APP_DESCRIPTION, +// manifest: "/manifest.json", +// appleWebApp: { +// capable: true, +// statusBarStyle: "black", +// title: APP_DEFAULT_TITLE +// // startUpImage: [], +// }, +// formatDetection: { +// telephone: false +// }, +// openGraph: { +// type: "website", +// siteName: APP_NAME, +// title: { +// default: APP_DEFAULT_TITLE, +// template: APP_TITLE_TEMPLATE +// }, +// description: APP_DESCRIPTION +// }, +// twitter: { +// card: "summary", +// title: { +// default: APP_DEFAULT_TITLE, +// template: APP_TITLE_TEMPLATE +// }, +// description: APP_DESCRIPTION +// } +// } + +export async function generateMetadata({ + params: { locale } +}: { + params: { locale: string } +}): Promise { + const { t } = await initTranslations(locale, ["meta"]) + + const appName = t("meta.appName") + const defaultTitle = t("meta.defaultTitle") + const description = t("meta.description") + const titleTemplate = `%s - ${defaultTitle}` + + return { + applicationName: appName, title: { - default: APP_DEFAULT_TITLE, - template: APP_TITLE_TEMPLATE + default: defaultTitle, + template: titleTemplate }, - description: APP_DESCRIPTION - }, - twitter: { - card: "summary", - title: { - default: APP_DEFAULT_TITLE, - template: APP_TITLE_TEMPLATE + description, + manifest: "/manifest.json", + appleWebApp: { + capable: true, + statusBarStyle: "black", + title: defaultTitle }, - description: APP_DESCRIPTION + formatDetection: { + telephone: false + }, + openGraph: { + type: "website", + siteName: appName, + title: { + default: defaultTitle, + template: titleTemplate + }, + description + }, + twitter: { + card: "summary", + title: { + default: defaultTitle, + template: titleTemplate + }, + description + } } } diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json index ef35a1a..db14b37 100644 --- a/public/locales/en/translation.json +++ b/public/locales/en/translation.json @@ -2,7 +2,12 @@ "inputPlaceholder": "Ask anything. Type \"/\" for prompts, \"@\" for files, and \"#\" for tools.", "Company Name": "Enterprise AI Chat Platform", "Clock In": "Start", - + "meta": { + "appName": "Enterprise AI Platform", + "defaultTitle": "Enterprise AI Platform", + "description": "This platform provides an intelligent dialogue system for all employees, deeply integrating cutting-edge AI technologies to fully empower enterprises to improve quality, reduce costs, and upgrade efficiently." + }, + "setup": { "LetsCreateYourProfile": "Let's create your profile.", "WelcomeToChatbotUI": "Welcome to ChatAI UI", diff --git a/public/locales/ja/translation.json b/public/locales/ja/translation.json index 0a80b8c..b7484ab 100644 --- a/public/locales/ja/translation.json +++ b/public/locales/ja/translation.json @@ -2,6 +2,12 @@ "inputPlaceholder": "何でも聞いてください。「/」でプロンプト、「@」でファイル、「#」でツールを入力してください。", "Company Name": "企業向けAIチャットプラットフォーム", "Clock In": "始める", + "meta": { + "appName": "企業向けAIプラットフォーム", + "defaultTitle": "企業向けAIプラットフォーム", + "description": "本プラットフォームは全社員向けのインテリジェントな対話システムを提供し、最先端のAI技術と深く融合することで、企業の品質向上、コスト削減、効率的なアップグレードを全面的に支援します。" + }, + "setup": { "LetsCreateYourProfile": "プロフィールを作成しましょう。", "WelcomeToChatbotUI": "ChatAI UIへようこそ", diff --git a/public/locales/zh/translation.json b/public/locales/zh/translation.json index 9a87352..f24b443 100644 --- a/public/locales/zh/translation.json +++ b/public/locales/zh/translation.json @@ -2,6 +2,12 @@ "inputPlaceholder": "随便问点什么。输入“/”查找提示,“@”查找文件,“#”查找工具。", "Company Name": "企业AI对话平台", "Clock In": "开始", + "meta": { + "appName": "企业AI平台", + "defaultTitle": "企业AI平台", + "description": "本平台提供面向全员的智能对话系统,深度融合前沿人工智能技术,全面赋能企业提质增效、降本升级。" + }, + "setup": { "LetsCreateYourProfile": "让我们来创建您的个人资料。", "WelcomeToChatbotUI": "欢迎使用 ChatAI UI",