feat: add multilingual about, services and projects pages with i18n support
- Create new about and services pages in both English and Chinese - Implement projects page with responsive design and project cards - Add i18n translations for new UI elements - Update header navigation to support new pages - Create shared AboutLayout component with table of contents
This commit is contained in:
@@ -42,14 +42,15 @@ export default function GlassHeader({ lang }: GlassHeaderProps) {
|
||||
{/* Desktop Navigation */}
|
||||
<nav className="hidden md:flex items-center space-x-6 text-sm font-medium">
|
||||
{[
|
||||
{ key: 'nav.about', icon: '👨💻 ', sectionId: 'about' },
|
||||
{ key: 'nav.services', icon: '🛠️ ', sectionId: 'services' },
|
||||
{ key: 'nav.projects', icon: '🚀 ', sectionId: 'projects' },
|
||||
{ key: 'nav.home', icon: '🏠 ', href: getLocalizedPath('/', lang) },
|
||||
{ key: 'nav.about', icon: '👨💻 ', href: getLocalizedPath('/about', lang) },
|
||||
{ key: 'nav.services', icon: '🛠️ ', href: getLocalizedPath('/services', lang) },
|
||||
{ key: 'nav.projects', icon: '🚀 ', href: getLocalizedPath('/projects', lang) },
|
||||
{ key: 'nav.blog', icon: '📝 ', href: getLocalizedPath('/blog', lang) },
|
||||
].map((item) => (
|
||||
<a
|
||||
key={item.key}
|
||||
href={item.href || `#${item.sectionId}`}
|
||||
href={item.href}
|
||||
className="transition-colors duration-150 hover:text-foreground/80 text-foreground/60"
|
||||
>
|
||||
{item.icon}
|
||||
@@ -85,14 +86,15 @@ export default function GlassHeader({ lang }: GlassHeaderProps) {
|
||||
}`}>
|
||||
<nav className="flex flex-col space-y-3 text-sm font-medium">
|
||||
{[
|
||||
{ key: 'nav.about', icon: '👨💻 ', sectionId: 'about' },
|
||||
{ key: 'nav.services', icon: '🛠️ ', sectionId: 'services' },
|
||||
{ key: 'nav.projects', icon: '🚀 ', sectionId: 'projects' },
|
||||
{ key: 'nav.home', icon: '🏠 ', href: getLocalizedPath('/', lang) },
|
||||
{ key: 'nav.about', icon: '👨💻 ', href: getLocalizedPath('/about', lang) },
|
||||
{ key: 'nav.services', icon: '🛠️ ', href: getLocalizedPath('/services', lang) },
|
||||
{ key: 'nav.projects', icon: '🚀 ', href: getLocalizedPath('/projects', lang) },
|
||||
{ key: 'nav.blog', icon: '📝 ', href: getLocalizedPath('/blog', lang) },
|
||||
].map((item) => (
|
||||
<a
|
||||
key={item.key}
|
||||
href={item.href || `#${item.sectionId}`}
|
||||
href={item.href}
|
||||
className="transition-colors duration-150 hover:text-foreground/80 text-foreground/60 py-2 block"
|
||||
onClick={toggleMenu}
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user