315 lines
11 KiB
TypeScript
315 lines
11 KiB
TypeScript
'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),
|
||
}}
|
||
/>
|
||
</>
|
||
);
|
||
}
|