'use client';
import { useState, useEffect } from 'react';
import ReactMarkdown from 'react-markdown';
import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
import { tomorrow } from 'react-syntax-highlighter/dist/esm/styles/prism';
import { ContentItem } from '@/lib/content';
import { Header } from '@/components/Header';
import { Footer } from '@/components/Footer';
import Link from 'next/link';
interface DocDetailProps {
doc: ContentItem | null;
relatedDocs: ContentItem[];
currentLang: string;
}
export default function DocDetail({ doc, relatedDocs, currentLang }: DocDetailProps) {
const [lang, setLang] = useState(currentLang);
// 你原有的语言检测逻辑也可以放在这里
useEffect(() => {
const browserLang = navigator.language;
if (browserLang.startsWith('zh-TW') || browserLang.startsWith('zh-HK')) {
setLang('zh-TW');
} else if (browserLang.startsWith('en')) {
setLang('en');
} else {
setLang('zh-CN');
}
}, []);
if (!doc) {
return (
文档未找到
);
}
// 你原先的多语言文本映射
const contentMap = {
'zh-CN': { backTo: '← 返回文档', related: '相关文档' },
'zh-TW': { backTo: '← 返回文檔', related: '相關文檔' },
en: { backTo: '← Back to Docs', related: 'Related Documents' },
};
const labels = contentMap[lang] || contentMap['zh-CN'];
return (
{labels.backTo}
{doc.metadata.title}
{doc.metadata.description}
{String(children).replace(/\n$/, '')}
) : (
{children}
);
},
}}
>
{doc.content}
{relatedDocs.length > 0 && (
{labels.related}
{relatedDocs.map((item) => (
-
{item.metadata.title}
))}
)}
);
}