2025-09-15 18:30:09 +08:00

446 lines
21 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'use client';
import { useState, useEffect } from 'react';
import { useTDK } from '../../../lib/useTDK';
import { useRouter, usePathname } from 'next/navigation';
import Navigation from '../../../components/Navigation';
import Footer from '../../../components/Footer';
import BackgroundElements from '../../../components/BackgroundElements';
interface PageProps {
params: { locale: string };
}
export default function SupportPage({ params }: PageProps) {
const [currentLang, setCurrentLang] = useState(params.locale);
const [isLoaded, setIsLoaded] = useState(false);
const router = useRouter();
const pathname = usePathname();
// Update TDK when language changes
useTDK(currentLang, 'support');
const translations = {
'zh-CN': {
nav: {
home: '首页',
products: '产品',
pricing: '价格',
support: '支持',
contact: '联系我们',
},
support: {
title: '技术支持',
subtitle: '我们随时为您提供帮助',
description: '无论您遇到什么问题,我们的专业团队都会为您提供及时的技术支持',
faq: {
title: '常见问题',
items: [
{
question: '如何开始使用云服务器?',
answer: '注册账户后选择适合的套餐我们会在5分钟内为您部署服务器。',
},
{
question: '支持哪些操作系统?',
answer: '我们支持Ubuntu、CentOS、Debian、Windows Server等主流操作系统。',
},
{
question: '如何备份数据?',
answer: '我们提供自动备份服务,您也可以手动创建快照备份。',
},
],
},
contact: {
title: '联系支持',
email: '邮箱支持',
phone: '电话支持',
chat: '在线客服',
ticket: '提交工单',
},
},
footer: {
copyright: `© ${new Date().getFullYear()} CloudProxy. 版权所有.`,
},
},
'zh-TW': {
nav: {
home: '首頁',
products: '產品',
pricing: '價格',
support: '支援',
contact: '聯絡我們',
},
support: {
title: '技術支援',
subtitle: '我們隨時為您提供幫助',
description: '無論您遇到什麼問題,我們的專業團隊都會為您提供及時的技術支援',
faq: {
title: '常見問題',
items: [
{
question: '如何開始使用雲端伺服器?',
answer: '註冊帳戶後選擇適合的套餐我們會在5分鐘內為您部署伺服器。',
},
{
question: '支援哪些作業系統?',
answer: '我們支援Ubuntu、CentOS、Debian、Windows Server等主流作業系統。',
},
{
question: '如何備份資料?',
answer: '我們提供自動備份服務,您也可以手動建立快照備份。',
},
],
},
contact: {
title: '聯絡支援',
email: '郵箱支援',
phone: '電話支援',
chat: '線上客服',
ticket: '提交工單',
},
},
footer: {
copyright: `© ${new Date().getFullYear()} CloudProxy. 版權所有.`,
},
},
en: {
nav: {
home: 'Home',
products: 'Products',
pricing: 'Pricing',
support: 'Support',
contact: 'Contact',
},
support: {
title: 'Technical Support',
subtitle: "We're here to help you",
description:
'Whatever issues you encounter, our professional team will provide timely technical support',
faq: {
title: 'Frequently Asked Questions',
items: [
{
question: 'How do I get started with cloud servers?',
answer: "After registering an account, choose a suitable plan, and we'll deploy your server within 5 minutes.",
},
{
question: 'Which operating systems are supported?',
answer: 'We support mainstream operating systems including Ubuntu, CentOS, Debian, Windows Server, etc.',
},
{
question: 'How do I backup my data?',
answer: 'We provide automatic backup services, and you can also manually create snapshot backups.',
},
],
},
contact: {
title: 'Contact Support',
email: 'Email Support',
phone: 'Phone Support',
chat: 'Live Chat',
ticket: 'Submit Ticket',
},
},
footer: {
copyright: `© ${new Date().getFullYear()} CloudProxy. All rights reserved.`,
},
},
ko: {
nav: {
home: '홈',
products: '제품',
pricing: '가격',
support: '지원',
contact: '연락처',
},
support: {
title: '기술 지원',
subtitle: '언제든지 도움을 드립니다',
description: '어떤 문제가 발생하더라도 전문 팀이 신속한 기술 지원을 제공합니다',
faq: {
title: '자주 묻는 질문',
items: [
{
question: '클라우드 서버를 어떻게 시작하나요?',
answer: '계정 등록 후 적합한 플랜을 선택하면 5분 내에 서버를 배포해드립니다.',
},
{
question: '어떤 운영체제를 지원하나요?',
answer: 'Ubuntu, CentOS, Debian, Windows Server 등 주요 운영체제를 지원합니다.',
},
{
question: '데이터를 어떻게 백업하나요?',
answer: '자동 백업 서비스를 제공하며, 수동으로 스냅샷 백업을 생성할 수도 있습니다.',
},
],
},
contact: {
title: '지원 연락',
email: '이메일 지원',
phone: '전화 지원',
chat: '실시간 채팅',
ticket: '티켓 제출',
},
},
footer: {
copyright: `© ${new Date().getFullYear()} CloudProxy. 모든 권리 보유.`,
},
},
ja: {
nav: {
home: 'ホーム',
products: '製品',
pricing: '価格',
support: 'サポート',
contact: 'お問い合わせ',
},
support: {
title: 'テクニカルサポート',
subtitle: 'いつでもお手伝いします',
description:
'どのような問題が発生しても、専門チームが迅速な技術サポートを提供します',
faq: {
title: 'よくある質問',
items: [
{
question: 'クラウドサーバーの使用を開始するには?',
answer: 'アカウント登録後、適切なプランを選択すると、5分以内にサーバーを展開します。',
},
{
question: 'どのオペレーティングシステムがサポートされていますか?',
answer: 'Ubuntu、CentOS、Debian、Windows Serverなどの主要なオペレーティングシステムをサポートしています。',
},
{
question: 'データをバックアップするには?',
answer: '自動バックアップサービスを提供しており、手動でスナップショットバックアップを作成することもできます。',
},
],
},
contact: {
title: 'サポートに連絡',
email: 'メールサポート',
phone: '電話サポート',
chat: 'ライブチャット',
ticket: 'チケット提出',
},
},
footer: {
copyright: `© ${new Date().getFullYear()} CloudProxy. 全著作権所有.`,
},
},
};
const t = translations[currentLang as keyof typeof translations] || translations['zh-CN'];
useEffect(() => {
setIsLoaded(true);
setCurrentLang(params.locale);
}, [params.locale]);
const handleLanguageChange = (newLang: string) => {
const currentPath = pathname.replace(`/${currentLang}`, '');
router.push(`/${newLang}${currentPath}`);
};
return (
<div className="min-h-screen bg-gray-900 text-white overflow-hidden" data-oid="xriserc">
<BackgroundElements data-oid="7754l29" />
<Navigation
t={t}
currentLang={currentLang}
onLanguageChange={handleLanguageChange}
isLoaded={isLoaded}
data-oid=".ueot:j"
/>
<main className="relative z-10 max-w-7xl mx-auto px-6 py-12" data-oid="msfyv6m">
{/* Header */}
<div
className={`text-center mb-16 transition-all duration-1000 delay-300 ${isLoaded ? 'translate-y-0 opacity-100' : 'translate-y-20 opacity-0'}`}
data-oid="kw0yeug"
>
<h1 className="text-5xl lg:text-6xl font-bold mb-6" data-oid="8651fb7">
<span
className="bg-gradient-to-r from-white via-purple-200 to-pink-200 bg-clip-text text-transparent"
data-oid="1t1us0b"
>
{t.support.title}
</span>
</h1>
<p className="text-xl text-purple-300 mb-4" data-oid="97azn5d">
{t.support.subtitle}
</p>
<p className="text-lg text-gray-300 max-w-3xl mx-auto" data-oid="g6na3pj">
{t.support.description}
</p>
</div>
<div className="grid grid-cols-1 lg:grid-cols-2 gap-12" data-oid="ebahobw">
{/* FAQ Section */}
<div
className={`transition-all duration-1000 delay-500 ${isLoaded ? 'translate-x-0 opacity-100' : '-translate-x-20 opacity-0'}`}
data-oid="xz9wsi6"
>
<h2
className="text-3xl font-bold mb-8 bg-gradient-to-r from-purple-400 to-pink-400 bg-clip-text text-transparent"
data-oid="rwi-i34"
>
{t.support.faq.title}
</h2>
<div className="space-y-6" data-oid="ok_ao19">
{t.support.faq.items.map((item, index) => (
<div
key={index}
className="bg-gray-800/50 backdrop-blur-sm p-6 rounded-xl border border-gray-700 hover:border-purple-500/50 transition-all duration-300"
data-oid="i.1wvtv"
>
<h3
className="text-lg font-semibold text-white mb-3"
data-oid=".uip300"
>
{item.question}
</h3>
<p className="text-gray-300 leading-relaxed" data-oid="mu00inz">
{item.answer}
</p>
</div>
))}
</div>
</div>
{/* Contact Support */}
<div
className={`transition-all duration-1000 delay-700 ${isLoaded ? 'translate-x-0 opacity-100' : 'translate-x-20 opacity-0'}`}
data-oid="u57fs8g"
>
<h2
className="text-3xl font-bold mb-8 bg-gradient-to-r from-purple-400 to-pink-400 bg-clip-text text-transparent"
data-oid="fck_y7_"
>
{t.support.contact.title}
</h2>
<div className="space-y-6" data-oid="3et391e">
{[
{
title: t.support.contact.email,
icon: (
<svg
className="w-8 h-8 text-purple-400 group-hover:text-purple-300 transition-colors duration-300"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
data-oid="aehqj9e"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth={2}
d="M3 8l7.89 4.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"
data-oid="mot6dmt"
/>
</svg>
),
desc: 'support@cloudproxy.com',
},
{
title: t.support.contact.phone,
icon: (
<svg
className="w-8 h-8 text-green-400 group-hover:text-green-300 transition-colors duration-300"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
data-oid="w6sd_4d"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth={2}
d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"
data-oid=":vdfcau"
/>
</svg>
),
desc: '+1 (555) 123-4567',
},
{
title: t.support.contact.chat,
icon: (
<svg
className="w-8 h-8 text-blue-400 group-hover:text-blue-300 transition-colors duration-300"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
data-oid="3_.1h6e"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth={2}
d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"
data-oid="zjaeet2"
/>
</svg>
),
desc: '24/7 Live Support',
},
{
title: t.support.contact.ticket,
icon: (
<svg
className="w-8 h-8 text-orange-400 group-hover:text-orange-300 transition-colors duration-300"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
data-oid="62z1bdc"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth={2}
d="M15 5v2m0 4v2m0 4v2M5 5a2 2 0 00-2 2v3a2 2 0 110 4v3a2 2 0 002 2h14a2 2 0 002-2v-3a2 2 0 110-4V7a2 2 0 00-2-2H5z"
data-oid=".jnx:32"
/>
</svg>
),
desc: 'Submit Support Ticket',
},
].map((contact, index) => (
<div
key={index}
className="bg-gray-800/50 backdrop-blur-sm p-6 rounded-xl border border-gray-700 hover:border-purple-500/50 transition-all duration-300 cursor-pointer group"
data-oid="eyf334c"
>
<div className="flex items-center space-x-4" data-oid="cu-n4ae">
<div className="flex-shrink-0" data-oid="8gjwu3l">
{contact.icon}
</div>
<div data-oid="tgee76w">
<h3
className="text-lg font-semibold text-white group-hover:text-purple-300 transition-colors duration-300"
data-oid=":-f-ynz"
>
{contact.title}
</h3>
<p className="text-gray-400" data-oid="0f__c9o">
{contact.desc}
</p>
</div>
</div>
</div>
))}
</div>
</div>
</div>
</main>
<Footer t={t} data-oid="a89892o" />
</div>
);
}