HaoAws/components/HomePageSEO.tsx

315 lines
11 KiB
TypeScript
Raw Normal View History

2025-09-16 16:37:48 +08:00
'use client';
import { Locale, getTranslations } from '@/lib/i18n';
import { getSEOData } from '@/lib/seo';
import { useEffect, useState } from 'react';
import type { SEOData } from '@/lib/seo';
interface HomePageSEOProps {
locale: Locale;
}
export default function HomePageSEO({ locale }: HomePageSEOProps) {
const [seoData, setSeoData] = useState<SEOData | null>(null);
const [homeData, setHomeData] = useState<any | null>(null);
useEffect(() => {
const loadData = async () => {
try {
const [seo, home] = await Promise.all([
getSEOData(locale, 'home'),
getTranslations(locale, 'home'),
]);
setSeoData(seo);
setHomeData(home);
} catch (error) {
console.error('Failed to load SEO data:', error);
}
};
loadData();
}, [locale]);
const getLocalizedContent = () => {
const content = {
'zh-CN': {
companyName: '创新科技',
description: '专注企业数字化转型的科技公司',
services: ['数字化转型咨询', 'ERP系统开发', 'AI数据分析', '云迁移服务', '网络安全'],
address: '中国北京市朝阳区',
phone: '+86-400-123-4567',
email: 'contact@xintech',
},
'zh-TW': {
companyName: '創新科技',
description: '專注企業數位化轉型的科技公司',
services: [
'數位化轉型諮詢',
'ERP系統開發',
'AI數據分析',
'雲端遷移服務',
'網路安全',
],
address: '中國北京市朝陽區',
phone: '+86-400-123-4567',
email: 'contact@xintech',
},
en: {
companyName: 'Innovation Tech',
description: 'Technology company focused on enterprise digital transformation',
services: [
'Digital Transformation Consulting',
'ERP System Development',
'AI Data Analytics',
'Cloud Migration Services',
'Cybersecurity',
],
address: 'Chaoyang District, Beijing, China',
phone: '+86-400-123-4567',
email: 'contact@xintech',
},
};
return content[locale] || content['zh-CN'];
};
const content = getLocalizedContent();
const baseUrl = 'https://xintech';
const currentUrl = `${baseUrl}${locale === 'zh-CN' ? '' : `/${locale}`}`;
// Organization Schema
const organizationSchema = {
'@context': 'https://schema.org',
'@type': 'Organization',
'@id': `${baseUrl}/#organization`,
name: content.companyName,
alternateName: 'Innovation Tech',
description: content.description,
url: currentUrl,
logo: {
'@type': 'ImageObject',
url: `${baseUrl}/logo.png`,
width: 300,
height: 100,
},
image: `${baseUrl}/company-image.jpg`,
telephone: content.phone,
email: content.email,
address: {
'@type': 'PostalAddress',
addressCountry: 'CN',
addressLocality: 'Beijing',
addressRegion: 'Beijing',
streetAddress: content.address,
},
contactPoint: [
{
'@type': 'ContactPoint',
telephone: content.phone,
contactType: 'customer service',
availableLanguage: ['Chinese', 'English'],
areaServed: ['CN', 'US', 'GB', 'AU'],
},
{
'@type': 'ContactPoint',
email: content.email,
contactType: 'sales',
availableLanguage: ['Chinese', 'English'],
},
],
sameAs: [
'https://www.linkedin.com/company/haoaws',
'https://twitter.com/innovation_tech',
'https://www.facebook.com/innovation.tech',
'https://github.com/haoaws',
],
foundingDate: '2010-01-01',
numberOfEmployees: {
'@type': 'QuantitativeValue',
value: 150,
},
slogan:
locale === 'en'
? 'Leading Digital Transformation'
: locale === 'zh-TW'
? '引領數位化轉型'
: '引领数字化转型',
};
// Website Schema
const websiteSchema = {
'@context': 'https://schema.org',
'@type': 'WebSite',
'@id': `${baseUrl}/#website`,
name: content.companyName,
url: currentUrl,
publisher: {
'@id': `${baseUrl}/#organization`,
},
potentialAction: {
'@type': 'SearchAction',
target: {
'@type': 'EntryPoint',
urlTemplate: `${currentUrl}/search?q={search_term_string}`,
},
'query-input': 'required name=search_term_string',
},
inLanguage: locale === 'zh-CN' ? 'zh-CN' : locale === 'zh-TW' ? 'zh-TW' : 'en-US',
};
// Service Schema
const serviceSchema = {
'@context': 'https://schema.org',
'@type': 'Service',
name:
locale === 'en'
? 'Digital Transformation Services'
: locale === 'zh-TW'
? '數位化轉型服務'
: '数字化转型服务',
description: content.description,
provider: {
'@id': `${baseUrl}/#organization`,
},
serviceType: content.services,
areaServed: {
'@type': 'Country',
name: 'China',
},
hasOfferCatalog: {
'@type': 'OfferCatalog',
name:
locale === 'en'
? 'Digital Solutions'
: locale === 'zh-TW'
? '數位解決方案'
: '数字解决方案',
itemListElement: content.services.map((service, index) => ({
'@type': 'Offer',
itemOffered: {
'@type': 'Service',
name: service,
},
})),
},
};
// Local Business Schema
const localBusinessSchema = {
'@context': 'https://schema.org',
'@type': 'ProfessionalService',
'@id': `${baseUrl}/#localbusiness`,
name: content.companyName,
description: content.description,
url: currentUrl,
telephone: content.phone,
email: content.email,
address: {
'@type': 'PostalAddress',
addressCountry: 'CN',
addressLocality: 'Beijing',
streetAddress: content.address,
},
geo: {
'@type': 'GeoCoordinates',
latitude: '39.9042',
longitude: '116.4074',
},
openingHours: 'Mo-Fr 09:00-18:00',
priceRange: '$',
aggregateRating: {
'@type': 'AggregateRating',
ratingValue: '4.8',
reviewCount: '150',
bestRating: '5',
worstRating: '1',
},
};
// FAQ Schema for common questions
const faqSchema = {
'@context': 'https://schema.org',
'@type': 'FAQPage',
mainEntity: [
{
'@type': 'Question',
name:
locale === 'en'
? 'What is digital transformation?'
: locale === 'zh-TW'
? '什麼是數位化轉型?'
: '什么是数字化转型?',
acceptedAnswer: {
'@type': 'Answer',
text:
locale === 'en'
? 'Digital transformation is the integration of digital technology into all areas of a business, fundamentally changing how you operate and deliver value to customers.'
: locale === 'zh-TW'
? '數位化轉型是將數位技術整合到企業的各個領域,從根本上改變企業的營運方式和為客戶提供價值的方式。'
: '数字化转型是将数字技术整合到企业的各个领域,从根本上改变企业的运营方式和为客户提供价值的方式。',
},
},
{
'@type': 'Question',
name:
locale === 'en'
? 'How long does digital transformation take?'
: locale === 'zh-TW'
? '數位化轉型需要多長時間?'
: '数字化转型需要多长时间?',
acceptedAnswer: {
'@type': 'Answer',
text:
locale === 'en'
? 'Digital transformation timeline varies by company size and complexity, typically ranging from 6 months to 2 years for comprehensive transformation.'
: locale === 'zh-TW'
? '數位化轉型的時間因公司規模和複雜性而異全面轉型通常需要6個月到2年的時間。'
: '数字化转型的时间因公司规模和复杂性而异全面转型通常需要6个月到2年的时间。',
},
},
],
};
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(organizationSchema),
}}
/>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(websiteSchema),
}}
/>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(serviceSchema),
}}
/>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(localBusinessSchema),
}}
/>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(faqSchema),
}}
/>
</>
);
}