解决编译问题
This commit is contained in:
18
src/app/[locale]/blogs/Create-3D-Letters/data.ts
Normal file
18
src/app/[locale]/blogs/Create-3D-Letters/data.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import Cover2 from "./512_288.png";
|
||||
import { BlogItem } from "../list";
|
||||
|
||||
export const Blog: BlogItem = {
|
||||
id: "Create-3D-Letters",
|
||||
date: "2025-08-07",
|
||||
cover: Cover2,
|
||||
en: {
|
||||
title: "How to Create Stunning 3D Letters Online for Free",
|
||||
summary:
|
||||
"Learn how to create stunning 3D letters online using Fast3DText — a free 3D text generator. This step-by-step guide walks you through customizing fonts, colors, background, and 3D angles, then exporting high-quality 3D text images. No design skills required.",
|
||||
},
|
||||
zh: {
|
||||
title: "如何快速创建炫酷的 3D 字母图像(免安装)",
|
||||
summary:
|
||||
"本文教你如何使用 Fast3DText 在线生成个性化的 3D 字母 图像。通过输入文字、调整字体和颜色、操控三维视角,你可以一键导出高清立体文字图片,无需任何设计基础,适用于封面、海报和社交媒体内容。",
|
||||
},
|
||||
};
|
||||
@@ -6,23 +6,8 @@ import En from "./en";
|
||||
import Zh from "./zh";
|
||||
import { Locales } from "@/i18n/config";
|
||||
import { Metadata } from "next";
|
||||
import Cover2 from "./512_288.png";
|
||||
import { Blog } from "./data";
|
||||
|
||||
export const Blog = {
|
||||
id: "Create-3D-Letters",
|
||||
date: "2025-08-07",
|
||||
cover: Cover2,
|
||||
en: {
|
||||
title: "How to Create Stunning 3D Letters Online for Free",
|
||||
summary:
|
||||
"Learn how to create stunning 3D letters online using Fast3DText — a free 3D text generator. This step-by-step guide walks you through customizing fonts, colors, background, and 3D angles, then exporting high-quality 3D text images. No design skills required.",
|
||||
},
|
||||
zh: {
|
||||
title: "如何快速创建炫酷的 3D 字母图像(免安装)",
|
||||
summary:
|
||||
"本文教你如何使用 Fast3DText 在线生成个性化的 3D 字母 图像。通过输入文字、调整字体和颜色、操控三维视角,你可以一键导出高清立体文字图片,无需任何设计基础,适用于封面、海报和社交媒体内容。",
|
||||
},
|
||||
};
|
||||
export default function Page() {
|
||||
|
||||
const locale = useLocale() as "en" | "zh";
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
import { BlogItem } from "../list";
|
||||
import Cover1 from "./512_288.png";
|
||||
export const Blog: BlogItem = {
|
||||
id: "Create-3D-Text-with-the-Barbie-Font",
|
||||
date: "2025-08-01",
|
||||
cover: Cover1,
|
||||
en: {
|
||||
title: "How to Create 3D Text with the Barbie Font",
|
||||
summary:
|
||||
"Learn how to create 3D text with the Barbie font using free online tools. Step-by-step guide to download, convert, and render Barbie-style 3D text — no coding required!",
|
||||
},
|
||||
zh: {
|
||||
title: "如何使用Barbie字体创建3D文本",
|
||||
summary:
|
||||
"学习如何使用免费在线工具,以芭比字体创建 3D 文本。下载、转换和渲染芭比风格 3D 文本的分步指南 —— 无需编码!",
|
||||
},
|
||||
};
|
||||
@@ -6,23 +6,7 @@ import En from "./en";
|
||||
import Zh from "./zh";
|
||||
import { Locales } from "@/i18n/config";
|
||||
import { Metadata } from "next";
|
||||
|
||||
import Cover1 from "./512_288.png";
|
||||
export const Blog = {
|
||||
id: "Create-3D-Text-with-the-Barbie-Font",
|
||||
date: "2025-08-01",
|
||||
cover: Cover1,
|
||||
en: {
|
||||
title: "How to Create 3D Text with the Barbie Font",
|
||||
summary:
|
||||
"Learn how to create 3D text with the Barbie font using free online tools. Step-by-step guide to download, convert, and render Barbie-style 3D text — no coding required!",
|
||||
},
|
||||
zh: {
|
||||
title: "如何使用Barbie字体创建3D文本",
|
||||
summary:
|
||||
"学习如何使用免费在线工具,以芭比字体创建 3D 文本。下载、转换和渲染芭比风格 3D 文本的分步指南 —— 无需编码!",
|
||||
},
|
||||
};
|
||||
import { Blog } from "./data";
|
||||
|
||||
export default function Page() {
|
||||
|
||||
|
||||
@@ -13,8 +13,8 @@ export interface BlogItem {
|
||||
}
|
||||
|
||||
import { StaticImageData } from "next/image";
|
||||
import { Blog as Create3DTextBlog } from "./Create-3D-Text-with-the-Barbie-Font/page";
|
||||
import { Blog as Create3DLetterBlog } from "./Create-3D-Letters/page";
|
||||
import { Blog as Create3DTextBlog } from "./Create-3D-Text-with-the-Barbie-Font/data";
|
||||
import { Blog as Create3DLetterBlog } from "./Create-3D-Letters/data";
|
||||
|
||||
export const blogs = [
|
||||
Create3DLetterBlog,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { OnlyPage } from "@/components/editor/OnlyPage";
|
||||
import { decodeText } from "@/lib/utils";
|
||||
import { OnlyPage } from "../page";
|
||||
|
||||
export default async function Page({ params }: { params: Promise<{ data: string }> }) {
|
||||
|
||||
|
||||
@@ -1,51 +1,15 @@
|
||||
|
||||
import { BackgroundProp } from "@/components/common/BackgroundSelector";
|
||||
import { TextProp } from "@/components/common/TextSetting";
|
||||
import Footer from "@/components/Footer";
|
||||
import FullEditor from "@/components/FullEditor";
|
||||
import Header from "@/components/Header";
|
||||
import { OnlyPage } from "@/components/editor/OnlyPage";
|
||||
import { Locales } from "@/i18n/config";
|
||||
import { Box, Container, Flex, Heading, Text, Card } from "@radix-ui/themes";
|
||||
import { HelpCircle } from "lucide-react";
|
||||
import { Metadata } from "next";
|
||||
import { useTranslations } from "next-intl";
|
||||
import { getTranslations } from "next-intl/server";
|
||||
const host = process.env.NEXT_PUBLIC_HOST;
|
||||
export default function Page() {
|
||||
|
||||
return (<OnlyPage textProp={undefined} backgroundProp={undefined}></OnlyPage>)
|
||||
}
|
||||
|
||||
export function OnlyPage({ textProp, backgroundProp }: { textProp: TextProp | undefined, backgroundProp: BackgroundProp | undefined }) {
|
||||
const t = useTranslations('TextEditor');
|
||||
|
||||
return <Flex direction={"column"} gap={"4"}>
|
||||
<Header />
|
||||
<Heading as="h1" weight="bold" className="text-center">{t('title')}</Heading>
|
||||
<Container p="4">
|
||||
<FullEditor
|
||||
textProp={textProp}
|
||||
backgroundProp={backgroundProp}
|
||||
/>
|
||||
</Container>
|
||||
<Container p="4">
|
||||
<Heading as="h2" weight="bold" className="text-center" mb="4">{t('faqTitle')}</Heading>
|
||||
<Flex direction="column" gap="3">
|
||||
<Card variant="surface">
|
||||
<Flex gap="3" align="center">
|
||||
<HelpCircle className="text-gray-11" size={16} />
|
||||
<Text size="3" weight="bold">{t('faqQuestion1')}</Text>
|
||||
</Flex>
|
||||
<Box pt="3" pl="6">
|
||||
<Text size="2" color="gray">{t('faqAnswer1')}</Text>
|
||||
</Box>
|
||||
</Card>
|
||||
</Flex>
|
||||
</Container>
|
||||
<Footer />
|
||||
</Flex>;
|
||||
}
|
||||
|
||||
const locales = Locales;
|
||||
|
||||
export function generateStaticParams() {
|
||||
|
||||
41
src/components/editor/OnlyPage.tsx
Normal file
41
src/components/editor/OnlyPage.tsx
Normal file
@@ -0,0 +1,41 @@
|
||||
import { BackgroundProp } from "@/components/common/BackgroundSelector";
|
||||
import { TextProp } from "@/components/common/TextSetting";
|
||||
import Footer from "@/components/Footer";
|
||||
import FullEditor from "@/components/FullEditor";
|
||||
import Header from "@/components/Header";
|
||||
import { Box, Container, Flex, Heading, Text, Card } from "@radix-ui/themes";
|
||||
import { HelpCircle } from "lucide-react";
|
||||
import { useTranslations } from "next-intl";
|
||||
|
||||
export function OnlyPage({ textProp, backgroundProp }: {
|
||||
textProp: TextProp | undefined;
|
||||
backgroundProp: BackgroundProp | undefined
|
||||
}) {
|
||||
const t = useTranslations('TextEditor');
|
||||
|
||||
return <Flex direction={"column"} gap={"4"}>
|
||||
<Header />
|
||||
<Heading as="h1" weight="bold" className="text-center">{t('title')}</Heading>
|
||||
<Container p="4">
|
||||
<FullEditor
|
||||
textProp={textProp}
|
||||
backgroundProp={backgroundProp}
|
||||
/>
|
||||
</Container>
|
||||
<Container p="4">
|
||||
<Heading as="h2" weight="bold" className="text-center" mb="4">{t('faqTitle')}</Heading>
|
||||
<Flex direction="column" gap="3">
|
||||
<Card variant="surface">
|
||||
<Flex gap="3" align="center">
|
||||
<HelpCircle className="text-gray-11" size={16} />
|
||||
<Text size="3" weight="bold">{t('faqQuestion1')}</Text>
|
||||
</Flex>
|
||||
<Box pt="3" pl="6">
|
||||
<Text size="2" color="gray">{t('faqAnswer1')}</Text>
|
||||
</Box>
|
||||
</Card>
|
||||
</Flex>
|
||||
</Container>
|
||||
<Footer />
|
||||
</Flex>;
|
||||
}
|
||||
Reference in New Issue
Block a user