checkpoint: before i18n implementation

This commit is contained in:
Leon-in
2026-04-29 00:29:14 +08:00
parent ded6c67a36
commit 437dc976fb
41 changed files with 2167 additions and 1855 deletions
+68 -64
View File
@@ -1,5 +1,36 @@
import LottiePlayer from "@/components/LottiePlayer"
import Link from "next/link"
import { CONTACT_CHANNELS } from "@/lib/site-content"
const CONTACT_CARDS = [
{
title: "产品试用 / Demo",
description: "适合还在判断 DAL Code 是否匹配当前研发流程的团队,建议先从一个真实任务场景开始聊。",
linkText: "提交试用需求",
href: CONTACT_CHANNELS[0].href,
external: false,
lottie:
"/assets/cdn-prod-website-files-com/68a342b7066c56fa60eb3af1/68d28ff8a28b3e0d6614fe9b_help-support-animation-row-wave.json",
},
{
title: "企业方案 / 安全合规",
description: "适合已经明确关注私有化、审批流、权限治理、采购流程和团队协作边界的负责人。",
linkText: "说明企业约束",
href: CONTACT_CHANNELS[1].href,
external: false,
lottie:
"/assets/cdn-prod-website-files-com/68a342b7066c56fa60eb3af1/68d28ff844db76df2f0ca451_press-media-animation-row-wave.json",
},
{
title: "生态合作 / Skills 共建",
description: "适合希望围绕插件、模板、知识工作流和开发者社区共同建设产品生态的伙伴。",
linkText: "访问 DeepAILab",
href: CONTACT_CHANNELS[2].href,
external: true,
lottie:
"/assets/cdn-prod-website-files-com/68a342b7066c56fa60eb3af1/68d28ff8806a1552f46e35ac_sales-inquiries-animation-visual-row.json",
},
] as const
export default function FormSection() {
return (
@@ -7,82 +38,55 @@ export default function FormSection() {
<div className="w-layout-blockcontainer container-default w-container">
<div data-w-id="37f8537e-c33a-f3ad-764c-d5c8b3ff1b64" style={{"opacity": "0", "filter": "blur(8px)"}} className="inner-container _650px center">
<div className="text-center">
<div className="subtitle">Contact us</div>
<div className="subtitle"></div>
<div className="mg-top-4x-extra-small">
<h2>
Reach us directly</h2>
</h2>
</div>
<div className="mg-top-4x-extra-small">
<p>
ipsum dolor sit amet consectetur ut consequat luctus a ornare auctor mauris necolmer doloe. </p>
DAL Code
</p>
</div>
</div>
</div>
<div className="mg-top-regular">
<div data-w-id="37f8537e-c33a-f3ad-764c-d5c8b3ff1b6a" style={{"opacity": "0", "filter": "blur(8px)"}} className="w-layout-grid contact-cards-grid-v1">
<a data-w-id="c3b7cbc7-6bb0-417d-8af2-d16c83e09934" href="mailto:support@quantumlab.com" className="card contact-card-v1 w-inline-block" target="_blank" rel="noopener noreferrer">
<div className="contact-card-v1-content">
<LottiePlayer src="/assets/cdn-prod-website-files-com/68a342b7066c56fa60eb3af1/68d28ff8a28b3e0d6614fe9b_help-support-animation-row-wave.json" className="contact-card-v1-image" loop autoplay />
<div>
<h3 className="display-4">Help & support</h3>
<div className="mg-top-5x-extra-small">
<p className="text-paragraph">
ipsum dolor sit amet consectetur nec quis suspendisse nulla amet viverra tortor. </p>
{CONTACT_CARDS.map((card) => {
const body = (
<>
<div className="contact-card-v1-content">
<LottiePlayer src={card.lottie} className="contact-card-v1-image" loop autoplay />
<div>
<h3 className="display-4">{card.title}</h3>
<div className="mg-top-5x-extra-small">
<p className="text-paragraph">{card.description}</p>
</div>
</div>
</div>
</div>
</div>
<div className="contact-card-v1-link-wrapper">
<div className="contact-link-text">support@quantumlab.com</div>
<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 17 17" fill="none" className="squared-icon">
<path d="M6.25391 3.45312L10.7458 8.01563L6.25391 12.5781" stroke="currentColor" strokeWidth="1.5" strokeLinecap="square">
</path>
</svg>
<div style={{"width": "0%", "height": "100%"}} className="contact-card-link-bg">
</div>
</div>
</a>
<a data-w-id="9fa843fd-acac-5e66-0694-1c416deeff73" href="mailto:media@quantumlab.com" className="card contact-card-v1 w-inline-block" target="_blank" rel="noopener noreferrer">
<div className="contact-card-v1-content">
<LottiePlayer src="/assets/cdn-prod-website-files-com/68a342b7066c56fa60eb3af1/68d28ff844db76df2f0ca451_press-media-animation-row-wave.json" className="contact-card-v1-image" loop autoplay />
<div>
<h3 className="display-4">Press & media</h3>
<div className="mg-top-5x-extra-small">
<p className="text-paragraph">
ipsum dolor sit amet consectetur nec quis suspendisse nulla amet viverra tortor. </p>
<div className="contact-card-v1-link-wrapper">
<div className="contact-link-text">{card.linkText}</div>
<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 17 17" fill="none" className="squared-icon">
<path d="M6.25391 3.45312L10.7458 8.01563L6.25391 12.5781" stroke="currentColor" strokeWidth="1.5" strokeLinecap="square">
</path>
</svg>
<div style={{"width": "0%", "height": "100%"}} className="contact-card-link-bg">
</div>
</div>
</div>
</div>
<div className="contact-card-v1-link-wrapper">
<div className="contact-link-text">media@quantumlab.com</div>
<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 17 17" fill="none" className="squared-icon">
<path d="M6.25391 3.45312L10.7458 8.01563L6.25391 12.5781" stroke="currentColor" strokeWidth="1.5" strokeLinecap="square">
</path>
</svg>
<div style={{"width": "0%", "height": "100%"}} className="contact-card-link-bg">
</div>
</div>
</a>
<a data-w-id="4355aa2b-5646-3ff5-91b3-2f90df58ae42" href="mailto:sales@quantumlab.com" className="card contact-card-v1 w-inline-block" target="_blank" rel="noopener noreferrer">
<div className="contact-card-v1-content">
<LottiePlayer src="/assets/cdn-prod-website-files-com/68a342b7066c56fa60eb3af1/68d28ff8806a1552f46e35ac_sales-inquiries-animation-visual-row.json" className="contact-card-v1-image" loop autoplay />
<div>
<h3 className="display-4">Sales & inquiries</h3>
<div className="mg-top-5x-extra-small">
<p className="text-paragraph">
ipsum dolor sit amet consectetur nec quis suspendisse nulla amet viverra tortor. </p>
</div>
</div>
</div>
<div className="contact-card-v1-link-wrapper">
<div className="contact-link-text">sales@quantumlab.com</div>
<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 17 17" fill="none" className="squared-icon">
<path d="M6.25391 3.45312L10.7458 8.01563L6.25391 12.5781" stroke="currentColor" strokeWidth="1.5" strokeLinecap="square">
</path>
</svg>
<div style={{"width": "0%", "height": "100%"}} className="contact-card-link-bg">
</div>
</div>
</a>
</>
)
return card.external ? (
<a key={card.title} data-w-id={`contact-card-${card.title}`} href={card.href} className="card contact-card-v1 w-inline-block" target="_blank" rel="noopener noreferrer">
{body}
</a>
) : (
<Link key={card.title} href={card.href} className="card contact-card-v1 w-inline-block">
{body}
</Link>
)
})}
</div>
</div>
</div>