mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
feat(i18n): add zh-Hans translation for homepage
This commit is contained in:
@@ -72,22 +72,22 @@ export function Hero() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="relative">
|
<div className="relative">
|
||||||
<Link href="/pricing" className="relative z-10">
|
<Link href="/pricing" className="relative z-10 mb-4 inline-block">
|
||||||
<div className="flex items-center justify-center">
|
<div className="flex items-center justify-center">
|
||||||
<div
|
<div
|
||||||
className={cn(
|
className={cn(
|
||||||
"group rounded-full border border-black/5 bg-neutral-100 text-sm font-medium text-white transition-all ease-in hover:cursor-pointer hover:bg-neutral-200 dark:border-white/5 dark:bg-neutral-900 dark:hover:bg-neutral-800",
|
"group rounded-full border border-black/5 bg-neutral-100 text-sm font-medium text-white transition-all ease-in hover:cursor-pointer hover:bg-neutral-200 dark:border-white/5 dark:bg-neutral-900 dark:hover:bg-neutral-800",
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<AnimatedShinyText className="inline-flex items-center justify-center px-4 py-1 transition ease-out text-neutral-800 hover:text-neutral-900 hover:duration-300 hover:dark:text-neutral-400">
|
<AnimatedShinyText className="inline-flex items-center justify-center px-4 py-1 text-neutral-800 transition ease-out hover:text-neutral-900 hover:duration-300 hover:dark:text-neutral-400">
|
||||||
<span>🚀 Introducing Dokploy Cloud </span>
|
<span>🚀 {t("hero.cloud")} </span>
|
||||||
<ArrowRightIcon className="ml-1 size-3 transition-transform duration-300 ease-in-out group-hover:translate-x-0.5" />
|
<ArrowRightIcon className="ml-1 size-3 transition-transform duration-300 ease-in-out group-hover:translate-x-0.5" />
|
||||||
</AnimatedShinyText>
|
</AnimatedShinyText>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
|
|
||||||
<h1 className="mx-auto max-w-4xl font-display text-5xl font-medium tracking-tight text-muted-foreground sm:text-7xl">
|
<h1 className="mx-auto max-w-4xl font-display text-5xl font-medium tracking-tight text-muted-foreground sm:text-7xl">
|
||||||
{t("hero.deploy")}{" "}
|
{t("hero.deploy")}{" "}
|
||||||
<span className="relative whitespace-nowrap text-primary">
|
<span className="relative whitespace-nowrap text-primary">
|
||||||
<svg
|
<svg
|
||||||
@@ -144,8 +144,8 @@ export function Hero() {
|
|||||||
</Link>
|
</Link>
|
||||||
</Button> */}
|
</Button> */}
|
||||||
</div>
|
</div>
|
||||||
<div className="flex flex-wrap items-center justify-center gap-3 md:flex-nowrap max-w-sm mx-auto w-full">
|
<div className="mx-auto flex w-full max-w-sm flex-wrap items-center justify-center gap-3 md:flex-nowrap">
|
||||||
<Button className="rounded-xl w-full" asChild>
|
<Button className="w-full rounded-xl" asChild>
|
||||||
<Link
|
<Link
|
||||||
href="https://github.com/dokploy/dokploy"
|
href="https://github.com/dokploy/dokploy"
|
||||||
aria-label="Dokploy on GitHub"
|
aria-label="Dokploy on GitHub"
|
||||||
@@ -159,7 +159,7 @@ export function Hero() {
|
|||||||
</Link>
|
</Link>
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
className="rounded-xl bg-[#5965F2] hover:bg-[#4A55E0] w-full"
|
className="w-full rounded-xl bg-[#5965F2] hover:bg-[#4A55E0]"
|
||||||
asChild
|
asChild
|
||||||
>
|
>
|
||||||
<Link
|
<Link
|
||||||
@@ -223,22 +223,20 @@ export function Hero() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const ShowSponsors = () => {
|
export const ShowSponsors = () => {
|
||||||
|
const t = useTranslations("HomePage");
|
||||||
return (
|
return (
|
||||||
<div className="mt-20 flex flex-col justify-center gap-y-10">
|
<div className="mt-20 flex flex-col justify-center gap-y-10">
|
||||||
<div className="flex flex-col gap-4 justify-start">
|
<div className="flex flex-col justify-start gap-4">
|
||||||
<h1 className="mx-auto max-w-2xl font-display text-3xl font-medium tracking-tight text-primary sm:text-5xl">
|
<h1 className="mx-auto max-w-2xl font-display text-3xl font-medium tracking-tight text-primary sm:text-5xl">
|
||||||
Sponsors
|
{t("hero.sponsors.title")}
|
||||||
</h1>
|
</h1>
|
||||||
<p className="mx-auto max-w-2xl text-lg tracking-tight text-muted-foreground">
|
<p className="mx-auto max-w-2xl text-lg tracking-tight text-muted-foreground">
|
||||||
Dokploy is an open source project that is maintained by a community of
|
{t("hero.sponsors.description")}
|
||||||
volunteers. We would like to thank our sponsors for their support and
|
|
||||||
contributions to the project, which help us to continue to develop and
|
|
||||||
improve Dokploy.
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex flex-col gap-4 md:gap-6 justify-start">
|
<div className="flex flex-col items-center justify-start gap-4 md:gap-6">
|
||||||
<h2 className="font-display text-2xl font-medium tracking-tight text-primary sm:text-2xl text-left">
|
<h2 className="text-left font-display text-2xl font-medium tracking-tight text-primary sm:text-2xl">
|
||||||
Hero Sponsors 🎖
|
{t("hero.sponsors.level.hero")} 🎖
|
||||||
</h2>
|
</h2>
|
||||||
<div className="flex flex-wrap items-center gap-4">
|
<div className="flex flex-wrap items-center gap-4">
|
||||||
<a
|
<a
|
||||||
@@ -250,7 +248,7 @@ export const ShowSponsors = () => {
|
|||||||
<img
|
<img
|
||||||
src="https://raw.githubusercontent.com/Dokploy/dokploy/canary/.github/sponsors/hostinger.jpg"
|
src="https://raw.githubusercontent.com/Dokploy/dokploy/canary/.github/sponsors/hostinger.jpg"
|
||||||
alt="hostinger.com"
|
alt="hostinger.com"
|
||||||
className="rounded-xl w-[190px] h-auto"
|
className="h-auto w-[190px] rounded-xl"
|
||||||
/>
|
/>
|
||||||
</a>
|
</a>
|
||||||
<a
|
<a
|
||||||
@@ -262,16 +260,16 @@ export const ShowSponsors = () => {
|
|||||||
<img
|
<img
|
||||||
src="https://raw.githubusercontent.com/Dokploy/dokploy/canary/.github/sponsors/lxaer.png"
|
src="https://raw.githubusercontent.com/Dokploy/dokploy/canary/.github/sponsors/lxaer.png"
|
||||||
alt="lxaer.com"
|
alt="lxaer.com"
|
||||||
className="rounded-xl w-[70px] h-auto"
|
className="h-auto w-[70px] rounded-xl"
|
||||||
/>
|
/>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex flex-col gap-4 md:gap-8 justify-start">
|
<div className="flex flex-col items-center justify-start gap-4 md:gap-8">
|
||||||
<h2 className="font-display text-2xl font-medium tracking-tight text-primary sm:text-2xl text-left">
|
<h2 className="text-left font-display text-2xl font-medium tracking-tight text-primary sm:text-2xl">
|
||||||
Premium Supporters 🥇
|
{t("hero.sponsors.level.premium")} 🥇
|
||||||
</h2>
|
</h2>
|
||||||
<div className="grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
|
<div className="flex flex-col items-center justify-start gap-4 md:gap-6">
|
||||||
<a
|
<a
|
||||||
href="https://supafort.com/?ref=dokploy"
|
href="https://supafort.com/?ref=dokploy"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
@@ -286,9 +284,9 @@ export const ShowSponsors = () => {
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex flex-col gap-4 md:gap-8 justify-start">
|
<div className="flex flex-col items-center justify-start gap-4 md:gap-8">
|
||||||
<h2 className="font-display text-2xl font-medium tracking-tight text-primary sm:text-2xl text-left">
|
<h2 className="text-left font-display text-2xl font-medium tracking-tight text-primary sm:text-2xl">
|
||||||
Supporting Members 🥉
|
{t("hero.sponsors.level.supporting")} 🥉
|
||||||
</h2>
|
</h2>
|
||||||
<div className="flex flex-row gap-10">
|
<div className="flex flex-row gap-10">
|
||||||
<a
|
<a
|
||||||
@@ -317,9 +315,9 @@ export const ShowSponsors = () => {
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex flex-col gap-4 md:gap-8 justify-start">
|
<div className="justify-star flex flex-col items-center gap-4 md:gap-8">
|
||||||
<h2 className="font-display text-2xl font-medium tracking-tight text-primary sm:text-2xl text-left">
|
<h2 className="text-left font-display text-2xl font-medium tracking-tight text-primary sm:text-2xl">
|
||||||
Community Backers 🤝
|
{t("hero.sponsors.level.community")} 🤝
|
||||||
</h2>
|
</h2>
|
||||||
<div className="flex flex-row gap-10">
|
<div className="flex flex-row gap-10">
|
||||||
<a
|
<a
|
||||||
@@ -361,9 +359,9 @@ export const ShowSponsors = () => {
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex flex-col gap-4 md:gap-8 justify-start">
|
<div className="flex flex-col items-center justify-start gap-4 md:gap-8">
|
||||||
<h2 className="font-display text-2xl font-medium tracking-tight text-primary sm:text-2xl text-left">
|
<h2 className="text-left font-display text-2xl font-medium tracking-tight text-primary sm:text-2xl">
|
||||||
Organizations:
|
{t("hero.sponsors.level.organizations")}
|
||||||
</h2>
|
</h2>
|
||||||
<div className="flex flex-row gap-10">
|
<div className="flex flex-row gap-10">
|
||||||
<a
|
<a
|
||||||
@@ -378,9 +376,9 @@ export const ShowSponsors = () => {
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex flex-col gap-4 md:gap-8 justify-start">
|
<div className="flex flex-col items-center justify-start gap-4 md:gap-8">
|
||||||
<h2 className="font-display text-2xl font-medium tracking-tight text-primary sm:text-2xl text-left">
|
<h2 className="text-left font-display text-2xl font-medium tracking-tight text-primary sm:text-2xl">
|
||||||
Individuals:
|
{t("hero.sponsors.level.individuals")}
|
||||||
</h2>
|
</h2>
|
||||||
<div className="flex flex-row gap-10">
|
<div className="flex flex-row gap-10">
|
||||||
<a
|
<a
|
||||||
|
|||||||
@@ -11,11 +11,24 @@
|
|||||||
"i18nZh-Hans": "简体中文"
|
"i18nZh-Hans": "简体中文"
|
||||||
},
|
},
|
||||||
"hero": {
|
"hero": {
|
||||||
|
"cloud": "Introducing Dokploy Cloud",
|
||||||
"deploy": "Deploy",
|
"deploy": "Deploy",
|
||||||
"anywhere": "Anywhere",
|
"anywhere": "Anywhere",
|
||||||
"with": "with Total Freedom and Ease.",
|
"with": "with Total Freedom and Ease.",
|
||||||
"des": "Streamline your operations with our all-in-one platform—perfect for managing projects, data, and system health with simplicity and efficiency.",
|
"des": "Streamline your operations with our all-in-one platform—perfect for managing projects, data, and system health with simplicity and efficiency.",
|
||||||
"featuredIn": "Featured in"
|
"featuredIn": "Featured in",
|
||||||
|
"sponsors": {
|
||||||
|
"title": "Sponsors",
|
||||||
|
"description": "Dokploy is an open source project that is maintained by a community of volunteers. We would like to thank our sponsors for their support and contributions to the project, which help us to continue to develop and improve Dokploy.",
|
||||||
|
"level": {
|
||||||
|
"hero": "Hero Sponsors",
|
||||||
|
"premium": "Premium Supporters",
|
||||||
|
"supporting": "Supporting Members",
|
||||||
|
"community": "Community Backers",
|
||||||
|
"organizations": "Organizations",
|
||||||
|
"individuals": "Individuals"
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"primaryFeatures": {
|
"primaryFeatures": {
|
||||||
"title": "Comprehensive Control for Your Digital Ecosystem",
|
"title": "Comprehensive Control for Your Digital Ecosystem",
|
||||||
|
|||||||
@@ -11,11 +11,24 @@
|
|||||||
"i18nZh-Hans": "简体中文"
|
"i18nZh-Hans": "简体中文"
|
||||||
},
|
},
|
||||||
"hero": {
|
"hero": {
|
||||||
|
"cloud": "隆重介绍 Dokploy 云",
|
||||||
"deploy": "部署在",
|
"deploy": "部署在",
|
||||||
"anywhere": "任何设施之上",
|
"anywhere": "任何设施之上",
|
||||||
"with": "",
|
"with": "",
|
||||||
"des": "以前所未有的简洁和高效提供一站式项目、数据的管理以及系统监控。",
|
"des": "以前所未有的简洁和高效提供一站式项目、数据的管理以及系统监控。",
|
||||||
"featuredIn": "发布于"
|
"featuredIn": "发布于",
|
||||||
|
"sponsors": {
|
||||||
|
"title": "赞助名单",
|
||||||
|
"description": "Dokploy 是由社区成员共同支持的完全免费的开源项目,您的慷慨解囊将帮助我们继续开发和改进 Dokploy。",
|
||||||
|
"level": {
|
||||||
|
"hero": "特别赞助",
|
||||||
|
"premium": "金牌赞助",
|
||||||
|
"supporting": "银牌赞助",
|
||||||
|
"community": "铜牌赞助",
|
||||||
|
"organizations": "组织赞助",
|
||||||
|
"individuals": "个人赞助"
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"primaryFeatures": {
|
"primaryFeatures": {
|
||||||
"title": "全面掌控您的基础设施",
|
"title": "全面掌控您的基础设施",
|
||||||
|
|||||||
Reference in New Issue
Block a user