From a94ad59605dcfb927bc58fadc6871168f19190aa Mon Sep 17 00:00:00 2001 From: liutingchao Date: Tue, 7 Apr 2026 18:51:20 +0800 Subject: [PATCH] rel 1.0 --- .DS_Store | Bin 0 -> 10244 bytes src/components/Footer.astro | 65 +++--- src/components/Header.astro | 88 +++++++-- src/i18n/en.ts | 199 +++++++++++++++++++ src/i18n/fr.ts | 202 +++++++++++++++++++ src/i18n/index.ts | 23 +++ src/i18n/ja.ts | 201 +++++++++++++++++++ src/i18n/locales.ts | 31 +++ src/i18n/types.ts | 171 ++++++++++++++++ src/i18n/zh.ts | 199 +++++++++++++++++++ src/layouts/BaseLayout.astro | 58 ++++-- src/pages/[lang]/about.astro | 89 +++++++++ src/pages/[lang]/curriculum.astro | 84 ++++++++ src/pages/[lang]/faculty.astro | 131 +++++++++++++ src/pages/[lang]/index.astro | 146 ++++++++++++++ src/pages/[lang]/teaching-philosophy.astro | 124 ++++++++++++ src/pages/about.astro | 90 --------- src/pages/curriculum.astro | 83 -------- src/pages/faculty.astro | 110 ----------- src/pages/index.astro | 198 +++---------------- src/pages/teaching-philosophy.astro | 126 ------------ src/styles/global.css | 217 ++++++++++++++++++++- 22 files changed, 1988 insertions(+), 647 deletions(-) create mode 100644 .DS_Store create mode 100644 src/i18n/en.ts create mode 100644 src/i18n/fr.ts create mode 100644 src/i18n/index.ts create mode 100644 src/i18n/ja.ts create mode 100644 src/i18n/locales.ts create mode 100644 src/i18n/types.ts create mode 100644 src/i18n/zh.ts create mode 100644 src/pages/[lang]/about.astro create mode 100644 src/pages/[lang]/curriculum.astro create mode 100644 src/pages/[lang]/faculty.astro create mode 100644 src/pages/[lang]/index.astro create mode 100644 src/pages/[lang]/teaching-philosophy.astro delete mode 100644 src/pages/about.astro delete mode 100644 src/pages/curriculum.astro delete mode 100644 src/pages/faculty.astro delete mode 100644 src/pages/teaching-philosophy.astro diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f47b553d7a02ca093c6d3df3db44c95c1841a2b1 GIT binary patch literal 10244 zcmeHM&2JM&6n|p}vTl;HAqgc2q!qp(k%kabN>x=chKfd2l_-wVq(IGnOw5wajJ3N? zN}@=4y2@{sSN@Kfo=pu?rwt% z38WBrRuZw*+tD|h);C3VwAQg-8;qP4_%B8 z7d~ICu16b;@5!YB(a#$gQtfvABWmr1hyJEs5c#dOpg(Q9wWPua1A{{!9$O3$t;MqhWxa5rK~nT$8TwwBOzWuLxUwT~r!%%f<5Ct(_Lwt6c;pyyJ$F~`<8 z&bWyn&)3CJvP|OyWtY#&svE~HtI_iP+mY+hXr7gMn(_@{DWdtDEyPqrS_x4XYbnmY zR4^7xU$>NVO0l7+6nrfmZE0GP;xFrWq`t&BqlH4Tw4jG9I1g9h8(4;Q*oL3rAv}R+ z@GJZQf5ShdpNx~U - + diff --git a/src/components/Header.astro b/src/components/Header.astro index 7f5cee6..5a46aed 100644 --- a/src/components/Header.astro +++ b/src/components/Header.astro @@ -1,44 +1,74 @@ --- import { Icon } from 'astro-icon/components'; +import { LANGS, hrefFor, langLabels, type Lang, type RouteKey, type SiteCopy } from '../i18n'; interface Props { - currentPath: string; + lang: Lang; + copy: SiteCopy; + currentSegment: RouteKey; } -const { currentPath } = Astro.props; +const { lang, copy, currentSegment } = Astro.props; -const navItems = [ - { label: '首页', href: '/' }, - { label: '教学理念', href: '/teaching-philosophy' }, - { label: '课程体系', href: '/curriculum' }, - { label: '师资团队', href: '/faculty' }, - { label: '关于我们', href: '/about' }, +const navItems: { label: string; segment: RouteKey }[] = [ + { label: copy.nav.home, segment: '' }, + { label: copy.nav.philosophy, segment: 'teaching-philosophy' }, + { label: copy.nav.curriculum, segment: 'curriculum' }, + { label: copy.nav.faculty, segment: 'faculty' }, + { label: copy.nav.about, segment: 'about' }, ]; --- diff --git a/src/i18n/en.ts b/src/i18n/en.ts new file mode 100644 index 0000000..f7feca8 --- /dev/null +++ b/src/i18n/en.ts @@ -0,0 +1,199 @@ +import type { SiteCopy } from './types'; + +export const en: SiteCopy = { + brand: { + strong: 'Zhihua', + suffix: 'Five Questions', + ariaHome: 'Zhihua home', + }, + nav: { + home: 'Home', + philosophy: 'Teaching philosophy', + curriculum: 'Curriculum', + faculty: 'Faculty', + about: 'About', + }, + theme: { + light: 'Light', + dark: 'Dark', + toggle: 'Switch light or dark theme', + }, + lang: { + menuLabel: 'Language', + switchTo: 'Switch to', + }, + footer: { + company: 'Five Questions (Beijing) Technology Co., Ltd.', + addressLine: 'Address: Haidian District, Beijing', + emailLine: 'Email: support@fivequestions.cn', + colAbout: 'About', + linkPhilosophy: 'Teaching philosophy', + linkCurriculum: 'Curriculum', + linkFaculty: 'Faculty', + colDownload: 'Download', + linkAppStore: 'App Store', + linkGooglePlay: 'Google Play', + linkAndroid: 'Android download', + socialWeibo: 'Weibo', + socialWechat: 'WeChat', + socialTwitter: 'X (Twitter)', + copyrightMain: '© 2026 Five Questions (Beijing) Technology Co., Ltd. All rights reserved.', + icpNumber: '京ICP备2025143052号', + trademarkNotice: + '五道题® and 智花® are registered trademarks of Five Questions (Beijing) Technology Co., Ltd. English wording on this site is for display only and does not replace the Chinese marks. Unauthorized use that may cause confusion is prohibited.', + }, + home: { + metaTitle: 'Zhihua | Five Questions', + metaDescription: + 'International Chinese education with structured courses, AI‑powered practice, and a global learner community—connect the world through Chinese.', + heroTitle: 'Connect the world through Chinese', + heroSubtitle: 'Smarter learning that adapts to you', + advantagesTitle: 'Why Zhihua', + authorityTitle: 'Authoritative curriculum & faculty', + authorityBody: + 'Built by experienced academic teams, our programs align with HSK levels and skill pathways—balancing exam readiness with deeper cultural understanding.', + bentoAlt: 'Course and learning experience visuals', + aiTitle: 'AI‑enhanced practice', + aiBody: + 'Learning data fuels recommendations and instant feedback—turning drills, review, and error correction into a steady improvement loop.', + personalTitle: 'Truly personalized pacing', + personalBody: + 'Content and difficulty adjust to your level and goals so you spend less time on what you already know—and more on what moves you forward.', + communityTitle: 'A global learner community', + communityBody: + 'Learn alongside peers worldwide and carry classroom skills into real conversations, collaboration, and everyday communication.', + conceptsTitle: 'Program highlights', + hskTitle: 'HSK‑aligned tracks', + hskBody: 'Progressive levels that build transferable Chinese proficiency with clear milestones.', + skillsTitle: 'Skills + situational learning', + skillsBody: 'Listening, speaking, reading, and writing pathways grounded in authentic contexts.', + boostTitle: 'Advanced & intensive options', + boostBody: 'Targeted modules and cohorts for breakthrough moments when you need focused gains.', + ctaCurriculum: 'Explore full curriculum', + facultyHighlightTitle: 'Faculty highlights', + facultyHighlightBody: + 'Senior educators and curriculum designers shape every learning arc—supported by intelligent tools for more precise, individualized guidance.', + ctaFaculty: 'Meet our faculty model', + experienceTitle: 'Learning experience', + experienceBody: + 'Practice in a clean, focused interface; follow AI‑suggested routes and watch progress update in real time—every session feels intentional.', + ctaStart: 'Start learning', + teacherImgAlt: 'Faculty and teaching visuals', + studyImgAlt: 'Learning app UI and real‑world usage', + }, + about: { + metaTitle: 'About us | Zhihua · Five Questions', + metaDescription: + 'Learn about Zhihua (Five Questions): vision, mission, brand story, and partnerships in international Chinese education.', + heroTitle: 'About us', + heroLead: + 'Zhihua (Five Questions Beijing Technology Co., Ltd.) advances digital innovation in international Chinese education—combining research, content R&D, and AI to deliver personalized learning at scale.', + visionFigureAlt: 'Vision illustration', + visionTitle: 'Vision', + visionBody: + 'Smarter education, better connections. We want every learner to benefit from technology that is efficient, empathetic, and human‑centered—and to help reshape how the world learns.', + missionTitle: 'Mission', + missionBody: + 'Empower Chinese language education with products and data—through high‑quality assessment, corpora, and adaptive instruction that scales responsibly.', + missionImgAlt: 'Collaboration and modern workspace', + storyTitle: 'Brand story', + storyBody: + '“Zhihua” evokes intelligence in bloom alongside culture. Our team unites linguistics, education, and engineering to make Chinese learning smarter, more engaging, and more effective.', + storyImgAlt: 'Brand story artwork', + teamTitle: 'Team & partners', + teamBody: + 'We bring together experts across linguistics, learning technologies, and AI—and collaborate with universities, institutions, and technology partners worldwide.', + teamImgAlt: 'Team collaboration', + }, + curriculum: { + metaTitle: 'Curriculum | Zhihua · Five Questions', + metaDescription: + 'Zhihua programs span HSK levels, skill training, contextual learning, and advanced pathways.', + heroTitle: 'Curriculum', + heroLead: + 'Our syllabus follows HSK competency levels, pairs skills practice with contextual tasks, and offers advanced tracks for learners with different goals.', + hskTitle: 'HSK‑leveled courses', + hskBody: 'Layered progression that builds vocabulary, grammar, and usage with measurable growth.', + hskImgAlt: 'HSK curriculum diagram', + skillsTitle: 'Skill training', + skillsBody: 'Dedicated pathways for listening, speaking, reading, and writing with rigorous feedback.', + skillsImgAlt: 'Skills training illustration', + contextTitle: 'Context‑based learning', + contextBody: 'Realistic scenarios that bridge classroom knowledge to communicative performance.', + contextImgAlt: 'Contextual learning illustration', + advancedTitle: 'Advanced programs', + advancedBody: 'Intensive modules aligned to proficiency and ambition—designed for breakthroughs.', + advancedImgAlt: 'Advanced learning illustration', + }, + faculty: { + metaTitle: 'Faculty | Zhihua · Five Questions', + metaDescription: + 'Zhihua faculty: philosophy, R&D and faculty development, teaching strengths, and how to join.', + heroTitle: 'Faculty', + heroLead: + 'Our educators combine university expertise with classroom craft—using professional curriculum design and intelligent tools to uphold rigorous international Chinese instruction.', + heroImgAlt: 'Global education illustration', + philosophyTitle: 'Faculty philosophy', + philosophyBody: + 'Language learning is competence and bridge‑building. We teach with professionalism, creativity, and care—making classes vivid, intelligent, and globally minded.', + philosophy1Title: 'Professional rigor', + philosophy1Body: + 'Disciplinary depth and classroom craft are non‑negotiable. We keep honing language, culture, and pedagogy—avoiding guesses and rigid scripts.', + philosophy2Title: 'Creative practice', + philosophy2Body: + 'We embrace task‑based, contextual, and digital formats; small pilots and iteration turn ideas into observable classroom gains worth sharing.', + philosophy3Title: 'Care and empathy', + philosophy3Body: + 'Learners cross cultures under real pressure. Clear scaffolding and encouraging feedback reduce anxiety—trust and safety precede high performance.', + developmentTitle: 'R&D & faculty development', + developmentLead: + 'Shared standards and continuous growth help every educator improve—and turn research into reliable classroom impact.', + dev1Title: 'Structured lesson study', + dev1Body: + 'Lesson templates tie together objectives, assessment, and classroom activities. Regular co‑planning and debriefs keep quality consistent across cohorts.', + dev2Title: 'Collaborative faculty community', + dev2Body: + 'Online seminars, case libraries, and cross‑site projects distribute know‑how; newer faculty pair with mentors as veterans shape curriculum updates.', + dev3Title: 'Evidence‑led improvement', + dev3Body: + 'Learning analytics and learner feedback highlight systemic issues that inform syllabus revisions—small pilots and measurable checks de‑risk change.', + advantageEyebrow: 'Teaching strengths', + advantageTitle: 'Expertise amplified by intelligent support', + advantageBody: + 'Years of teaching practice meet AI‑assisted diagnostics and guidance—clearer assessment, sharper coaching, sustainable progress.', + advantageImgAlt: 'Intelligent teaching support', + joinTitle: 'Join us', + joinBody: + 'Our faculty community is growing. We welcome international Chinese educators to build an open, collaborative learning ecosystem with us.', + ctaJoin: 'Contact us', + }, + philosophy: { + metaTitle: 'Teaching philosophy | Zhihua · Five Questions', + metaDescription: + 'Zhihua teaching philosophy: goals, methods, signature traits, and values.', + heroTitle: 'Teaching philosophy', + heroSubtitle: 'Connect the world through Chinese—enter a new era of intelligent learning', + heroImgAlt: 'AI and intelligent learning illustration', + goalEyebrow: 'Educational goals', + goalHeadline: 'Build language ability
and understand Chinese culture', + goalPhotoAlt: 'Interactive classroom learning', + goalIconAlt: 'Educational concept graphic', + methodsTitle: 'Teaching methods', + m1: 'HSK‑leveled curriculum', + m2: 'Integrated skills training', + m3: 'Contextual learning', + m4: 'AI‑personalized recommendations', + featuresTitle: 'What makes us different', + f1cap: 'Interactive, immersive sessions where ideas stick through participation.', + f2cap: 'Adaptive paths shaped by each learner’s needs and targets.', + f3cap: 'Transparent progress, timely feedback, and motivating milestones.', + f1alt: 'Interactive immersion', + f2alt: 'Personalized learning', + f3alt: 'Efficient, trackable progress', + valuesTitle: 'Values', + v1: 'Professional rigor', + v2: 'Intelligent technology', + v3: 'Global perspective', + v4: 'Learner‑first design', + }, +}; diff --git a/src/i18n/fr.ts b/src/i18n/fr.ts new file mode 100644 index 0000000..7dfc929 --- /dev/null +++ b/src/i18n/fr.ts @@ -0,0 +1,202 @@ +import type { SiteCopy } from './types'; + +export const fr: SiteCopy = { + brand: { + strong: 'Zhihua', + suffix: 'Five Questions', + ariaHome: 'Accueil « Zhihua »', + }, + nav: { + home: 'Accueil', + philosophy: 'Pédagogie', + curriculum: 'Programmes', + faculty: 'Corps professoral', + about: 'À propos', + }, + theme: { + light: 'Clair', + dark: 'Sombre', + toggle: 'Basculer entre thème clair et sombre', + }, + lang: { + menuLabel: 'Langue', + switchTo: 'Afficher en', + }, + footer: { + company: 'Five Questions (Beijing) Technology Co., Ltd.', + addressLine: 'Adresse : district de Haidian, Pékin', + emailLine: 'Courriel : support@fivequestions.cn', + colAbout: 'Liens', + linkPhilosophy: 'Pédagogie', + linkCurriculum: 'Programmes', + linkFaculty: 'Corps professoral', + colDownload: 'Télécharger', + linkAppStore: 'App Store', + linkGooglePlay: 'Google Play', + linkAndroid: 'Android', + socialWeibo: 'Weibo', + socialWechat: 'WeChat', + socialTwitter: 'X (Twitter)', + copyrightMain: + '© 2026 Five Questions (Beijing) Technology Co., Ltd. Tous droits réservés.', + icpNumber: '京ICP备2025143052号', + trademarkNotice: + '五道题® et 智花® sont des marques enregistrées de Five Questions (Beijing) Technology Co., Ltd. Les libellés en anglais sur ce site sont purement indicatifs et ne remplacent pas les marques en chinois. Toute utilisation non autorisée susceptible de créer une confusion est interdite.', + }, + home: { + metaTitle: 'Zhihua | Five Questions', + metaDescription: + 'Éducation au chinois international : parcours structurés, entraînement personnalisé par l’IA et communauté mondiale d’apprenants.', + heroTitle: 'Relier le monde grâce au chinois', + heroSubtitle: 'Un apprentissage plus intelligent, plus adapté à vous', + advantagesTitle: 'Pourquoi Zhihua', + authorityTitle: 'Programme et équipe pédagogique de référence', + authorityBody: + 'Conçu par des équipes expérimentées, notre offre couvre les niveaux HSK, l’entraînement aux compétences et les parcours avancés—pour concilier réussite aux examens et sens culturel.', + bentoAlt: 'Visuels de cours et d’expérience d’apprentissage', + aiTitle: 'Apprentissage soutenu par l’IA', + aiBody: + 'Les données d’étude alimentent recommandations et retours instantanés—pour boucler pratique, révision et correction autour d’une progression continue.', + personalTitle: 'Personnalisation réelle', + personalBody: + 'Le contenu et le rythme s’ajustent à votre niveau et à vos objectifs : moins de répétitions inutiles, plus d’attention là où ça compte.', + communityTitle: 'Communauté mondiale', + communityBody: + 'Apprenez avec des pairs du monde entier et transférez la classe dans des situations de communication concrètes.', + conceptsTitle: 'Axes du programme', + hskTitle: 'Parcours alignés HSK', + hskBody: 'Progression par paliers pour bâtir une compétence transférable avec des jalons clairs.', + skillsTitle: 'Compétences et apprentissage contextualisé', + skillsBody: + 'Des filières d’écoute, oral, lecture et écriture ancrées dans des contextes authentiques.', + boostTitle: 'Niveaux avancés et modules intensifs', + boostBody: + 'Des modules ciblés pour passer des caps lorsque vous avez besoin d’un gain concentré.', + ctaCurriculum: 'Voir le programme complet', + facultyHighlightTitle: 'Points forts du corps professoral', + facultyHighlightBody: + 'Des enseignant·es et concepteur·rices expérimenté·es façonnent chaque parcours—avec des outils intelligents pour un accompagnement plus précis.', + ctaFaculty: 'Découvrir l’organisation pédagogique', + experienceTitle: 'Expérience d’apprentissage', + experienceBody: + 'Des exercices dans une interface claire ; des itinéraires suggérés par l’IA et une progression visible en temps réel : chaque séance compte.', + ctaStart: 'Commencer', + teacherImgAlt: 'Corps professoral et visuels de cours', + studyImgAlt: 'Interface de l’app et usage au quotidien', + }, + about: { + metaTitle: 'À propos | Zhihua · Five Questions', + metaDescription: + 'Découvrez Zhihua (Five Questions) : vision, mission, histoire de marque et partenariats.', + heroTitle: 'À propos', + heroLead: + 'Zhihua (Five Questions Beijing Technology Co., Ltd.) innove dans l’éducation numérique au chinois international—en reliant recherche, conception éditoriale et IA pour une personnalisation à grande échelle.', + visionFigureAlt: 'Illustration de la vision', + visionTitle: 'Vision', + visionBody: + 'Une éducation plus intelligente pour de meilleures connexions. Nous voulons que chaque apprenant profite d’une technologie efficace, bienveillante et centrée‑humain—et contribue à faire évoluer les façons d’apprendre.', + missionTitle: 'Mission', + missionBody: + 'Renforcer l’éducation au chinois avec des produits et des données—évaluation de qualité, corpus et enseignement adaptatif responsable.', + missionImgAlt: 'Collaboration et espace de travail', + storyTitle: 'Histoire de marque', + storyBody: + '« Zhihua » évoque l’intelligence et la culture en épanouissement. Notre équipe réunit linguistique, pédagogie et ingénierie pour un apprentissage du chinois plus intelligent, plus engageant et plus efficace.', + storyImgAlt: 'Illustration de marque', + teamTitle: 'Équipe et partenaires', + teamBody: + 'Une équipe pluridisciplinaire (linguistique, technologies d’apprentissage, IA) et des collaborations durables avec universités, institutions et partenaires tech.', + teamImgAlt: 'Collaboration d’équipe', + }, + curriculum: { + metaTitle: 'Programmes | Zhihua · Five Questions', + metaDescription: + 'Programmes Zhihua : niveaux HSK, entraînement aux compétences, situationnel et parcours avancés.', + heroTitle: 'Programmes', + heroLead: + 'Notre syllabus s’appuie sur les niveaux de compétence HSK, conjugue entraînement aux quatre compétences et tâches contextualisées, et propose des voies avancées selon vos objectifs.', + hskTitle: 'Cours par niveaux HSK', + hskBody: 'Progression par couches pour consolider lexique, grammaire et emplois avec une courbe mesurable.', + hskImgAlt: 'Schéma du programme HSK', + skillsTitle: 'Entraînement aux compétences', + skillsBody: 'Des parcours dédiés avec retours exigeants pour l’écoute, l’oral, la lecture et l’écriture.', + skillsImgAlt: 'Illustration entraînement aux compétences', + contextTitle: 'Apprentissage situationnel', + contextBody: 'Des scénarios proches du réel pour passer du savoir de classe à la communication.', + contextImgAlt: 'Illustration apprentissage situationnel', + advancedTitle: 'Programmes avancés', + advancedBody: 'Modules intensifs alignés sur le niveau et l’ambition—pour franchir des étapes décisives.', + advancedImgAlt: 'Illustration programme avancé', + }, + faculty: { + metaTitle: 'Corps professoral | Zhihua · Five Questions', + metaDescription: + 'Corps professoral Zhihua : philosophie, R&D et développement des enseignant·es, atouts et candidatures.', + heroTitle: 'Corps professoral', + heroLead: + 'Nos enseignant·es conjuguent expertise universitaire et pratique de classe—conception rigoureuse et outils intelligents au service du chinois international.', + heroImgAlt: 'Illustration éducation mondiale', + philosophyTitle: 'Philosophie d’équipe', + philosophyBody: + 'Apprendre une langue, c’est gagner en compétence et en compréhension. Nous enseignons avec professionnalisme, création et attention—pour des cours vivants, intelligents et ouverts sur le monde.', + philosophy1Title: 'Rigueur professionnelle', + philosophy1Body: + 'Solidité disciplinaire et maîtrise de classe sont le socle : langue, culture et didactique restent en évolution continue—loin du dogme et du simple recueil.', + philosophy2Title: 'Pratique inventive', + philosophy2Body: + 'Tâches contextualisées, formats hybrides et outils numériques : de petits pilotes mesurables transforment les idées en progrès observables en classe.', + philosophy3Title: 'Soin et empathie', + philosophy3Body: + 'Les apprenants traversent de vraies tensions interculturelles. Échafaudages clairs et retours bienveillants réduisent l’anxiété : confiance et sécurité avant performance.', + developmentTitle: 'R&D et développement des enseignant·es', + developmentLead: + 'Des standards partagés et une formation continue soutiennent la progression professionnelle—et transforment la recherche en impact en classe.', + dev1Title: 'Travail sur les leçons structuré', + dev1Body: + 'Des trames relient objectifs, évaluation et activités. Des phases régulières de co‑conception et de bilan harmonisent la qualité entre groupes.', + dev2Title: 'Communauté collaborative', + dev2Body: + 'Séminaires en ligne, banque de cas et projets inter‑sites diffusent les savoir‑faire ; mentorat pour les nouveaux arrivants, seniors impliqués dans les évolutions de programme.', + dev3Title: 'Amélioration fondée sur des preuves', + dev3Body: + 'Données d’apprentissage et retours apprenants ciblent les problèmes systémiques qui alimentent la révision des syllabi—pilotes limités et indicateurs pour sécuriser le changement.', + advantageEyebrow: 'Atouts pédagogiques', + advantageTitle: 'L’expertise, amplifiée par des outils intelligents', + advantageBody: + 'Des années de pratique enrichies par un diagnostic assisté par IA—évaluation plus nette, conseils plus précis, progression durable.', + advantageImgAlt: 'Support pédagogique intelligent', + joinTitle: 'Rejoignez‑nous', + joinBody: + 'Notre communauté enseignante grandit : nous accueillons des spécialistes du chinois international pour co‑créer un écosystème ouvert et collaboratif.', + ctaJoin: 'Nous contacter', + }, + philosophy: { + metaTitle: 'Pédagogie | Zhihua · Five Questions', + metaDescription: + 'Objectifs, méthodes, singularités et valeurs de Zhihua.', + heroTitle: 'Pédagogie', + heroSubtitle: 'Relier le monde par le chinois—entrer dans l’ère de l’apprentissage intelligent', + heroImgAlt: 'Illustration IA et apprentissage', + goalEyebrow: 'Objectifs éducatifs', + goalHeadline: 'Maîtriser la langue
et comprendre la culture chinoise', + goalPhotoAlt: 'Classe interactive', + goalIconAlt: 'Graphique concept pédagogique', + methodsTitle: 'Méthodes', + m1: 'Cours par niveaux HSK', + m2: 'Entraînement intégré aux 4 compétences', + m3: 'Apprentissage situationnel', + m4: 'Recommandations personnalisées par IA', + featuresTitle: 'Ce qui nous distingue', + f1cap: 'Des séances interactives et immersives où les idées prennent par la participation.', + f2cap: 'Des parcours qui s’ajustent aux besoins et aux objectifs.', + f3cap: 'Une progression lisible, des retours rapides, des jalons motivants.', + f1alt: 'Immersion interactive', + f2alt: 'Personnalisation', + f3alt: 'Progression efficace et traçable', + valuesTitle: 'Valeurs', + v1: 'Rigueur professionnelle', + v2: 'Technologie intelligente', + v3: 'Perspective internationale', + v4: 'Conception centrée sur l’apprenant', + }, +}; diff --git a/src/i18n/index.ts b/src/i18n/index.ts new file mode 100644 index 0000000..eda3632 --- /dev/null +++ b/src/i18n/index.ts @@ -0,0 +1,23 @@ +import { DEFAULT_LANG, isLang, LANGS } from './locales'; +import type { SiteCopy } from './types'; +import { zh } from './zh'; +import { en } from './en'; +import { ja } from './ja'; +import { fr } from './fr'; + +const copies: Record = { zh, en, ja, fr }; + +export function getCopy(lang: string | undefined): SiteCopy { + if (isLang(lang)) return copies[lang]; + return copies[DEFAULT_LANG]; +} + +/** Astro `getStaticPaths`:为四种语言各生成一页 */ +export function langStaticPaths() { + return LANGS.map((lang) => ({ params: { lang } })); +} + +export type { Lang } from './locales'; +export type { SiteCopy } from './types'; +export { LANGS, DEFAULT_LANG, htmlLang, langLabels, hrefFor, isLang } from './locales'; +export type { RouteKey } from './locales'; diff --git a/src/i18n/ja.ts b/src/i18n/ja.ts new file mode 100644 index 0000000..b623e38 --- /dev/null +++ b/src/i18n/ja.ts @@ -0,0 +1,201 @@ +import type { SiteCopy } from './types'; + +export const ja: SiteCopy = { + brand: { + strong: '智花(チーホワ)', + suffix: '五道题', + ariaHome: '智花ホーム', + }, + nav: { + home: 'ホーム', + philosophy: '教育理念', + curriculum: 'カリキュラム', + faculty: '教師チーム', + about: '私たちについて', + }, + theme: { + light: 'ライト', + dark: 'ダーク', + toggle: 'テーマを切り替え', + }, + lang: { + menuLabel: '言語', + switchTo: '切り替え', + }, + footer: { + company: '五道题(北京)科技有限公司', + addressLine: '住所:北京市海淀区', + emailLine: 'メール:support@fivequestions.cn', + colAbout: 'サイトマップ', + linkPhilosophy: '教育理念', + linkCurriculum: 'カリキュラム', + linkFaculty: '教師チーム', + colDownload: 'アプリ', + linkAppStore: 'App Store', + linkGooglePlay: 'Google Play', + linkAndroid: 'Android ダウンロード', + socialWeibo: 'Weibo', + socialWechat: 'WeChat', + socialTwitter: 'X(Twitter)', + copyrightMain: '© 2026 五道题(北京)科技有限公司。無断転載を禁じます。', + icpNumber: '京ICP备2025143052号', + trademarkNotice: + '「五道题®」「智花®」は五道题(北京)科技有限公司の登録商標です。関連公衆の誤認を招くおそれのある無断使用は禁止されます。', + }, + home: { + metaTitle: '智花慧学|五道题', + metaDescription: + '国際中国語教育。体系化されたカリキュラム、AI による個別最適な演習、グローバルな学習コミュニティで「中国語で世界とつながる」。', + heroTitle: '中国語で、世界とつながる', + heroSubtitle: '賢いテクノロジーが、あなたに合った学びを後押しします', + advantagesTitle: '智花の強み', + authorityTitle: '信頼のカリキュラムと講師陣', + authorityBody: + '経験豊富な研究開発チームが、HSK レベル、技能トレーニング、発展パスを統合。試験対策と文化理解の両立を目指します。', + bentoAlt: '授業と学習体験のビジュアル', + aiTitle: 'AI 学習サポート', + aiBody: + '学習データからレコメンドと即時フィードバックを生成。練習・振り返り・訂正をループ化し、成長を加速します。', + personalTitle: 'パーソナライズされた学習体験', + personalBody: + 'レベルと目標に応じて内容とペースを調整。すでに身についた部分への反復を減らし、伸ばしたい能力に集中できます。', + communityTitle: 'グローバルな学習コミュニティ', + communityBody: + '世界中の学習者とつながり、実際のコミュニケーションの場で表現力を磨きます。', + conceptsTitle: 'プログラムの考え方', + hskTitle: 'HSK レベル別コース', + hskBody: 'HSK の能力枠組みに沿って段階的に、移転可能な中国語力を育てます。', + skillsTitle: '技能訓練とシチュエーション学習', + skillsBody: + '聴解・会話・読解・筆写の各技能に演習ルートを用意し、リアルな文脈へ接続します。', + boostTitle: '発展・集中プログラム', + boostBody: + '方向性と弱点に合わせた集中モジュールで、重要なステージでの飛躍を後押しします。', + ctaCurriculum: 'カリキュラム全文を見る', + facultyHighlightTitle: '講師・教研のハイライト', + facultyHighlightBody: + '国際中国語教育の専門家が课程設計に関与。スマートなツールと組み合わせ、より精密な個別支援を実現します。', + ctaFaculty: '講師体制を見る', + experienceTitle: '学習体験', + experienceBody: + 'すっきりした演習画面で日々の目標を達成。AI の推奨ルートと進捗の可視化で、学びがより明確になります。', + ctaStart: '学習を始める', + teacherImgAlt: '教師陣と授業イメージ', + studyImgAlt: '学習アプリの画面と利用シーン', + }, + about: { + metaTitle: '私たちについて|智花 · 五道题', + metaDescription: + '五道题(智花)のビジョン、ミッション、ブランドストーリー、協業について。', + heroTitle: '私たちについて', + heroLead: + '智花(五道题北京科技有限公司)は、国際中国語教育のデジタル創新に取り組みます。教育研究、コンテンツ開発、AI を統合し、世界中の学習者へ広がるパーソナライズ体験を届けます。', + visionFigureAlt: 'ビジョンのビジュアル', + visionTitle: 'ビジョン', + visionBody: + 'スマートな教育が未来をつなぐ。効率と個別性、そして温かみのある学びをテクノロジーで実現し、世界の学び方のアップデートに貢献します。', + missionTitle: 'ミッション', + missionBody: + '評価、コーパス、個別化された授業設計など、製品とデータで中国語教育を支え、次世代の学習インフラを構築します。', + missionImgAlt: '協業とオフィス', + storyTitle: 'ブランドストーリー', + storyBody: + '「智花」は知恵と文化がともに花開くイメージ。言語学、教育学、エンジニアリングを融合し、中国語学習をよりスマートで楽しく、成果につなげます。', + storyImgAlt: 'ブランドアートワーク', + teamTitle: 'チームとパートナー', + teamBody: + '言語学、教育工学、AI の専門家がチームを構成し、大学・教育機関・技術パートナーと長期的に協働します。', + teamImgAlt: 'チームコラボレーション', + }, + curriculum: { + metaTitle: 'カリキュラム|智花 · 五道题', + metaDescription: + 'HSK 体系、技能訓練、シチュエーション学習、発展コースを備えた Zhihua プログラム。', + heroTitle: 'カリキュラム', + heroLead: + 'HSK の能力段階を軸に、四技能の訓練と課題型の学習を組み合わせ、目標に応じた発展コースで着実な成長を支えます。', + hskTitle: 'HSK レベル別コース', + hskBody: '語彙・文法・語用を段階的に積み上げ、測定可能な成長曲線を描きます。', + hskImgAlt: 'HSK コース構成の図', + skillsTitle: '技能訓練', + skillsBody: '聴・説・読・写それぞれに集中的な練習とフィードバックを用意します。', + skillsImgAlt: '技能訓練のイラスト', + contextTitle: 'シチュエーション学習', + contextBody: '生活に近いタスクで、教室の知識を実際の表現へつなぎます。', + contextImgAlt: 'シチュエーション学習のイラスト', + advancedTitle: '発展コース', + advancedBody: '水準と意欲に応じた上級モジュールで、重要な能力を突破・定着させます。', + advancedImgAlt: '発展学習のイラスト', + }, + faculty: { + metaTitle: '教師チーム|智花 · 五道题', + metaDescription: + '智花の教師チーム:理念、教研・教員育成、指導の強み、参加募集について。', + heroTitle: '教師チーム', + heroLead: + '国内外の大学と現場の専門家が参画。「本格的な教研」と「スマートなツール」の両輪で、質の高い国際中国語教育を届けます。', + heroImgAlt: 'グローバル教育のイラスト', + philosophyTitle: 'チームの哲学', + philosophyBody: + '言語学習は能力開発であると同時に文化理解の橋渡しでもあります。専門性・創造性・思いやりを大切に、生き生きとしたグローバルな授業を目指します。', + philosophy1Title: 'プロフェッショナリズム', + philosophy1Body: + '中国語の体系的知識、文化理解、教授法の三つを土台に、経験頼みや一方的な講義に留まらない授業づくりを徹底します。', + philosophy2Title: '創造的な実践', + philosophy2Body: + 'タスク型・シチュエーション型・デジタル活用に積極的。小さな試行を重ね、授業で見える改善として共有できる形にします。', + philosophy3Title: 'ケアと共感', + philosophy3Body: + '異文化下で学ぶ不安に寄り添い、明確な手立てと励ましのフィードバックで不安を和らげます。安全で信頼できる教室が学びの土台です。', + developmentTitle: '教研と教員育成', + developmentLead: + '統一された教研基準と継続的な育成の仕組みで、教員一人ひとりの専門性を高め、研究成果を授業体験へ確実に還元します。', + dev1Title: '標準化された教研プロセス', + dev1Body: + '到達目標・評価・授業活動を結ぶテンプレートを整備し、磨き上げ・振り返りを定期実施。クラス間の品質ばらつきを抑えます。', + dev2Title: '共学型の教員コミュニティ', + dev2Body: + 'オンライン研修、事例共有、拠点横断の協業でノウハウを循環。新任にはメンター配置、ベテランがカリキュラム改訂に参画します。', + dev3Title: '継続的な授業改善', + dev3Body: + '学習データと受講者の声で共通課題を特定し、大纲・教材へ戻します。小さく試し、データで検証し、改善を測れる形にします。', + advantageEyebrow: '指導の強み', + advantageTitle: '経験とインテリジェント支援の協働', + advantageBody: + '長年の実践に AI 支援を重ね、評価の客観性と指導の精度を高め、継続可能な学習パスを設計します。', + advantageImgAlt: 'スマート教育支援のイメージ', + joinTitle: 'ご参加を募集', + joinBody: + '教師コミュニティは拡大中です。国際中国語教育のプロフェッショナルの皆さまと、開かれた協働エコシステムを築きたいと考えています。', + ctaJoin: 'お問い合わせ', + }, + philosophy: { + metaTitle: '教育理念|智花 · 五道题', + metaDescription: + '智花の教育目標、方法、アプローチの特徴、価値観。', + heroTitle: '教育理念', + heroSubtitle: '中国語で世界とつながり、スマート学習の新段階へ', + heroImgAlt: 'AI とスマート学習のイラスト', + goalEyebrow: '教育目標', + goalHeadline: '言語力を身につけ、
中国文化を理解する', + goalPhotoAlt: 'インタラクティブな学習シーン', + goalIconAlt: '教育理念グラフィック', + methodsTitle: '教育方法', + m1: 'HSK レベル別コース', + m2: '聴・説・読・写の技能訓練', + m3: 'シチュエーション学習', + m4: 'AI による個別レコメンド', + featuresTitle: '教育の特色', + f1cap: '参加型で没入感のある授業で、知識が定着しやすくなります。', + f2cap: '目標に応じて学習経路を調整し、一人ひとりに最適化します。', + f3cap: '過程が見える化され、フィードバックが即時。学びにリズムと達成感があります。', + f1alt: 'インタラクティブな没入学習', + f2alt: 'パーソナライズされた支援', + f3alt: '効率的で追跡可能な学習', + valuesTitle: '教育的価値観', + v1: '専門性と権威', + v2: 'インテリジェントなテクノロジー', + v3: 'グローバルな視野', + v4: '学習者中心', + }, +}; diff --git a/src/i18n/locales.ts b/src/i18n/locales.ts new file mode 100644 index 0000000..079bf36 --- /dev/null +++ b/src/i18n/locales.ts @@ -0,0 +1,31 @@ +export type Lang = 'zh' | 'en' | 'ja' | 'fr'; + +export const LANGS: Lang[] = ['zh', 'en', 'ja', 'fr']; + +export const DEFAULT_LANG: Lang = 'zh'; + +export const htmlLang: Record = { + zh: 'zh-CN', + en: 'en', + ja: 'ja', + fr: 'fr', +}; + +export const langLabels: Record = { + zh: '中文', + en: 'English', + ja: '日本語', + fr: 'Français', +}; + +export function isLang(value: string | undefined): value is Lang { + return value !== undefined && (LANGS as string[]).includes(value); +} + +/** 站内路径(不含语言前缀),首页为空字符串 */ +export type RouteKey = '' | 'teaching-philosophy' | 'curriculum' | 'faculty' | 'about'; + +export function hrefFor(lang: Lang, segment: RouteKey): string { + if (!segment) return `/${lang}`; + return `/${lang}/${segment}`; +} diff --git a/src/i18n/types.ts b/src/i18n/types.ts new file mode 100644 index 0000000..05c3ece --- /dev/null +++ b/src/i18n/types.ts @@ -0,0 +1,171 @@ +export interface SiteCopy { + brand: { + strong: string; + suffix: string; + ariaHome: string; + }; + nav: { + home: string; + philosophy: string; + curriculum: string; + faculty: string; + about: string; + }; + theme: { + light: string; + dark: string; + toggle: string; + }; + lang: { + menuLabel: string; + switchTo: string; + }; + footer: { + company: string; + addressLine: string; + emailLine: string; + colAbout: string; + linkPhilosophy: string; + linkCurriculum: string; + linkFaculty: string; + colDownload: string; + linkAppStore: string; + linkGooglePlay: string; + linkAndroid: string; + socialWeibo: string; + socialWechat: string; + socialTwitter: string; + /** © 与公司声明一行(不含备案号,备案号单独做链接) */ + copyrightMain: string; + /** ICP 备案号原文,各语言相同 */ + icpNumber: string; + /** 商标声明(页脚最下方小字) */ + trademarkNotice: string; + }; + home: { + metaTitle: string; + metaDescription: string; + heroTitle: string; + heroSubtitle: string; + advantagesTitle: string; + authorityTitle: string; + authorityBody: string; + bentoAlt: string; + aiTitle: string; + aiBody: string; + personalTitle: string; + personalBody: string; + communityTitle: string; + communityBody: string; + conceptsTitle: string; + hskTitle: string; + hskBody: string; + skillsTitle: string; + skillsBody: string; + boostTitle: string; + boostBody: string; + ctaCurriculum: string; + facultyHighlightTitle: string; + facultyHighlightBody: string; + ctaFaculty: string; + experienceTitle: string; + experienceBody: string; + ctaStart: string; + teacherImgAlt: string; + studyImgAlt: string; + }; + about: { + metaTitle: string; + metaDescription: string; + heroTitle: string; + heroLead: string; + visionFigureAlt: string; + visionTitle: string; + visionBody: string; + missionTitle: string; + missionBody: string; + missionImgAlt: string; + storyTitle: string; + storyBody: string; + storyImgAlt: string; + teamTitle: string; + teamBody: string; + teamImgAlt: string; + }; + curriculum: { + metaTitle: string; + metaDescription: string; + heroTitle: string; + heroLead: string; + hskTitle: string; + hskBody: string; + hskImgAlt: string; + skillsTitle: string; + skillsBody: string; + skillsImgAlt: string; + contextTitle: string; + contextBody: string; + contextImgAlt: string; + advancedTitle: string; + advancedBody: string; + advancedImgAlt: string; + }; + faculty: { + metaTitle: string; + metaDescription: string; + heroTitle: string; + heroLead: string; + heroImgAlt: string; + philosophyTitle: string; + philosophyBody: string; + philosophy1Title: string; + philosophy1Body: string; + philosophy2Title: string; + philosophy2Body: string; + philosophy3Title: string; + philosophy3Body: string; + developmentTitle: string; + developmentLead: string; + dev1Title: string; + dev1Body: string; + dev2Title: string; + dev2Body: string; + dev3Title: string; + dev3Body: string; + advantageEyebrow: string; + advantageTitle: string; + advantageBody: string; + advantageImgAlt: string; + joinTitle: string; + joinBody: string; + ctaJoin: string; + }; + philosophy: { + metaTitle: string; + metaDescription: string; + heroTitle: string; + heroSubtitle: string; + heroImgAlt: string; + goalEyebrow: string; + goalHeadline: string; + goalPhotoAlt: string; + goalIconAlt: string; + methodsTitle: string; + m1: string; + m2: string; + m3: string; + m4: string; + featuresTitle: string; + f1cap: string; + f2cap: string; + f3cap: string; + f1alt: string; + f2alt: string; + f3alt: string; + valuesTitle: string; + v1: string; + v2: string; + v3: string; + v4: string; + }; +} diff --git a/src/i18n/zh.ts b/src/i18n/zh.ts new file mode 100644 index 0000000..40d0baf --- /dev/null +++ b/src/i18n/zh.ts @@ -0,0 +1,199 @@ +import type { SiteCopy } from './types'; + +export const zh: SiteCopy = { + brand: { + strong: '智花慧学', + suffix: '五道题', + ariaHome: '智花慧学首页', + }, + nav: { + home: '首页', + philosophy: '教学理念', + curriculum: '课程体系', + faculty: '师资团队', + about: '关于我们', + }, + theme: { + light: '浅色', + dark: '深色', + toggle: '切换浅色或深色主题', + }, + lang: { + menuLabel: '语言', + switchTo: '切换到', + }, + footer: { + company: '五道题(北京)科技有限公司', + addressLine: '地址:北京市海淀区', + emailLine: '邮箱:support@fivequestions.cn', + colAbout: '关于我们', + linkPhilosophy: '教学理念', + linkCurriculum: '课程体系', + linkFaculty: '师资团队', + colDownload: '下载应用', + linkAppStore: 'App Store', + linkGooglePlay: 'Google Play', + linkAndroid: 'Android 下载', + socialWeibo: '微博', + socialWechat: '微信', + socialTwitter: 'X(Twitter)', + copyrightMain: '© 2026 五道题(北京)科技有限公司 保留所有权利', + icpNumber: '京ICP备2025143052号', + trademarkNotice: + '「五道题®」「智花®」为五道题(北京)科技有限公司注册商标;未经许可,他人不得以可能造成相关公众混淆的方式使用。', + }, + home: { + metaTitle: '智花慧学|五道题', + metaDescription: + '五道题国际中文教育:系统课程、AI 个性化练习与全球化学习社区,用中文连接世界。', + heroTitle: '用中文连接世界', + heroSubtitle: '以智能技术,让学习更高效、更懂你', + advantagesTitle: '我们的优势', + authorityTitle: '权威课程与师资', + authorityBody: + '由资深教研团队打造体系化国际中文课程,覆盖 HSK 分级、技能训练与进阶路径,兼顾应试效率与文化理解。', + bentoAlt: '课程与学习场景展示', + aiTitle: 'AI 智能学习', + aiBody: + '用学习数据驱动推荐与即时反馈,把练习、复盘与纠错串成稳定闭环,让每一分投入都看得见回报。', + personalTitle: '个性化学习体验', + personalBody: + '依据水平与目标动态调整内容与节奏,减少无效重复,把注意力放在真正需要加强的能力上。', + communityTitle: '全球化学习社区', + communityBody: + '连接世界各地的中文学习者,在真实交流与协作中巩固表达,把课堂所学延伸到日常沟通场景。', + conceptsTitle: '课程概念', + hskTitle: 'HSK 分级课程', + hskBody: '对齐 HSK 能力框架,循序渐进建立可迁移的中文能力。', + skillsTitle: '技能训练与情境学习', + skillsBody: '围绕听说读写构建练习路径,并嵌入真实语境,让学习更主动、更落地。', + boostTitle: '进阶与强化', + boostBody: '针对方向与弱项定制小班/强化模块,帮助你在关键阶段完成跃迁。', + ctaCurriculum: '查看完整课程体系', + facultyHighlightTitle: '师资亮点', + facultyHighlightBody: + '国际中文教育领域资深讲师与教研专家联袂参与课程设计,覆盖听说读写全链路,并结合智能工具实现更精准的个性化支持。', + ctaFaculty: '了解师资体系', + experienceTitle: '学习体验', + experienceBody: + '在清晰的练习界面中完成每日目标;AI 推荐学习路径,进度实时可见——每一次学习都更聪明、更贴合你的节奏。', + ctaStart: '开始学习', + teacherImgAlt: '师资与教学场景', + studyImgAlt: '学习应用界面与使用场景', + }, + about: { + metaTitle: '关于我们|智花 · 五道题', + metaDescription: + '了解五道题(智花)在国际中文教育与智能学习领域的愿景、使命、品牌故事与团队合作。', + heroTitle: '关于我们', + heroLead: + '智花(五道题北京科技有限公司)专注国际中文教育的数字化创新。我们整合教学研究、内容研发与人工智能技术,为全球学习者提供可规模化的个性化中文学习体验。', + visionFigureAlt: '企业愿景视觉', + visionTitle: '企业愿景', + visionBody: + '智慧教育,连接未来。我们希望每一位学习者都能借助智能技术,获得更高效、更懂自己、也更有温度的学习过程;以科技推动教学创新,让全球学习方式持续进化。', + missionTitle: '我们的使命', + missionBody: + '以产品与数据能力服务中文教育发展,通过高质量的评测、语料与个性化教学编排,构建面向未来的智慧学习基础设施。', + missionImgAlt: '团队协作与现代办公', + storyTitle: '品牌故事', + storyBody: + '「智花」寓意智慧与文化的共同绽放。团队深耕国际中文教育多年,融汇语言学、教育学与工程能力,致力于让中文学习更智能、更有趣、也更有成效。', + storyImgAlt: '品牌故事插画', + teamTitle: '团队与合作', + teamBody: + '我们拥有跨学科团队,成员来自语言学、教育技术与人工智能等领域;并与高校、教育机构与技术伙伴保持长期协作,共建开放创新的教学生态。', + teamImgAlt: '团队合作', + }, + curriculum: { + metaTitle: '课程体系|智花 · 五道题', + metaDescription: + '智花课程体系涵盖 HSK 分级、技能训练、情境化学习与进阶模块,帮助学习者系统提升中文能力。', + heroTitle: '课程体系', + heroLead: + '课程以 HSK 能力层级为主线,配套听说读写训练与情境任务,并提供进阶强化路径,让不同目标的学习者都能稳步前进。', + hskTitle: 'HSK 分级课程', + hskBody: '从基础到高阶分层递进,夯实词汇、语法与语用,形成可评估的成长曲线。', + hskImgAlt: 'HSK 课程结构示意图', + skillsTitle: '技能训练', + skillsBody: '针对听、说、读、写分别设计高强度练习与反馈机制,全面提升综合语言表现。', + skillsImgAlt: '技能训练示意图', + contextTitle: '情境化学习', + contextBody: '用贴近真实生活的任务与场景,迁移课堂知识到可交流的表达能力。', + contextImgAlt: '情境化学习示意图', + advancedTitle: '进阶课程', + advancedBody: '依据水平与发展意愿组织进阶模块,在关键能力上实现突破与巩固。', + advancedImgAlt: '进阶学习示意图', + }, + faculty: { + metaTitle: '师资团队|智花 · 五道题', + metaDescription: + '智花师资团队:团队理念、教研与教师发展、教学优势与加入我们。', + heroTitle: '教师团队', + heroLead: + '团队汇聚了来自知名院校与一线课堂的专家教师,坚持「专业教研 + 智能工具」的双轮驱动,为学习者提供高标准的国际中文教育服务。', + heroImgAlt: '全球教育与连接', + philosophyTitle: '团队理念', + philosophyBody: + '我们相信语言学习既是能力提升,也是文化与理解的桥梁。智花教师以专业、创新与关怀为准则,让课堂更生动、更智能、更具全球视野。', + philosophy1Title: '专业立身', + philosophy1Body: + '以扎实的学科功底与课堂能力为底线,持续打磨中文本体知识、文化与教学法,拒绝经验主义与「照本宣科」。', + philosophy2Title: '创新求索', + philosophy2Body: + '拥抱任务型、情境化与数字化工具,乐于做小范围试验与迭代;教研不是口号,而是可观测、可分享的课堂改进。', + philosophy3Title: '关怀与共情', + philosophy3Body: + '理解学习者在跨文化环境中的处境,用清晰的支架与鼓励性反馈减缓焦虑;信任与安全的学习氛围,是高效学习的前提。', + developmentTitle: '教研与教师发展', + developmentLead: + '我们以统一的教研标准与持续培养机制,支撑每一位教师在专业上成长,并把教研成果稳定转化为课堂体验。', + dev1Title: '标准化教研流程', + dev1Body: + '围绕教学目标、评估方式与课堂活动形成可复制的教研模板,定期开展磨课与复盘,保证不同班次之间的一致水准。', + dev2Title: '共学型教师社群', + dev2Body: + '通过线上研讨、案例库与跨校区协作,促进经验共享;新教师配对导师,资深教师参与课程迭代,形成互助与传承。', + dev3Title: '可持续的教学改进', + dev3Body: + '结合学习数据与学员反馈,定位共性问题并反哺大纲与教辅更新;鼓励小步试点、数据验证,让改进有依据、可衡量。', + advantageEyebrow: '教学优势', + advantageTitle: '教学经验与智能支持协同', + advantageBody: + '在长期教学实践基础上,引入 AI 辅助诊断与个性化建议,让评估更客观、指导更精准,学习路径更可持续。', + advantageImgAlt: '智能教学支持示意', + joinTitle: '诚邀加盟', + joinBody: + '智花教师团队正在稳步扩张,我们期待更多国际中文教育专业人才加入,共同打造开放协作的智慧教学生态。', + ctaJoin: '加入我们', + }, + philosophy: { + metaTitle: '教学理念|智花 · 五道题', + metaDescription: + '智花教学理念:教育目标、教学方法、特色与价值观。', + heroTitle: '教学理念', + heroSubtitle: '用中文连接世界,迈向智慧学习的新阶段', + heroImgAlt: '智慧学习与人工智能插图', + goalEyebrow: '教育目标', + goalHeadline: '帮助学习者掌握语言能力,理解中华文化', + goalPhotoAlt: '互动课堂与学习场景', + goalIconAlt: '教育理念图示', + methodsTitle: '教学方法', + m1: 'HSK 分级课程', + m2: '听说读写技能训练', + m3: '情境化学习', + m4: 'AI 个性化推荐', + featuresTitle: '教学特色', + f1cap: '强调课堂互动与沉浸式体验,让知识在参与中沉淀。', + f2cap: '因材施教、因需施教,学习路径随目标而调整。', + f3cap: '过程可追踪、反馈即时可见,学习更有节奏与成就感。', + f1alt: '互动与沉浸学习', + f2alt: '个性化学习支持', + f3alt: '高效可追踪的学习过程', + valuesTitle: '教育价值观', + v1: '专业权威', + v2: '智能科技', + v3: '国际化视野', + v4: '以学习者为中心', + }, +}; diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index c575d20..9fbf020 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -2,44 +2,78 @@ import Header from '../components/Header.astro'; import Footer from '../components/Footer.astro'; import '../styles/global.css'; +import { DEFAULT_LANG, getCopy, htmlLang, hrefFor, LANGS, type Lang, type RouteKey } from '../i18n'; interface Props { title: string; description: string; - /** 当前激活的导航项路径,如 "/" "/about" 等 */ - currentPath: string; + currentSegment: RouteKey; + lang: Lang; } -const { title, description, currentPath } = Astro.props; +const { title, description, currentSegment, lang } = Astro.props; +const copy = getCopy(lang); +const htmlLangAttr = htmlLang[lang]; --- - + {title} + {LANGS.map((l) => ( + + ))} + + + + +
-
+
-
+
- diff --git a/src/pages/[lang]/about.astro b/src/pages/[lang]/about.astro new file mode 100644 index 0000000..09bf8b0 --- /dev/null +++ b/src/pages/[lang]/about.astro @@ -0,0 +1,89 @@ +--- +import BaseLayout from '../../layouts/BaseLayout.astro'; +import { getCopy, langStaticPaths, type Lang } from '../../i18n'; + +export function getStaticPaths() { + return langStaticPaths(); +} + +const { lang } = Astro.params; +const L = getCopy(lang); +const locale = lang as Lang; +--- + + +
+
+

{L.about.heroTitle}

+

+ {L.about.heroLead} +

+
+
+ +
+
+
+ {L.about.visionFigureAlt} +
+
+
+ +
+
+
+

{L.about.visionTitle}

+

+ {L.about.visionBody} +

+
+
+
+ +
+
+
+
+

{L.about.missionTitle}

+

{L.about.missionBody}

+
+
+ {L.about.missionImgAlt} +
+
+
+
+ +
+
+
+
+

{L.about.storyTitle}

+

{L.about.storyBody}

+
+
+ {L.about.storyImgAlt} +
+
+
+
+ +
+
+
+
+

{L.about.teamTitle}

+

{L.about.teamBody}

+
+
+ {L.about.teamImgAlt} +
+
+
+
+
diff --git a/src/pages/[lang]/curriculum.astro b/src/pages/[lang]/curriculum.astro new file mode 100644 index 0000000..ed6a4e6 --- /dev/null +++ b/src/pages/[lang]/curriculum.astro @@ -0,0 +1,84 @@ +--- +import BaseLayout from '../../layouts/BaseLayout.astro'; +import { getCopy, langStaticPaths, type Lang } from '../../i18n'; + +export function getStaticPaths() { + return langStaticPaths(); +} + +const { lang } = Astro.params; +const L = getCopy(lang); +const locale = lang as Lang; +--- + + +
+
+

{L.curriculum.heroTitle}

+

+ {L.curriculum.heroLead} +

+
+
+ +
+
+
+
+

{L.curriculum.hskTitle}

+

{L.curriculum.hskBody}

+
+
+ {L.curriculum.hskImgAlt} +
+
+
+
+ +
+
+
+
+

{L.curriculum.skillsTitle}

+

{L.curriculum.skillsBody}

+
+
+ {L.curriculum.skillsImgAlt} +
+
+
+
+ +
+
+
+
+

{L.curriculum.contextTitle}

+

{L.curriculum.contextBody}

+
+
+ {L.curriculum.contextImgAlt} +
+
+
+
+ +
+
+
+
+

{L.curriculum.advancedTitle}

+

{L.curriculum.advancedBody}

+
+
+ {L.curriculum.advancedImgAlt} +
+
+
+
+
diff --git a/src/pages/[lang]/faculty.astro b/src/pages/[lang]/faculty.astro new file mode 100644 index 0000000..4ab3be5 --- /dev/null +++ b/src/pages/[lang]/faculty.astro @@ -0,0 +1,131 @@ +--- +import BaseLayout from '../../layouts/BaseLayout.astro'; +import { Icon } from 'astro-icon/components'; +import { getCopy, hrefFor, langStaticPaths, type Lang } from '../../i18n'; + +export function getStaticPaths() { + return langStaticPaths(); +} + +const { lang } = Astro.params; +const L = getCopy(lang); +const locale = lang as Lang; +--- + + +
+
+
+

{L.faculty.heroTitle}

+

+ {L.faculty.heroLead} +

+
+
+ {L.faculty.heroImgAlt} +
+
+
+ +
+
+
+

{L.faculty.philosophyTitle}

+

+ {L.faculty.philosophyBody} +

+
+
+
+
+ + {L.faculty.philosophy1Title} +
+

{L.faculty.philosophy1Body}

+
+
+
+ + {L.faculty.philosophy2Title} +
+

{L.faculty.philosophy2Body}

+
+
+
+ + {L.faculty.philosophy3Title} +
+

{L.faculty.philosophy3Body}

+
+
+
+
+ +
+
+
+

{L.faculty.developmentTitle}

+

{L.faculty.developmentLead}

+
+
+
+
+ + {L.faculty.dev1Title} +
+

{L.faculty.dev1Body}

+
+
+
+ + {L.faculty.dev2Title} +
+

{L.faculty.dev2Body}

+
+
+
+ + {L.faculty.dev3Title} +
+

{L.faculty.dev3Body}

+
+
+
+
+ +
+
+
+
+

{L.faculty.advantageEyebrow}

+

{L.faculty.advantageTitle}

+

{L.faculty.advantageBody}

+
+
+ {L.faculty.advantageImgAlt} +
+
+
+
+ +
+
+

{L.faculty.joinTitle}

+

+ {L.faculty.joinBody} +

+ +
+
+
diff --git a/src/pages/[lang]/index.astro b/src/pages/[lang]/index.astro new file mode 100644 index 0000000..e44b1cb --- /dev/null +++ b/src/pages/[lang]/index.astro @@ -0,0 +1,146 @@ +--- +import BaseLayout from '../../layouts/BaseLayout.astro'; +import { Icon } from 'astro-icon/components'; +import { getCopy, hrefFor, langStaticPaths, type Lang } from '../../i18n'; + +export function getStaticPaths() { + return langStaticPaths(); +} + +const { lang } = Astro.params; +const L = getCopy(lang); +const locale = lang as Lang; +--- + + +
+
+
+

{L.home.heroTitle}

+

{L.home.heroSubtitle}

+
+
+
+ +
+
+
+

{L.home.advantagesTitle}

+
+
+
+
+
+ {L.home.bentoAlt} +
+
+
+

{L.home.authorityTitle}

+

{L.home.authorityBody}

+
+
+ +
+
+
+ +
+

{L.home.aiTitle}

+

{L.home.aiBody}

+
+
+
+ +
+

{L.home.personalTitle}

+

{L.home.personalBody}

+
+
+
+ +
+

{L.home.communityTitle}

+

{L.home.communityBody}

+
+
+
+
+
+ +
+
+
+

{L.home.conceptsTitle}

+
+
+
+
+ + {L.home.hskTitle} +
+

{L.home.hskBody}

+
+
+
+ + {L.home.skillsTitle} +
+

{L.home.skillsBody}

+
+
+
+ + {L.home.boostTitle} +
+

{L.home.boostBody}

+
+
+ +
+
+ +
+
+
+
+
{L.home.facultyHighlightTitle}
+ {L.home.teacherImgAlt} +
+
+

{L.home.facultyHighlightBody}

+ +
+
+
+
+
{L.home.experienceTitle}
+ {L.home.studyImgAlt} +
+
+

{L.home.experienceBody}

+ +
+
+
+
+
diff --git a/src/pages/[lang]/teaching-philosophy.astro b/src/pages/[lang]/teaching-philosophy.astro new file mode 100644 index 0000000..c73b1e4 --- /dev/null +++ b/src/pages/[lang]/teaching-philosophy.astro @@ -0,0 +1,124 @@ +--- +import BaseLayout from '../../layouts/BaseLayout.astro'; +import { getCopy, langStaticPaths, type Lang } from '../../i18n'; + +export function getStaticPaths() { + return langStaticPaths(); +} + +const { lang } = Astro.params; +const L = getCopy(lang); +const locale = lang as Lang; +--- + + +
+
+
+

{L.philosophy.heroTitle}

+

{L.philosophy.heroSubtitle}

+
+
+ {L.philosophy.heroImgAlt} +
+
+
+ +
+
+
+
+
+ {L.philosophy.goalPhotoAlt} +
+
+ {L.philosophy.goalIconAlt} +
+
+
+

{L.philosophy.goalEyebrow}

+

+

+
+
+
+ +
+
+
+

{L.philosophy.methodsTitle}

+
+
+
+
+ +
+ {L.philosophy.m1} +
+
+
+ +
+ {L.philosophy.m2} +
+
+
+ +
+ {L.philosophy.m3} +
+
+
+ +
+ {L.philosophy.m4} +
+
+
+
+ +
+
+
+

{L.philosophy.featuresTitle}

+
+
+
+ {L.philosophy.f1alt} +
{L.philosophy.f1cap}
+
+
+ {L.philosophy.f2alt} +
{L.philosophy.f2cap}
+
+
+ {L.philosophy.f3alt} +
{L.philosophy.f3cap}
+
+
+
+
+ +
+
+
+

{L.philosophy.valuesTitle}

+
+
+ {L.philosophy.v1} + {L.philosophy.v2} + {L.philosophy.v3} + {L.philosophy.v4} +
+
+
+
diff --git a/src/pages/about.astro b/src/pages/about.astro deleted file mode 100644 index 8f5bfaf..0000000 --- a/src/pages/about.astro +++ /dev/null @@ -1,90 +0,0 @@ ---- -/** - * 关于我们 - 严格按设计稿还原 - * 结构:Hero文字 → 全宽Hero图 → 企业愿景 → 我们的使命(双栏)→ 品牌故事(双栏反向)→ 团队与合作(双栏) - */ -import BaseLayout from '../layouts/BaseLayout.astro'; ---- - - - -
-
-

关于我们

-

- 智花(五道题北京科技有限公司)专注于国际中文教育创新,依托国际中文教学资源与研究力量,结合人工智能技术,为全球学习者提供智能化、个性化的中文学习体验。 -

-
-
- - -
-
-
- 企业愿景视觉展示 -
-
-
- - -
-
-
-

企业愿景

-

- 智慧教育,连接未来。
- 我们致力于让每一位学习者,都能通过智能技术获得更高效、更个性化、更有温度的学习体验。以科技赋能教育创新,推动全球学习方式的智能化变革。 -

-
-
-
- - -
-
-
-
-

我们的使命

-

以科技创新驱动中文教育发展,通过智能出题、语料检索与个性化教学,构建面向未来的智慧学习体系。

-
-
- 现代办公空间 -
-
-
-
- - -
-
-
-
-

品牌故事

-

"智花"寓意智慧与文化的绽放。它源于我们在国际中文教育领域多年的研究与实践,融合语言学、教育学与人工智能,致力于让中文学习更加智能、有趣、高效。

-
-
- 品牌故事 -
-
-
-
- - -
-
-
-
-

团队与合作

-

我们拥有跨学科的专业团队,汇聚语言学、教育技术、人工智能等领域的研究者与教师,并与多家教育机构、高校及技术公司建立合作关系。

-
-
- 团队合作 -
-
-
-
-
diff --git a/src/pages/curriculum.astro b/src/pages/curriculum.astro deleted file mode 100644 index b0de2bd..0000000 --- a/src/pages/curriculum.astro +++ /dev/null @@ -1,83 +0,0 @@ ---- -/** - * 课程体系 - 严格按设计稿还原 - * 结构:Hero → 4个交替图文全宽卡片(HSK / 技能训练 / 情境化学习 / 进阶课程) - */ -import BaseLayout from '../layouts/BaseLayout.astro'; ---- - - - -
-
-

课程体系

-

- 智花课程体系按照 HSK 等级科学设计,覆盖听说读写各项技能,同时提供情境化练习与个性化提高班,让每位中文学习者都能高效成长。 -

-
-
- - -
-
-
-
-

HSK等级课程

-

按照 HSK 等级精心设计,循序渐进掌握中文能力

-
-
- HSK 课程结构 -
-
-
-
- - -
-
-
-
-

技能训练

-

专注听、说、读、写四大核心技能,提升综合语言能力

-
-
- 技能训练 -
-
-
-
- - -
-
-
-
-

情境化学习

-

通过真实情境和生活场景模拟,让学习更主动、实用

-
-
- 情境化学习 -
-
-
-
- - -
-
-
-
-

进阶课程

-

根据学员水平和学习意愿组织,提高语言能力和实际竞争力

-
-
- 进阶课程 -
-
-
-
-
diff --git a/src/pages/faculty.astro b/src/pages/faculty.astro deleted file mode 100644 index a29ad76..0000000 --- a/src/pages/faculty.astro +++ /dev/null @@ -1,110 +0,0 @@ ---- -/** - * 师资团队 - 严格按设计稿还原 - * 结构:Hero(左文右图)→ 团队理念 → 名师风采(4列简洁卡片)→ 教学优势(全宽卡片)→ 诚邀加盟 - */ -import BaseLayout from '../layouts/BaseLayout.astro'; ---- - - - -
-
-
-

教师团队

-

- 智花教师团队由国内外知名院校的专家与一线教师组成,致力于将专业教学与智能技术融合,为学习者提供高质量的国际中文教育。 -

-
-
- 全球教育 -
-
-
- - -
-
-
-

团队理念

-

- 我们相信语言学习不仅是知识的积累,更是文化与交流的桥梁。
- 智花教师团队以专业、创新与温度为核心理念,让中文教学更生动、更智能、更具全球视野。 -

-
-
-
- - -
-
-
-

名师风采

-
-
-
-
- 张无忌 -
-

张无忌

-
香港中文大学
-
-
-
- 白眉大侠 -
-

白眉大侠

-
北京外国语大学
-
-
-
- 路飞 -
-

路飞

-
北京外国语大学
-
-
-
- 扫地僧 -
-

扫地僧

-
北京外国语大学
-
-
-
-
- - -
-
-
-
-

教学优势

-

教学经验与智能支持并行

-

结合丰富教学经验与 AI 智能支持,教师团队能够精准评估学习水平,提供个性化指导,帮助学习者高效提升。

-
-
- AI 智能教学 -
-
-
-
- - -
-
-

诚邀加盟

-

- 智花教师团队正在不断壮大,我们诚邀更多国际中文教育专业人才加入。
- 共同建设开放、创新的智慧教学生态。 -

- -
-
-
diff --git a/src/pages/index.astro b/src/pages/index.astro index cc3a99c..ff8f1bc 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,178 +1,30 @@ --- /** - * 首页 - 严格按设计稿还原 - * 结构:Hero(左文右图+引号)→ 我们的优势(Bento)→ 课程概念(3列带图标)→ 师资亮点+学习体验(双栏) + * 根路径立即跳转默认语言。不用 Astro.redirect,静态构建否则会生成 2 秒 meta refresh。 */ -import BaseLayout from '../layouts/BaseLayout.astro'; -import { Icon } from 'astro-icon/components'; +import { DEFAULT_LANG } from '../i18n'; + +const target = `/${DEFAULT_LANG}`; --- - - -
-
-
-

用中文连接世界

-

智花,让学习更智能

-
- -
-
- - -
-
-
-

我们的优势

-
-
-
- -
-
- 课程与学习体验可视化展示 -
-
- -
-

权威课程与师资

-

- 名师团队,打造科学系统的国际中文课程,覆盖 HSK - 分级、技能训练和进阶路径,兼顾学习效率与文化深度。 -

-
-
- - -
-
-
- -
-

AI智能学习技术

-

- AI - 驱动个性化学习,让每一次练习都更高效。围绕学习记录、推荐路径和即时反馈,形成稳定的练习闭环。 -

-
-
-
- -
-

个性化学习体验

-

- 根据学习水平动态调整,让不同阶段的学习者都能找到适合自己的节奏,减少无效重复,提升成长速度。 -

-
-
-
- -
-

国际化学习社区

-

- 全球中文学习者互动平台,跨文化交流无障碍。课程之外,也为真实沟通、协作和表达提供持续场景。 -

-
-
-
-
-
- - -
-
-
-

课程概念

-
-
-
-
- - HSK 等级课程 -
-

按照 HSK 等级精心设计,循序渐进,系统掌握中文语言能力。

-
-
-
- - 技能训练与情境化学习 -
-

- 围绕听、说、读、写四项技能构建练习路径,并结合真实情境,让中文学习更主动、更有效。 -

-
-
-
- - 个性化提高班 -
-

- 根据学员水平与学习意愿,量身组织提高班,强化短板,帮助学习者持续跃升。 -

-
-
- -
-
- - -
-
-
-
-
师资亮点
- 师资亮点展示 -
-
-

- 国际中文教育名师团队倾力打造,经验丰富,专业权威,覆盖听说读写全领域,结合AI技术提供个性化学习体验。 -

- -
-
-
-
-
学习体验
- 学习 App 界面与使用场景展示 -
-
-

- 展示APP使用场景:练习界面、AI推荐路径、进度追踪强调"每一次学习都智能、个性化" -

- -
-
-
-
-
+ + + + + + + + + Redirecting… + + + +

+ 继续前往首页 → +

+ + diff --git a/src/pages/teaching-philosophy.astro b/src/pages/teaching-philosophy.astro deleted file mode 100644 index 15a76a8..0000000 --- a/src/pages/teaching-philosophy.astro +++ /dev/null @@ -1,126 +0,0 @@ ---- -/** - * 教学理念 - 严格按设计稿还原 - * 结构:Hero(蓝色渐变背景+右侧插画)→ 教育目标(双栏:左双图叠放+右文字)→ 教学方法(4圆形图标)→ 教学特色(3图片卡简短说明)→ 教育价值观(标签) - */ -import BaseLayout from '../layouts/BaseLayout.astro'; ---- - - - -
-
-
-

教学理念

-

用中文连接世界,开启智慧学习新时代

-
-
- AI 智慧学习 -
-
-
- - -
-
-
-
-
- 互动学习场景 -
-
- -
-
-
-

教育目标

-

帮助学习者掌握语言能力
理解中华文化

-
-
-
-
- - -
-
-
-

教学方法

-
-
-
-
- -
- HSK分级课程 -
-
-
- -
- 听、说、读、写技能训练 -
-
-
- -
- 情境化学习 -
-
-
- -
- AI个性化推荐 -
-
-
-
- - -
-
-
-

教学特色

-
-
-
- 互动与沉浸 -
体现学习过程的互动性和沉浸感
-
-
- 强调个性化 -
提供因材施教、因需教个性化
-
-
- 高效可追踪 -
高效、有趣、可追踪的学习体验
-
-
-
-
- - -
-
-
-

教育价值观

-
-
- 专业权威 - 智能科技 - 国际化视野 - 以学习者为中心 -
-
-
-
- - diff --git a/src/styles/global.css b/src/styles/global.css index fdbe4d7..06fd48c 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -6,6 +6,7 @@ --line: #ece7e2; --line-strong: #d8dde8; --text: #2d2a28; + --text-heading: #1f2430; --muted: #8e8a87; --muted-strong: #686461; --accent: #f28877; @@ -14,6 +15,10 @@ --brand-soft: #eef3ff; --footer: #313238; --footer-muted: #b8bcc6; + --header-bg: rgba(255, 253, 251, 0.9); + --hero-accent: #2875ff; + --showcase-title-color: #4986cb; + --nav-link: #44423f; --shadow-soft: 0 22px 70px rgba(38, 52, 90, 0.08); --shadow-card: 0 14px 48px rgba(43, 53, 84, 0.08); --radius-xl: 36px; @@ -21,6 +26,49 @@ --radius-md: 18px; --content: 1320px; --nav-h: 104px; + color-scheme: light; +} + +[data-theme="dark"] { + --bg: #0f1115; + --surface: #171a21; + --surface-soft: #1c2028; + --surface-accent: #222836; + --line: #2a2f3a; + --line-strong: #3d4454; + --text: #e8eaef; + --text-heading: #f1f3f7; + --muted: #8b95a5; + --muted-strong: #aeb6c3; + --accent: #ff9a8a; + --brand: #9bb4ff; + --brand-strong: #b8c8ff; + --brand-soft: #252a38; + --footer: #0c0e12; + --footer-muted: #8a91a0; + --header-bg: rgba(15, 17, 21, 0.88); + --hero-accent: #7eb8ff; + --showcase-title-color: #7ec8f0; + --nav-link: #c9d0db; + --shadow-soft: 0 22px 70px rgba(0, 0, 0, 0.35); + --shadow-card: 0 14px 48px rgba(0, 0, 0, 0.4); + color-scheme: dark; +} + +.site-lang-en body, +.site-lang-fr body { + font-family: Manrope, "Segoe UI", system-ui, sans-serif; +} + +.site-lang-ja body { + font-family: + Manrope, + "Hiragino Sans", + "Hiragino Kaku Gothic ProN", + "Noto Sans JP", + "PingFang SC", + "Microsoft YaHei", + sans-serif; } *, @@ -72,7 +120,7 @@ button { position: sticky; top: 0; z-index: 100; - background: rgba(255, 253, 251, 0.9); + background: var(--header-bg); backdrop-filter: blur(16px); } @@ -116,11 +164,11 @@ button { } .brand-copy strong { - color: #1f2430; + color: var(--text-heading); } .brand-copy span { - color: #1f2430; + color: var(--text-heading); } .nav-links { @@ -135,7 +183,7 @@ button { padding: 8px 0; font-size: 18px; font-weight: 700; - color: #44423f; + color: var(--nav-link); letter-spacing: 0.04em; } @@ -156,15 +204,96 @@ button { background: currentColor; } +.header-tools { + display: inline-flex; + align-items: center; + gap: 12px; +} + +.lang-switch { + position: relative; +} + +.lang-switch summary { + list-style: none; + cursor: pointer; +} + +.lang-switch summary::-webkit-details-marker { + display: none; +} + +.lang-switch-panel { + position: absolute; + right: 0; + top: calc(100% + 10px); + min-width: 168px; + padding: 8px; + border-radius: 16px; + border: 1px solid var(--line); + background: var(--surface); + box-shadow: var(--shadow-card); + z-index: 120; +} + +.lang-switch-panel a { + display: block; + padding: 10px 12px; + border-radius: 12px; + font-size: 13px; + font-weight: 700; + color: var(--text); +} + +.lang-switch-panel a:hover, +.lang-switch-panel a:focus-visible { + background: var(--brand-soft); + color: var(--brand-strong); +} + +.lang-switch-panel a.current { + color: var(--brand-strong); +} + +.theme-toggle-btn { + display: inline-flex; + align-items: center; + justify-content: center; + width: 44px; + height: 44px; + border: 1px solid var(--line); + border-radius: 14px; + background: var(--surface); + color: var(--text-heading); + cursor: pointer; + transition: background 0.15s ease, border-color 0.15s ease; +} + +.theme-toggle-btn:hover { + border-color: var(--line-strong); +} + +.theme-toggle-btn .icon-dark { + display: none; +} + +[data-theme="dark"] .theme-toggle-btn .icon-light { + display: none; +} + +[data-theme="dark"] .theme-toggle-btn .icon-dark { + display: block; +} + .locale-pill { display: inline-flex; align-items: center; gap: 8px; - padding: 8px 12px; + padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); - color: var(--muted); + color: var(--muted-strong); font-size: 12px; font-weight: 700; } @@ -172,6 +301,7 @@ button { .locale-pill svg { width: 10px; height: 10px; + flex-shrink: 0; } .menu-toggle { @@ -222,6 +352,18 @@ button { background-repeat: no-repeat; } +.philosophy-hero { + background: linear-gradient(145deg, rgba(122, 160, 255, 0.12) 0%, rgba(238, 243, 255, 0.9) 40%, rgba(122, 160, 255, 0.08) 100%); +} + +[data-theme="dark"] .philosophy-hero { + background: linear-gradient(145deg, rgba(122, 160, 255, 0.14) 0%, rgba(23, 26, 33, 0.96) 45%, rgba(122, 160, 255, 0.06) 100%); +} + +[data-theme="dark"] .index-hero { + box-shadow: inset 0 0 160px rgba(0, 0, 0, 0.55); +} + .hero.centered { text-align: center; } @@ -250,7 +392,7 @@ button { .hero-subtitle { max-width: 640px; margin: 18px auto 0; - color: #2875FF; + color: var(--hero-accent); font-size: 30px; line-height: 1.9; letter-spacing: 0.04em; @@ -513,7 +655,7 @@ button { top: 28px; left: 32px; margin: 0; - color: #4986CB; + color: var(--showcase-title-color); font-size: 32px; font-weight: 800; letter-spacing: 0.02em; @@ -795,6 +937,29 @@ button { text-align: center; } +.footer-legal-line { + margin: 0; + line-height: 1.65; +} + +.site-footer .footer-icp-link { + color: rgba(255, 255, 255, 0.62); + text-decoration: underline; + text-underline-offset: 3px; +} + +.site-footer .footer-icp-link:hover { + color: rgba(255, 255, 255, 0.85); +} + +.footer-trademark { + margin: 14px auto 0; + max-width: 720px; + color: rgba(255, 255, 255, 0.38); + font-size: 11px; + line-height: 1.7; +} + /* ========== 背景装饰 ========== */ .bg-wash { position: relative; @@ -1134,10 +1299,44 @@ button { } .nav-links, - .locale-pill { + .lang-switch { display: none; } + .mobile-lang { + padding: 8px 0 4px; + margin-top: 8px; + border-top: 1px solid var(--line); + } + + .mobile-lang p { + margin: 0 0 8px; + padding: 0 18px; + font-size: 11px; + font-weight: 800; + letter-spacing: 0.08em; + text-transform: uppercase; + color: var(--muted); + } + + .mobile-lang a { + display: block; + padding: 10px 18px; + border-radius: 12px; + font-size: 14px; + font-weight: 700; + } + + .mobile-lang a.current { + background: var(--brand-soft); + color: var(--brand-strong); + } + + .mobile-menu .theme-toggle-btn { + margin: 12px 18px 0; + width: calc(100% - 36px); + } + .menu-toggle { display: inline-flex; }